19316e144SStephen Warren /* 29316e144SStephen Warren * (C) Copyright 2012 Stephen Warren 39316e144SStephen Warren * 4*a033171bSStephen Warren * SPDX-License-Identifier: GPL-2.0 59316e144SStephen Warren */ 69316e144SStephen Warren 79316e144SStephen Warren #ifndef __CONFIG_H 89316e144SStephen Warren #define __CONFIG_H 99316e144SStephen Warren 109316e144SStephen Warren #include <linux/sizes.h> 119316e144SStephen Warren 129316e144SStephen Warren /* Architecture, CPU, etc.*/ 139316e144SStephen Warren #define CONFIG_SYS_GENERIC_BOARD 149316e144SStephen Warren #define CONFIG_BCM2835 159316e144SStephen Warren #define CONFIG_ARCH_CPU_INIT 169316e144SStephen Warren #define CONFIG_SYS_DCACHE_OFF 179316e144SStephen Warren /* 189316e144SStephen Warren * 2835 is a SKU in a series for which the 2708 is the first or primary SoC, 199316e144SStephen Warren * so 2708 has historically been used rather than a dedicated 2835 ID. 209316e144SStephen Warren */ 219316e144SStephen Warren #define CONFIG_MACH_TYPE MACH_TYPE_BCM2708 229316e144SStephen Warren 239316e144SStephen Warren /* Memory layout */ 249316e144SStephen Warren #define CONFIG_NR_DRAM_BANKS 1 259316e144SStephen Warren #define CONFIG_SYS_SDRAM_BASE 0x00000000 269316e144SStephen Warren #define CONFIG_SYS_TEXT_BASE 0x00008000 279316e144SStephen Warren #define CONFIG_SYS_UBOOT_BASE CONFIG_SYS_TEXT_BASE 289316e144SStephen Warren /* 299316e144SStephen Warren * The board really has 256M. However, the VC (VideoCore co-processor) shares 309316e144SStephen Warren * the RAM, and uses a configurable portion at the top. We tell U-Boot that a 319316e144SStephen Warren * smaller amount of RAM is present in order to avoid stomping on the area 329316e144SStephen Warren * the VC uses. 339316e144SStephen Warren */ 349316e144SStephen Warren #define CONFIG_SYS_SDRAM_SIZE SZ_128M 359316e144SStephen Warren #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + \ 369316e144SStephen Warren CONFIG_SYS_SDRAM_SIZE - \ 379316e144SStephen Warren GENERATED_GBL_DATA_SIZE) 389316e144SStephen Warren #define CONFIG_SYS_MALLOC_LEN SZ_4M 399316e144SStephen Warren #define CONFIG_SYS_MEMTEST_START 0x00100000 409316e144SStephen Warren #define CONFIG_SYS_MEMTEST_END 0x00200000 419316e144SStephen Warren #define CONFIG_LOADADDR 0x00200000 429316e144SStephen Warren 439316e144SStephen Warren /* Flash */ 449316e144SStephen Warren #define CONFIG_SYS_NO_FLASH 459316e144SStephen Warren 469316e144SStephen Warren /* Devices */ 479316e144SStephen Warren /* GPIO */ 489316e144SStephen Warren #define CONFIG_BCM2835_GPIO 499316e144SStephen Warren /* LCD */ 509316e144SStephen Warren #define CONFIG_LCD 519316e144SStephen Warren #define CONFIG_LCD_DT_SIMPLEFB 529316e144SStephen Warren #define LCD_BPP LCD_COLOR16 539316e144SStephen Warren /* 549316e144SStephen Warren * Prevent allocation of RAM for FB; the real FB address is queried 559316e144SStephen Warren * dynamically from the VideoCore co-processor, and comes from RAM 569316e144SStephen Warren * not owned by the ARM CPU. 579316e144SStephen Warren */ 589316e144SStephen Warren #define CONFIG_FB_ADDR 0 599316e144SStephen Warren #define CONFIG_VIDEO_BCM2835 609316e144SStephen Warren #define CONFIG_SYS_WHITE_ON_BLACK 619316e144SStephen Warren 629316e144SStephen Warren /* SD/MMC configuration */ 639316e144SStephen Warren #define CONFIG_GENERIC_MMC 649316e144SStephen Warren #define CONFIG_MMC 659316e144SStephen Warren #define CONFIG_SDHCI 669316e144SStephen Warren #define CONFIG_MMC_SDHCI_IO_ACCESSORS 679316e144SStephen Warren #define CONFIG_BCM2835_SDHCI 689316e144SStephen Warren 699316e144SStephen Warren #define CONFIG_CMD_USB 709316e144SStephen Warren #ifdef CONFIG_CMD_USB 719316e144SStephen Warren #define CONFIG_USB_DWC2 729316e144SStephen Warren #define CONFIG_USB_DWC2_REG_ADDR 0x20980000 739316e144SStephen Warren #define CONFIG_USB_STORAGE 749316e144SStephen Warren #define CONFIG_USB_HOST_ETHER 759316e144SStephen Warren #define CONFIG_USB_ETHER_SMSC95XX 769316e144SStephen Warren #define CONFIG_MISC_INIT_R 779316e144SStephen Warren #endif 789316e144SStephen Warren 799316e144SStephen Warren /* Console UART */ 8011506666SSimon Glass #define CONFIG_PL01X_SERIAL 819316e144SStephen Warren #define CONFIG_CONS_INDEX 0 829316e144SStephen Warren #define CONFIG_BAUDRATE 115200 839316e144SStephen Warren 849316e144SStephen Warren /* Console configuration */ 859316e144SStephen Warren #define CONFIG_SYS_CBSIZE 1024 869316e144SStephen Warren #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ 879316e144SStephen Warren sizeof(CONFIG_SYS_PROMPT) + 16) 889316e144SStephen Warren 899316e144SStephen Warren /* Environment */ 909316e144SStephen Warren #define CONFIG_ENV_SIZE SZ_16K 91a5a83dc9SStephen Warren #define CONFIG_ENV_IS_IN_FAT 92a5a83dc9SStephen Warren #define FAT_ENV_INTERFACE "mmc" 93a5a83dc9SStephen Warren #define FAT_ENV_DEVICE_AND_PART "0:1" 94a5a83dc9SStephen Warren #define FAT_ENV_FILE "uboot.env" 95a5a83dc9SStephen Warren #define CONFIG_FAT_WRITE 969316e144SStephen Warren #define CONFIG_ENV_VARS_UBOOT_CONFIG 979316e144SStephen Warren #define CONFIG_SYS_LOAD_ADDR 0x1000000 989316e144SStephen Warren #define CONFIG_CONSOLE_MUX 999316e144SStephen Warren #define CONFIG_SYS_CONSOLE_IS_IN_ENV 1009316e144SStephen Warren 1019316e144SStephen Warren /* Shell */ 1029316e144SStephen Warren #define CONFIG_SYS_MAXARGS 8 1039316e144SStephen Warren #define CONFIG_SYS_PROMPT "U-Boot> " 1049316e144SStephen Warren #define CONFIG_COMMAND_HISTORY 1059316e144SStephen Warren 1069316e144SStephen Warren /* Commands */ 1079316e144SStephen Warren #include <config_cmd_default.h> 1089316e144SStephen Warren #define CONFIG_CMD_GPIO 1099316e144SStephen Warren #define CONFIG_CMD_MMC 1109316e144SStephen Warren #define CONFIG_PARTITION_UUIDS 1119316e144SStephen Warren #define CONFIG_CMD_PART 1129316e144SStephen Warren 1139316e144SStephen Warren /* Device tree support */ 1149316e144SStephen Warren #define CONFIG_OF_BOARD_SETUP 1159316e144SStephen Warren /* ATAGs support for bootm/bootz */ 1169316e144SStephen Warren #define CONFIG_SETUP_MEMORY_TAGS 1179316e144SStephen Warren #define CONFIG_CMDLINE_TAG 1189316e144SStephen Warren #define CONFIG_INITRD_TAG 1199316e144SStephen Warren 1209316e144SStephen Warren #include <config_distro_defaults.h> 1219316e144SStephen Warren 1229316e144SStephen Warren /* Some things don't make sense on this HW or yet */ 1239316e144SStephen Warren #undef CONFIG_CMD_FPGA 1249316e144SStephen Warren 1259316e144SStephen Warren /* Environment */ 1269316e144SStephen Warren #define ENV_DEVICE_SETTINGS \ 1279316e144SStephen Warren "stdin=serial,lcd\0" \ 1289316e144SStephen Warren "stdout=serial,lcd\0" \ 1299316e144SStephen Warren "stderr=serial,lcd\0" 1309316e144SStephen Warren 1319316e144SStephen Warren /* 1329316e144SStephen Warren * Memory layout for where various images get loaded by boot scripts: 1339316e144SStephen Warren * 1349316e144SStephen Warren * scriptaddr can be pretty much anywhere that doesn't conflict with something 1359316e144SStephen Warren * else. Put it low in memory to avoid conflicts. 1369316e144SStephen Warren * 1379316e144SStephen Warren * pxefile_addr_r can be pretty much anywhere that doesn't conflict with 1389316e144SStephen Warren * something else. Put it low in memory to avoid conflicts. 1399316e144SStephen Warren * 1409316e144SStephen Warren * kernel_addr_r must be within the first 128M of RAM in order for the 1419316e144SStephen Warren * kernel's CONFIG_AUTO_ZRELADDR option to work. Since the kernel will 1429316e144SStephen Warren * decompress itself to 0x8000 after the start of RAM, kernel_addr_r 1439316e144SStephen Warren * should not overlap that area, or the kernel will have to copy itself 1449316e144SStephen Warren * somewhere else before decompression. Similarly, the address of any other 1459316e144SStephen Warren * data passed to the kernel shouldn't overlap the start of RAM. Pushing 1469316e144SStephen Warren * this up to 16M allows for a sizable kernel to be decompressed below the 1479316e144SStephen Warren * compressed load address. 1489316e144SStephen Warren * 1499316e144SStephen Warren * fdt_addr_r simply shouldn't overlap anything else. Choosing 32M allows for 1509316e144SStephen Warren * the compressed kernel to be up to 16M too. 1519316e144SStephen Warren * 1529316e144SStephen Warren * ramdisk_addr_r simply shouldn't overlap anything else. Choosing 33M allows 1539316e144SStephen Warren * for the FDT/DTB to be up to 1M, which is hopefully plenty. 1549316e144SStephen Warren */ 1559316e144SStephen Warren #define ENV_MEM_LAYOUT_SETTINGS \ 1569316e144SStephen Warren "scriptaddr=0x00000000\0" \ 1579316e144SStephen Warren "pxefile_addr_r=0x00100000\0" \ 1589316e144SStephen Warren "kernel_addr_r=0x01000000\0" \ 1599316e144SStephen Warren "fdt_addr_r=0x02000000\0" \ 1609316e144SStephen Warren "ramdisk_addr_r=0x02100000\0" \ 1619316e144SStephen Warren 1629316e144SStephen Warren #define BOOT_TARGET_DEVICES(func) \ 1639316e144SStephen Warren func(MMC, mmc, 0) \ 1649316e144SStephen Warren func(USB, usb, 0) \ 1659316e144SStephen Warren func(PXE, pxe, na) \ 1669316e144SStephen Warren func(DHCP, dhcp, na) 1679316e144SStephen Warren #include <config_distro_bootcmd.h> 1689316e144SStephen Warren 1699316e144SStephen Warren #define CONFIG_EXTRA_ENV_SETTINGS \ 1709316e144SStephen Warren ENV_DEVICE_SETTINGS \ 1719316e144SStephen Warren ENV_MEM_LAYOUT_SETTINGS \ 1729316e144SStephen Warren BOOTENV 1739316e144SStephen Warren 1749316e144SStephen Warren #define CONFIG_BOOTDELAY 2 1759316e144SStephen Warren 1769316e144SStephen Warren #endif 177