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