]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
OMAP3: igep00x0: allow booting with a FDT from MMC
authorJavier Martinez Canillas <javier@dowhile0.org>
Wed, 7 Aug 2013 15:53:19 +0000 (17:53 +0200)
committerTom Rini <trini@ti.com>
Thu, 15 Aug 2013 22:38:35 +0000 (18:38 -0400)
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>
board/isee/igep00x0/igep00x0.c
include/configs/igep00x0.h

index 77a9bc6c275896719dd2b5a70a40eeca32a8b24c..7a7500b342076476e98a25cc5e86892d543ce5ca 100644 (file)
@@ -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;
 }
 
index a555e5a190602ec73b1f5e65fde074711c995e56..722c56652f1b22417642ec79e3d0d527a5096e89 100644 (file)
 #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" \
        "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; " \
                        "run uenvcmd;" \
                "fi;" \
                "if run loadzimage; then " \
+                       "if test -n $dtbfile; then " \
+                               "if run loadfdt; then " \
+                                       "run mmcbootfdt;" \
+                               "fi;" \
+                       "fi;" \
                        "run mmcboot;" \
                "fi;" \
        "fi;" \