summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Martinez Canillas <javier@dowhile0.org>2013-08-07 17:53:19 +0200
committerTom Rini <trini@ti.com>2013-08-15 18:38:35 -0400
commita2fa28bc988fdc1cb5cc00abc8b63626bc3c9f76 (patch)
tree4c07017a30159c1dcd65e32c31ebbe5954013aaa
parent2be6bed003e20e0049d245b1447277cafbb30a72 (diff)
downloadu-boot-imx-a2fa28bc988fdc1cb5cc00abc8b63626bc3c9f76.zip
u-boot-imx-a2fa28bc988fdc1cb5cc00abc8b63626bc3c9f76.tar.gz
u-boot-imx-a2fa28bc988fdc1cb5cc00abc8b63626bc3c9f76.tar.bz2
OMAP3: igep00x0: allow booting with a FDT from MMC
IGEP boards now have Device Tree support in the mainline kernel. To boot an IGEP board using a DT, a uEnv.txt plain text file could be used to define a custom uenvcmd that will be run by the default boot command. It is more convenient to change the default boot command to allow loading a FDT if it is stored in the boot dir of the rootfs uSD/MMC partition. If no FDT is found then the defaul command tries to boot a zImage without a DT using legacy boot. Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
-rw-r--r--board/isee/igep00x0/igep00x0.c14
-rw-r--r--include/configs/igep00x0.h13
2 files changed, 26 insertions, 1 deletions
diff --git a/board/isee/igep00x0/igep00x0.c b/board/isee/igep00x0/igep00x0.c
index 77a9bc6..7a7500b 100644
--- a/board/isee/igep00x0/igep00x0.c
+++ b/board/isee/igep00x0/igep00x0.c
@@ -138,6 +138,18 @@ int board_mmc_init(bd_t *bis)
}
#endif
+void set_fdt(void)
+{
+ switch (gd->bd->bi_arch_number) {
+ case MACH_TYPE_IGEP0020:
+ setenv("dtbfile", "omap3-igep0020.dtb");
+ break;
+ case MACH_TYPE_IGEP0030:
+ setenv("dtbfile", "omap3-igep0030.dtb");
+ break;
+ }
+}
+
/*
* Routine: misc_init_r
* Description: Configure board specific parts
@@ -150,6 +162,8 @@ int misc_init_r(void)
dieid_num_r();
+ set_fdt();
+
return 0;
}
diff --git a/include/configs/igep00x0.h b/include/configs/igep00x0.h
index a555e5a..722c566 100644
--- a/include/configs/igep00x0.h
+++ b/include/configs/igep00x0.h
@@ -138,6 +138,9 @@
#define CONFIG_EXTRA_ENV_SETTINGS \
"usbtty=cdc_acm\0" \
"loadaddr=0x82000000\0" \
+ "dtbaddr=0x81600000\0" \
+ "bootdir=/boot\0" \
+ "bootfile=zImage\0" \
"usbtty=cdc_acm\0" \
"console=ttyO2,115200n8\0" \
"mpurate=auto\0" \
@@ -168,10 +171,13 @@
"loadbootenv=load mmc ${mmcdev} ${loadaddr} uEnv.txt\0" \
"importbootenv=echo Importing environment from mmc ...; " \
"env import -t $loadaddr $filesize\0" \
- "loadzimage=load mmc ${mmcdev} ${loadaddr} zImage\0" \
+ "loadzimage=load mmc ${mmcdev}:2 ${loadaddr} ${bootdir}/${bootfile}\0" \
+ "loadfdt=load mmc ${mmcdev}:2 ${dtbaddr} ${bootdir}/${dtbfile}\0" \
"mmcboot=echo Booting from mmc ...; " \
"run mmcargs; " \
"bootz ${loadaddr}\0" \
+ "mmcbootfdt=echo Booting with DT from mmc ...; " \
+ "bootz ${loadaddr} - ${dtbaddr}\0" \
"nandboot=echo Booting from onenand ...; " \
"run nandargs; " \
"onenand read ${loadaddr} 280000 400000; " \
@@ -188,6 +194,11 @@
"run uenvcmd;" \
"fi;" \
"if run loadzimage; then " \
+ "if test -n $dtbfile; then " \
+ "if run loadfdt; then " \
+ "run mmcbootfdt;" \
+ "fi;" \
+ "fi;" \
"run mmcboot;" \
"fi;" \
"fi;" \