|
@@ -51,6 +51,7 @@
|
|
|
#define CONFIG_SYS_MALLOC_LEN SZ_4M
|
|
|
#define CONFIG_SYS_MEMTEST_START 0x00100000
|
|
|
#define CONFIG_SYS_MEMTEST_END 0x00200000
|
|
|
+#define CONFIG_LOADADDR 0x00200000
|
|
|
|
|
|
/* Flash */
|
|
|
#define CONFIG_SYS_NO_FLASH
|
|
@@ -70,6 +71,13 @@
|
|
|
#define CONFIG_VIDEO_BCM2835
|
|
|
#define CONFIG_SYS_WHITE_ON_BLACK
|
|
|
|
|
|
+/* SD/MMC configuration */
|
|
|
+#define CONFIG_GENERIC_MMC
|
|
|
+#define CONFIG_MMC
|
|
|
+#define CONFIG_SDHCI
|
|
|
+#define CONFIG_MMC_SDHCI_IO_ACCESSORS
|
|
|
+#define CONFIG_BCM2835_SDHCI
|
|
|
+
|
|
|
/* Console UART */
|
|
|
#define CONFIG_PL011_SERIAL
|
|
|
#define CONFIG_PL011_CLOCK 3000000
|
|
@@ -85,12 +93,59 @@
|
|
|
/* Environment */
|
|
|
#define CONFIG_ENV_SIZE SZ_16K
|
|
|
#define CONFIG_ENV_IS_NOWHERE
|
|
|
+#define CONFIG_ENV_VARS_UBOOT_CONFIG
|
|
|
#define CONFIG_SYS_LOAD_ADDR 0x1000000
|
|
|
#define CONFIG_CONSOLE_MUX
|
|
|
#define CONFIG_SYS_CONSOLE_IS_IN_ENV
|
|
|
-#define CONFIG_EXTRA_ENV_SETTINGS "stdin=serial\0" \
|
|
|
- "stderr=serial,lcd\0" \
|
|
|
- "stdout=serial,lcd\0"
|
|
|
+/*
|
|
|
+ * Memory layout for where various images get loaded by boot scripts:
|
|
|
+ *
|
|
|
+ * scriptaddr can be pretty much anywhere that doesn't conflict with something
|
|
|
+ * else. Put it low in memory to avoid conflicts.
|
|
|
+ *
|
|
|
+ * kernel_addr_r must be within the first 128M of RAM in order for the
|
|
|
+ * kernel's CONFIG_AUTO_ZRELADDR option to work. Since the kernel will
|
|
|
+ * decompress itself to 0x8000 after the start of RAM, kernel_addr_r
|
|
|
+ * should not overlap that area, or the kernel will have to copy itself
|
|
|
+ * somewhere else before decompression. Similarly, the address of any other
|
|
|
+ * data passed to the kernel shouldn't overlap the start of RAM. Pushing
|
|
|
+ * this up to 16M allows for a sizable kernel to be decompressed below the
|
|
|
+ * compressed load address.
|
|
|
+ *
|
|
|
+ * fdt_addr_r simply shouldn't overlap anything else. Choosing 32M allows for
|
|
|
+ * the compressed kernel to be up to 16M too.
|
|
|
+ *
|
|
|
+ * ramdisk_addr_r simply shouldn't overlap anything else. Choosing 33M allows
|
|
|
+ * for the FDT/DTB to be up to 1M, which is hopefully plenty.
|
|
|
+ */
|
|
|
+#define CONFIG_EXTRA_ENV_SETTINGS \
|
|
|
+ "stdin=serial\0" \
|
|
|
+ "stderr=serial,lcd\0" \
|
|
|
+ "stdout=serial,lcd\0" \
|
|
|
+ "scriptaddr=0x00000000\0" \
|
|
|
+ "kernel_addr_r=0x01000000\0" \
|
|
|
+ "fdt_addr_r=0x02000000\0" \
|
|
|
+ "ramdisk_addr_r=0x02100000\0" \
|
|
|
+ "boot_targets=mmc0\0" \
|
|
|
+ \
|
|
|
+ "script_boot=" \
|
|
|
+ "if fatload ${devtype} ${devnum}:1 " \
|
|
|
+ "${scriptaddr} boot.scr.uimg; then " \
|
|
|
+ "source ${scriptaddr}; " \
|
|
|
+ "fi;\0" \
|
|
|
+ \
|
|
|
+ "mmc_boot=" \
|
|
|
+ "setenv devtype mmc; " \
|
|
|
+ "if mmc dev ${devnum}; then " \
|
|
|
+ "run script_boot; " \
|
|
|
+ "fi\0" \
|
|
|
+ \
|
|
|
+ "bootcmd_mmc0=setenv devnum 0; run mmc_boot\0" \
|
|
|
+
|
|
|
+#define CONFIG_BOOTCOMMAND \
|
|
|
+ "for target in ${boot_targets}; do run bootcmd_${target}; done"
|
|
|
+
|
|
|
+#define CONFIG_BOOTDELAY 2
|
|
|
|
|
|
/* Shell */
|
|
|
#define CONFIG_SYS_HUSH_PARSER
|
|
@@ -105,6 +160,13 @@
|
|
|
#include <config_cmd_default.h>
|
|
|
#define CONFIG_CMD_BOOTZ
|
|
|
#define CONFIG_CMD_GPIO
|
|
|
+#define CONFIG_CMD_MMC
|
|
|
+#define CONFIG_DOS_PARTITION
|
|
|
+#define CONFIG_PARTITION_UUIDS
|
|
|
+#define CONFIG_CMD_PART
|
|
|
+#define CONFIG_CMD_FS_GENERIC
|
|
|
+#define CONFIG_CMD_FAT
|
|
|
+#define CONFIG_CMD_EXT
|
|
|
/* Some things don't make sense on this HW or yet */
|
|
|
#undef CONFIG_CMD_FPGA
|
|
|
#undef CONFIG_CMD_NET
|