xref: /rk3399_rockchip-uboot/include/configs/rpi.h (revision a033171b2ece1f3575ab7277e7b862e7f611b3f6)
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