197 lines
6.9 KiB
Diff
197 lines
6.9 KiB
Diff
From 035006342a2951d92d0150e5c44c8a7c48436360 Mon Sep 17 00:00:00 2001
|
|
From: Robert Nelson <robertcnelson@gmail.com>
|
|
Date: Tue, 14 Mar 2017 09:54:27 -0500
|
|
Subject: [PATCH] wandboard: uEnv.txt, bootz, n fixes
|
|
|
|
Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
|
|
---
|
|
configs/wandboard_defconfig | 4 ++
|
|
include/configs/wandboard.h | 125 +++++++++++++++++++++++++++++++++++++++++++-
|
|
2 files changed, 127 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/configs/wandboard_defconfig b/configs/wandboard_defconfig
|
|
index f4c9b6bc76..b4f81d0a27 100644
|
|
--- a/configs/wandboard_defconfig
|
|
+++ b/configs/wandboard_defconfig
|
|
@@ -18,6 +18,10 @@ CONFIG_BOARD_EARLY_INIT_F=y
|
|
CONFIG_SPL=y
|
|
CONFIG_SPL_EXT_SUPPORT=y
|
|
CONFIG_SPL_I2C_SUPPORT=y
|
|
+CONFIG_AUTOBOOT_KEYED=y
|
|
+CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
|
|
+CONFIG_AUTOBOOT_DELAY_STR="d"
|
|
+CONFIG_AUTOBOOT_STOP_STR=" "
|
|
# CONFIG_CMD_IMLS is not set
|
|
# CONFIG_CMD_FLASH is not set
|
|
CONFIG_CMD_MMC=y
|
|
diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h
|
|
index 7e9757a480..a19b7efe95 100644
|
|
--- a/include/configs/wandboard.h
|
|
+++ b/include/configs/wandboard.h
|
|
@@ -91,10 +91,16 @@
|
|
"fdtfile=undefined\0" \
|
|
"fdt_high=0xffffffff\0" \
|
|
"initrd_high=0xffffffff\0" \
|
|
+ "rdaddr=0x12A00000\0" \
|
|
"fdt_addr_r=0x18000000\0" \
|
|
"fdt_addr=0x18000000\0" \
|
|
"ip_dyn=yes\0" \
|
|
- "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \
|
|
+ "optargs=\0" \
|
|
+ "cmdline=\0" \
|
|
+ "mmcdev=0\0" \
|
|
+ "mmcpart=1\0" \
|
|
+ "mmcroot=/dev/mmcblk0p2 ro\0" \
|
|
+ "mmcrootfstype=ext4 rootwait\0" \
|
|
"update_sd_firmware_filename=u-boot.imx\0" \
|
|
"update_sd_firmware=" \
|
|
"if test ${ip_dyn} = yes; then " \
|
|
@@ -109,6 +115,11 @@
|
|
"mmc write ${loadaddr} 0x2 ${fw_sz}; " \
|
|
"fi; " \
|
|
"fi\0" \
|
|
+ "mmcargs=setenv bootargs console=${console} " \
|
|
+ "${optargs} " \
|
|
+ "root=${mmcroot} " \
|
|
+ "rootfstype=${mmcrootfstype} " \
|
|
+ "${cmdline}\0" \
|
|
"findfdt="\
|
|
"if test $board_name = C1 && test $board_rev = MX6Q ; then " \
|
|
"setenv fdtfile imx6q-wandboard.dtb; fi; " \
|
|
@@ -120,6 +131,111 @@
|
|
"setenv fdtfile imx6dl-wandboard-revb1.dtb; fi; " \
|
|
"if test $fdtfile = undefined; then " \
|
|
"echo WARNING: Could not determine dtb to use; fi; \0" \
|
|
+ "loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
|
|
+ "loadrd=load ${devtype} ${bootpart} ${rdaddr} ${bootdir}/${rdfile}; setenv rdsize ${filesize}\0" \
|
|
+ "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load ${devtype} ${bootpart} ${fdt_addr} ${fdtdir}/${fdtfile}\0" \
|
|
+ "mmcboot=${devtype} dev ${mmcdev}; " \
|
|
+ "if ${devtype} rescan; then " \
|
|
+ "echo SD/MMC found on device ${mmcdev};" \
|
|
+ "setenv bootpart ${mmcdev}:1; " \
|
|
+ "echo Checking for: /uEnv.txt ...;" \
|
|
+ "if test -e ${devtype} ${bootpart} /uEnv.txt; then " \
|
|
+ "load ${devtype} ${bootpart} ${loadaddr} /uEnv.txt;" \
|
|
+ "env import -t ${loadaddr} ${filesize};" \
|
|
+ "echo Loaded environment from /uEnv.txt;" \
|
|
+ "echo Checking if uenvcmd is set ...;" \
|
|
+ "if test -n ${uenvcmd}; then " \
|
|
+ "echo Running uenvcmd ...;" \
|
|
+ "run uenvcmd;" \
|
|
+ "fi;" \
|
|
+ "fi; " \
|
|
+ "echo Checking for: /boot/uEnv.txt ...;" \
|
|
+ "for i in 1 2 3 4 5 6 7 ; do " \
|
|
+ "setenv mmcpart ${i};" \
|
|
+ "setenv bootpart ${mmcdev}:${mmcpart};" \
|
|
+ "if test -e ${devtype} ${bootpart} /boot/uEnv.txt; then " \
|
|
+ "load ${devtype} ${bootpart} ${loadaddr} /boot/uEnv.txt;" \
|
|
+ "env import -t ${loadaddr} ${filesize};" \
|
|
+ "echo Loaded environment from /boot/uEnv.txt;" \
|
|
+ "if test -n ${dtb}; then " \
|
|
+ "setenv fdtfile ${dtb};" \
|
|
+ "echo Using: dtb=${fdtfile} ...;" \
|
|
+ "fi;" \
|
|
+ "echo Checking if uname_r is set in /boot/uEnv.txt...;" \
|
|
+ "if test -n ${uname_r}; then " \
|
|
+ "echo Running uname_boot ...;" \
|
|
+ "part uuid ${devtype} ${bootpart} partuuid ;" \
|
|
+ "setenv mmcroot PARTUUID=${partuuid} ro;" \
|
|
+ "echo Using: mmcroot=${mmcroot} ...;" \
|
|
+ "run uname_boot;" \
|
|
+ "fi;" \
|
|
+ "fi;" \
|
|
+ "done;" \
|
|
+ "fi;\0" \
|
|
+ "uname_boot="\
|
|
+ "setenv bootdir /boot; " \
|
|
+ "setenv bootfile vmlinuz-${uname_r}; " \
|
|
+ "if test -e ${devtype} ${bootpart} ${bootdir}/${bootfile}; then " \
|
|
+ "echo loading ${bootdir}/${bootfile} ...; "\
|
|
+ "run loadimage;" \
|
|
+ "setenv fdtdir /boot/dtbs/${uname_r}; " \
|
|
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
|
+ "run loadfdt;" \
|
|
+ "else " \
|
|
+ "setenv fdtdir /usr/lib/linux-image-${uname_r}; " \
|
|
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
|
+ "run loadfdt;" \
|
|
+ "else " \
|
|
+ "setenv fdtdir /lib/firmware/${uname_r}/device-tree; " \
|
|
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
|
+ "run loadfdt;" \
|
|
+ "else " \
|
|
+ "setenv fdtdir /boot/dtb-${uname_r}; " \
|
|
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
|
+ "run loadfdt;" \
|
|
+ "else " \
|
|
+ "setenv fdtdir /boot/dtbs; " \
|
|
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
|
+ "run loadfdt;" \
|
|
+ "else " \
|
|
+ "setenv fdtdir /boot/dtb; " \
|
|
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
|
+ "run loadfdt;" \
|
|
+ "else " \
|
|
+ "setenv fdtdir /boot; " \
|
|
+ "if test -e ${devtype} ${bootpart} ${fdtdir}/${fdtfile}; then " \
|
|
+ "run loadfdt;" \
|
|
+ "else " \
|
|
+ "echo; echo unable to find ${fdtfile} ...; echo booting legacy ...;"\
|
|
+ "run mmcargs;" \
|
|
+ "echo debug: [${bootargs}] ... ;" \
|
|
+ "echo debug: [bootz ${loadaddr}] ... ;" \
|
|
+ "bootz ${loadaddr}; " \
|
|
+ "fi;" \
|
|
+ "fi;" \
|
|
+ "fi;" \
|
|
+ "fi;" \
|
|
+ "fi;" \
|
|
+ "fi;" \
|
|
+ "fi; " \
|
|
+ "setenv rdfile initrd.img-${uname_r}; " \
|
|
+ "if test -e ${devtype} ${bootpart} ${bootdir}/${rdfile}; then " \
|
|
+ "echo loading ${bootdir}/${rdfile} ...; "\
|
|
+ "run loadrd;" \
|
|
+ "if test -n ${uuid}; then " \
|
|
+ "setenv mmcroot UUID=${uuid} ro;" \
|
|
+ "fi;" \
|
|
+ "run mmcargs;" \
|
|
+ "echo debug: [${bootargs}] ... ;" \
|
|
+ "echo debug: [bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdt_addr}] ... ;" \
|
|
+ "bootz ${loadaddr} ${rdaddr}:${rdsize} ${fdt_addr}; " \
|
|
+ "else " \
|
|
+ "run mmcargs;" \
|
|
+ "echo debug: [${bootargs}] ... ;" \
|
|
+ "echo debug: [bootz ${loadaddr} - ${fdt_addr}] ... ;" \
|
|
+ "bootz ${loadaddr} - ${fdt_addr}; " \
|
|
+ "fi;" \
|
|
+ "fi;\0" \
|
|
"kernel_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
|
|
"pxefile_addr_r=" __stringify(CONFIG_LOADADDR) "\0" \
|
|
"ramdisk_addr_r=0x13000000\0" \
|
|
@@ -136,6 +252,11 @@
|
|
|
|
#define CONFIG_BOOTCOMMAND \
|
|
"run findfdt; " \
|
|
+ "setenv devtype mmc;" \
|
|
+ "setenv mmcdev 0;" \
|
|
+ "run mmcboot;" \
|
|
+ "setenv mmcdev 1;" \
|
|
+ "run mmcboot;" \
|
|
"run distro_bootcmd"
|
|
|
|
#include <config_distro_bootcmd.h>
|
|
@@ -154,7 +275,7 @@
|
|
(CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
|
|
|
|
/* Environment organization */
|
|
-#define CONFIG_ENV_SIZE (8 * 1024)
|
|
+#define CONFIG_ENV_SIZE (10 * 1024)
|
|
|
|
#define CONFIG_ENV_IS_IN_MMC
|
|
#define CONFIG_ENV_OFFSET (768 * 1024)
|
|
--
|
|
2.11.0
|
|
|