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