uboot/include/configs/nokia_rx51.h
<<
>>
Prefs
   1/*
   2 * (C) Copyright 2011-2012
   3 * Pali Rohár <pali.rohar@gmail.com>
   4 *
   5 * (C) Copyright 2010
   6 * Alistair Buxton <a.j.buxton@gmail.com>
   7 *
   8 * Derived from Beagle Board code:
   9 * (C) Copyright 2006-2008
  10 * Texas Instruments.
  11 * Richard Woodruff <r-woodruff2@ti.com>
  12 * Syed Mohammed Khasim <x0khasim@ti.com>
  13 *
  14 * Configuration settings for the Nokia RX-51 aka N900.
  15 *
  16 * SPDX-License-Identifier:     GPL-2.0+
  17 */
  18
  19#ifndef __CONFIG_H
  20#define __CONFIG_H
  21
  22/*
  23 * High Level Configuration Options
  24 */
  25
  26#define CONFIG_OMAP                     /* in a TI OMAP core */
  27#define CONFIG_OMAP3430                 /* which is in a 3430 */
  28#define CONFIG_OMAP3_RX51               /* working with RX51 */
  29#define CONFIG_SYS_L2CACHE_OFF          /* pretend there is no L2 CACHE */
  30
  31#define CONFIG_MACH_TYPE                MACH_TYPE_NOKIA_RX51
  32
  33/*
  34 * Nokia X-Loader loading secondary image to address 0x80400000
  35 * NOLO loading boot image to random place, so it doesn't really
  36 * matter what we set this to. We have to copy u-boot to this address
  37 */
  38#define CONFIG_SYS_TEXT_BASE    0x80008000
  39
  40#define CONFIG_SDRC                     /* The chip has SDRC controller */
  41
  42#include <asm/arch/cpu.h>               /* get chip and board defs */
  43#include <asm/arch/omap.h>
  44#include <asm/arch/mem.h>
  45#include <linux/stringify.h>
  46
  47/* Clock Defines */
  48#define V_OSCK                  26000000        /* Clock output from T2 */
  49#define V_SCLK                  (V_OSCK >> 1)
  50
  51#undef CONFIG_USE_IRQ                           /* no support for IRQs */
  52#define CONFIG_MISC_INIT_R
  53#define CONFIG_SKIP_LOWLEVEL_INIT               /* X-Loader set everything up */
  54
  55#define CONFIG_CMDLINE_TAG      /* enable passing kernel command line string */
  56#define CONFIG_INITRD_TAG                       /* enable passing initrd */
  57#define CONFIG_REVISION_TAG                     /* enable passing revision tag*/
  58#define CONFIG_SETUP_MEMORY_TAGS                /* enable memory tag */
  59
  60/*
  61 * Size of malloc() pool
  62 */
  63#define CONFIG_ENV_SIZE                 (128 << 10)
  64#define CONFIG_UBI_SIZE                 (512 << 10)
  65#define CONFIG_SYS_MALLOC_LEN           (CONFIG_ENV_SIZE + CONFIG_UBI_SIZE + \
  66                                        (128 << 10))
  67
  68/*
  69 * Hardware drivers
  70 */
  71
  72/*
  73 * NS16550 Configuration
  74 */
  75#define V_NS16550_CLK           48000000                /* 48MHz (APLL96/2) */
  76
  77#define CONFIG_SYS_NS16550_SERIAL
  78#define CONFIG_SYS_NS16550_REG_SIZE     (-4)
  79#define CONFIG_SYS_NS16550_CLK          V_NS16550_CLK
  80
  81/*
  82 * select serial console configuration
  83 */
  84#define CONFIG_CONS_INDEX               3
  85#define CONFIG_SYS_NS16550_COM3         OMAP34XX_UART3
  86#define CONFIG_SERIAL3                  3               /* UART3 on RX-51 */
  87
  88/* allow to overwrite serial and ethaddr */
  89#define CONFIG_ENV_OVERWRITE
  90#define CONFIG_BAUDRATE                 115200
  91#define CONFIG_SYS_BAUDRATE_TABLE { 4800, 9600, 19200, 38400, 57600, 115200 }
  92
  93/* USB */
  94#define CONFIG_USB_MUSB_UDC
  95#define CONFIG_USB_MUSB_HCD
  96#define CONFIG_USB_OMAP3
  97#define CONFIG_TWL4030_USB
  98
  99/* USB device configuration */
 100#define CONFIG_USB_DEVICE
 101#define CONFIG_USBD_VENDORID            0x0421
 102#define CONFIG_USBD_PRODUCTID           0x01c8
 103#define CONFIG_USBD_MANUFACTURER        "Nokia"
 104#define CONFIG_USBD_PRODUCT_NAME        "N900"
 105
 106/* commands to include */
 107
 108#define CONFIG_CMDLINE_EDITING          /* add command line history */
 109#define CONFIG_AUTO_COMPLETE            /* add autocompletion support */
 110
 111#define CONFIG_CMD_CLEAR                /* ANSI terminal clear screen command */
 112
 113#ifdef ONENAND_SUPPORT
 114
 115#define CONFIG_CMD_ONENAND              /* ONENAND support */
 116#define CONFIG_CMD_MTDPARTS             /* mtd parts support */
 117
 118#ifdef UBIFS_SUPPORT
 119#define CONFIG_CMD_UBIFS                /* UBIFS Support */
 120#endif
 121
 122#endif
 123
 124#define CONFIG_OMAP3_SPI
 125#define CONFIG_SYS_I2C
 126#define CONFIG_SYS_OMAP24_I2C_SPEED     100000
 127#define CONFIG_SYS_OMAP24_I2C_SLAVE     1
 128#define CONFIG_SYS_I2C_OMAP34XX
 129
 130/*
 131 * TWL4030
 132 */
 133#define CONFIG_TWL4030_POWER
 134#define CONFIG_TWL4030_LED
 135#define CONFIG_TWL4030_KEYPAD
 136
 137#define CONFIG_OMAP_GPIO
 138#define GPIO_SLIDE                      71
 139
 140/*
 141 * Board ONENAND Info.
 142 */
 143
 144#define PART1_NAME                      "bootloader"
 145#define PART1_SIZE                      128
 146#define PART1_MULL                      1024
 147#define PART1_SUFF                      "k"
 148#define PART1_OFFS                      0x00000000
 149#define PART1_MASK                      0x00000003
 150
 151#define PART2_NAME                      "config"
 152#define PART2_SIZE                      384
 153#define PART2_MULL                      1024
 154#define PART2_SUFF                      "k"
 155#define PART2_OFFS                      0x00020000
 156#define PART2_MASK                      0x00000000
 157
 158#define PART3_NAME                      "log"
 159#define PART3_SIZE                      256
 160#define PART3_MULL                      1024
 161#define PART3_SUFF                      "k"
 162#define PART3_OFFS                      0x00080000
 163#define PART3_MASK                      0x00000000
 164
 165#define PART4_NAME                      "kernel"
 166#define PART4_SIZE                      2
 167#define PART4_MULL                      1024*1024
 168#define PART4_SUFF                      "m"
 169#define PART4_OFFS                      0x000c0000
 170#define PART4_MASK                      0x00000000
 171
 172#define PART5_NAME                      "initfs"
 173#define PART5_SIZE                      2
 174#define PART5_MULL                      1024*1024
 175#define PART5_SUFF                      "m"
 176#define PART5_OFFS                      0x002c0000
 177#define PART5_MASK                      0x00000000
 178
 179#define PART6_NAME                      "rootfs"
 180#define PART6_SIZE                      257280
 181#define PART6_MULL                      1024
 182#define PART6_SUFF                      "k"
 183#define PART6_OFFS                      0x004c0000
 184#define PART6_MASK                      0x00000000
 185
 186#ifdef ONENAND_SUPPORT
 187
 188#define CONFIG_SYS_ONENAND_BASE         ONENAND_MAP
 189#define CONFIG_MTD_DEVICE
 190#define CONFIG_MTD_PARTITIONS
 191
 192#ifdef UBIFS_SUPPORT
 193#define CONFIG_RBTREE
 194#define CONFIG_LZO
 195#endif
 196
 197#define MTDIDS_DEFAULT                  "onenand0=onenand"
 198#define MTDPARTS_DEFAULT                "mtdparts=onenand:" \
 199                __stringify(PART1_SIZE) PART1_SUFF "(" PART1_NAME ")ro," \
 200                __stringify(PART2_SIZE) PART2_SUFF "(" PART2_NAME ")," \
 201                __stringify(PART3_SIZE) PART3_SUFF "(" PART3_NAME ")," \
 202                __stringify(PART4_SIZE) PART4_SUFF "(" PART4_NAME ")," \
 203                __stringify(PART5_SIZE) PART5_SUFF "(" PART5_NAME ")," \
 204                "-(" PART6_NAME ")"
 205
 206#endif
 207
 208/* Watchdog support */
 209#define CONFIG_HW_WATCHDOG
 210
 211/*
 212 * Framebuffer
 213 */
 214/* Video console */
 215#define CONFIG_VIDEO_LOGO
 216#define VIDEO_FB_16BPP_PIXEL_SWAP
 217#define VIDEO_FB_16BPP_WORD_SWAP
 218#define CONFIG_SPLASH_SCREEN
 219
 220/* functions for cfb_console */
 221#define VIDEO_KBD_INIT_FCT              rx51_kp_init()
 222#define VIDEO_TSTC_FCT                  rx51_kp_tstc
 223#define VIDEO_GETC_FCT                  rx51_kp_getc
 224#ifndef __ASSEMBLY__
 225struct stdio_dev;
 226int rx51_kp_init(void);
 227int rx51_kp_tstc(struct stdio_dev *sdev);
 228int rx51_kp_getc(struct stdio_dev *sdev);
 229#endif
 230
 231#ifndef MTDPARTS_DEFAULT
 232#define MTDPARTS_DEFAULT
 233#endif
 234
 235/* Environment information */
 236#define CONFIG_EXTRA_ENV_SETTINGS \
 237        "mtdparts=" MTDPARTS_DEFAULT "\0" \
 238        "usbtty=cdc_acm\0" \
 239        "stdin=vga\0" \
 240        "stdout=vga\0" \
 241        "stderr=vga\0" \
 242        "setcon=setenv stdin ${con};" \
 243                "setenv stdout ${con};" \
 244                "setenv stderr ${con}\0" \
 245        "sercon=setenv con serial; run setcon\0" \
 246        "usbcon=setenv con usbtty; run setcon\0" \
 247        "vgacon=setenv con vga; run setcon\0" \
 248        "slide=gpio input " __stringify(GPIO_SLIDE) "\0" \
 249        "switchmmc=mmc dev ${mmcnum}\0" \
 250        "kernaddr=0x82008000\0" \
 251        "initrdaddr=0x84008000\0" \
 252        "scriptaddr=0x86008000\0" \
 253        "fileload=${mmctype}load mmc ${mmcnum}:${mmcpart} " \
 254                "${loadaddr} ${mmcfile}\0" \
 255        "kernload=setenv loadaddr ${kernaddr};" \
 256                "setenv mmcfile ${mmckernfile};" \
 257                "run fileload\0" \
 258        "initrdload=setenv loadaddr ${initrdaddr};" \
 259                "setenv mmcfile ${mmcinitrdfile};" \
 260                "run fileload\0" \
 261        "scriptload=setenv loadaddr ${scriptaddr};" \
 262                "setenv mmcfile ${mmcscriptfile};" \
 263                "run fileload\0" \
 264        "scriptboot=echo Running ${mmcscriptfile} from mmc " \
 265                "${mmcnum}:${mmcpart} ...; source ${scriptaddr}\0" \
 266        "kernboot=echo Booting ${mmckernfile} from mmc " \
 267                "${mmcnum}:${mmcpart} ...; bootm ${kernaddr}\0" \
 268        "kerninitrdboot=echo Booting ${mmckernfile} ${mmcinitrdfile} from mmc "\
 269                "${mmcnum}:${mmcpart} ...; bootm ${kernaddr} ${initrdaddr}\0" \
 270        "attachboot=echo Booting attached kernel image ...;" \
 271                "setenv setup_omap_atag 1;" \
 272                "bootm ${attkernaddr};" \
 273                "setenv setup_omap_atag\0" \
 274        "trymmcscriptboot=if run switchmmc; then " \
 275                        "if run scriptload; then " \
 276                                "run scriptboot;" \
 277                        "fi;" \
 278                "fi\0" \
 279        "trymmckernboot=if run switchmmc; then " \
 280                        "if run kernload; then " \
 281                                "run kernboot;" \
 282                        "fi;" \
 283                "fi\0" \
 284        "trymmckerninitrdboot=if run switchmmc; then " \
 285                        "if run initrdload; then " \
 286                                "if run kernload; then " \
 287                                        "run kerninitrdboot;" \
 288                                "fi;" \
 289                        "fi; " \
 290                "fi\0" \
 291        "trymmcpartboot=setenv mmcscriptfile boot.scr; run trymmcscriptboot;" \
 292                "setenv mmckernfile uImage; run trymmckernboot\0" \
 293        "trymmcallpartboot=setenv mmcpart 1; run trymmcpartboot;" \
 294                "setenv mmcpart 2; run trymmcpartboot;" \
 295                "setenv mmcpart 3; run trymmcpartboot;" \
 296                "setenv mmcpart 4; run trymmcpartboot\0" \
 297        "trymmcboot=if run switchmmc; then " \
 298                        "setenv mmctype fat;" \
 299                        "run trymmcallpartboot;" \
 300                        "setenv mmctype ext2;" \
 301                        "run trymmcallpartboot;" \
 302                        "setenv mmctype ext4;" \
 303                        "run trymmcallpartboot;" \
 304                "fi\0" \
 305        "emmcboot=setenv mmcnum 1; run trymmcboot\0" \
 306        "sdboot=setenv mmcnum 0; run trymmcboot\0" \
 307        "menucmd=bootmenu\0" \
 308        "bootmenu_0=Attached kernel=run attachboot\0" \
 309        "bootmenu_1=Internal eMMC=run emmcboot\0" \
 310        "bootmenu_2=External SD card=run sdboot\0" \
 311        "bootmenu_3=U-Boot boot order=boot\0" \
 312        "bootmenu_delay=30\0" \
 313        ""
 314
 315#define CONFIG_PREBOOT \
 316        "setenv mmcnum 1; setenv mmcpart 1;" \
 317        "setenv mmcscriptfile bootmenu.scr;" \
 318        "if run switchmmc; then " \
 319                "setenv mmcdone true;" \
 320                "setenv mmctype fat;" \
 321                "if run scriptload; then true; else " \
 322                        "setenv mmctype ext2;" \
 323                        "if run scriptload; then true; else " \
 324                                "setenv mmctype ext4;" \
 325                                "if run scriptload; then true; else " \
 326                                        "setenv mmcdone false;" \
 327                                "fi;" \
 328                        "fi;" \
 329                "fi;" \
 330                "if ${mmcdone}; then " \
 331                        "run scriptboot;" \
 332                "fi;" \
 333        "fi;" \
 334        "if run slide; then true; else " \
 335                "setenv bootmenu_delay 0;" \
 336                "setenv bootdelay 0;" \
 337        "fi"
 338
 339#define CONFIG_POSTBOOTMENU \
 340        "echo;" \
 341        "echo Extra commands:;" \
 342        "echo run sercon - Use serial port for control.;" \
 343        "echo run usbcon - Use usbtty for control.;" \
 344        "echo run vgacon - Use framebuffer/keyboard.;" \
 345        "echo run sdboot - Boot from SD card slot.;" \
 346        "echo run emmcboot - Boot internal eMMC memory.;" \
 347        "echo run attachboot - Boot attached kernel image.;" \
 348        "echo"
 349
 350#define CONFIG_BOOTCOMMAND \
 351        "run sdboot;" \
 352        "run emmcboot;" \
 353        "run attachboot;" \
 354        "echo"
 355
 356#define CONFIG_MENU_SHOW
 357
 358/*
 359 * Miscellaneous configurable options
 360 */
 361#define CONFIG_SYS_LONGHELP                     /* undef to save memory */
 362#define CONFIG_SYS_CBSIZE               256     /* Console I/O Buffer Size */
 363/* Print Buffer Size */
 364#define CONFIG_SYS_PBSIZE               (CONFIG_SYS_CBSIZE + \
 365                                                sizeof(CONFIG_SYS_PROMPT) + 16)
 366#define CONFIG_SYS_MAXARGS              16      /* max number of command args */
 367/* Boot Argument Buffer Size */
 368#define CONFIG_SYS_BARGSIZE             (CONFIG_SYS_CBSIZE)
 369
 370#define CONFIG_SYS_MEMTEST_START        (OMAP34XX_SDRC_CS0)
 371#define CONFIG_SYS_MEMTEST_END          (OMAP34XX_SDRC_CS0 + 0x01F00000)/*31MB*/
 372
 373/* default load address */
 374#define CONFIG_SYS_LOAD_ADDR            (OMAP34XX_SDRC_CS0)
 375
 376/*
 377 * OMAP3 has 12 GP timers, they can be driven by the system clock
 378 * (12/13/16.8/19.2/38.4MHz) or by 32KHz clock. We use 13MHz (V_SCLK).
 379 * This rate is divided by a local divisor.
 380 */
 381#define CONFIG_SYS_TIMERBASE            (OMAP34XX_GPT2)
 382#define CONFIG_SYS_PTV                  2       /* Divisor: 2^(PTV+1) => 8 */
 383
 384/*
 385 * Stack sizes
 386 *
 387 * The stack sizes are set up in start.S using the settings below
 388 */
 389#define CONFIG_STACKSIZE                (128 << 10) /* regular stack 128 KiB */
 390
 391/*
 392 * Physical Memory Map
 393 */
 394#define CONFIG_NR_DRAM_BANKS            2
 395#define PHYS_SDRAM_1                    OMAP34XX_SDRC_CS0
 396
 397/*
 398 * FLASH and environment organization
 399 */
 400
 401#define CONFIG_ENV_IS_NOWHERE
 402
 403#define CONFIG_SYS_SDRAM_BASE           PHYS_SDRAM_1
 404#define CONFIG_SYS_INIT_RAM_ADDR        0x4020f800
 405#define CONFIG_SYS_INIT_RAM_SIZE        0x800
 406#define CONFIG_SYS_INIT_SP_ADDR         (CONFIG_SYS_INIT_RAM_ADDR + \
 407                        CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
 408
 409/*
 410 * Attached kernel image
 411 */
 412
 413#define SDRAM_SIZE                      0x10000000      /* 256 MB */
 414#define SDRAM_END                       (CONFIG_SYS_SDRAM_BASE + SDRAM_SIZE)
 415
 416#define IMAGE_MAXSIZE                   0x1FF800        /* 2 MB - 2 kB */
 417#define KERNEL_OFFSET                   0x40000         /* 256 kB */
 418#define KERNEL_MAXSIZE                  (IMAGE_MAXSIZE-KERNEL_OFFSET)
 419#define KERNEL_ADDRESS                  (SDRAM_END-KERNEL_MAXSIZE)
 420
 421/* Reserve protected RAM for attached kernel */
 422#define CONFIG_PRAM                     ((KERNEL_MAXSIZE >> 10)+1)
 423
 424#endif /* __CONFIG_H */
 425