diff options
author | Derald D. Woods <woods.technical@gmail.com> | 2018-01-06 23:10:06 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-01-19 15:49:30 -0500 |
commit | a47ca2cf67b4e3a91612aca53a5421814c38d1b4 (patch) | |
tree | 1a9b30def051d6900743def4c213c039f3165eb5 | |
parent | 7341714d6e489fd2b552181deae1e5dca2d85b52 (diff) | |
download | u-boot-a47ca2cf67b4e3a91612aca53a5421814c38d1b4.zip u-boot-a47ca2cf67b4e3a91612aca53a5421814c38d1b4.tar.gz u-boot-a47ca2cf67b4e3a91612aca53a5421814c38d1b4.tar.bz2 |
ARM: omap3: evm: Add kernel image loading from UBIFS and EXT4
This commit adds UBIFS_NAND to BOOT_TARGET_DEVICES. This will
allow the kernel zImage to be loaded from '/boot/zImage' in UBIFS
(ubi0:rootfs).
Additionally update the *_MMC devices to also load kernel image from
the MMC 0:2 EXT4 file system.
DISTRO_DEFAULTS Setup
=====================
[primary] Check MMC 0:1 for /extlinux/extlinux.conf and boot
[fallback 1] Check MMC 0:2 /boot/zImage and run mmcbootz
[fallback 2] Check MMC 0:2 /boot/uImage and run mmcboot
[fallback 3] Check NAND UBIFS /boot/zImage and run nandbootubifs
[fallback 4] Check NAND partitions and run nandboot
The following "extlinux.conf" can be used to load images in the
top-level of the MMC 0:1 FAT partition.
[MMC(0:1)/extlinux/extlinux.conf]
---8<-------------------------------------------------------------------
default omap3-evm
label omap3-evm
kernel /zImage
fdt /omap3-evm.dtb
append console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait
---8<-------------------------------------------------------------------
Signed-off-by: Derald D. Woods <woods.technical@gmail.com>
-rw-r--r-- | include/configs/omap3_evm.h | 57 |
1 files changed, 40 insertions, 17 deletions
diff --git a/include/configs/omap3_evm.h b/include/configs/omap3_evm.h index d95ccdf..3ecfdbb 100644 --- a/include/configs/omap3_evm.h +++ b/include/configs/omap3_evm.h @@ -89,28 +89,35 @@ #define MEM_LAYOUT_ENV_SETTINGS \ DEFAULT_LINUX_BOOT_ENV -#if defined(CONFIG_NAND) +#if defined(CONFIG_NAND) && defined(CONFIG_CMD_UBI) +/* NAND boot with uImage from NAND 'kernel' partition */ #define BOOTENV_DEV_NAND(devtypeu, devtypel, instance) \ "bootcmd_" #devtypel #instance "=" \ "run nandboot\0" - #define BOOTENV_DEV_NAME_NAND(devtypeu, devtypel, instance) \ #devtypel #instance " " -#endif /* CONFIG_NAND */ +/* NAND boot with zImage from UBIFS '/boot/zImage' */ +#define BOOTENV_DEV_UBIFS_NAND(devtypeu, devtypel, instance) \ + "bootcmd_" #devtypel #instance "=" \ + "run nandbootubifs\0" +#define BOOTENV_DEV_NAME_UBIFS_NAND(devtypeu, devtypel, instance) \ + #devtypel #instance " " +#endif /* CONFIG_NAND && CONFIG_CMD_UBI */ + +/* MMC boot with uImage from MMC 0:2 '/boot/uImage' */ #define BOOTENV_DEV_UIMAGE_MMC(devtypeu, devtypel, instance) \ "bootcmd_" #devtypel #instance "=" \ "setenv mmcdev " #instance"; " \ "run mmcboot\0" - #define BOOTENV_DEV_NAME_UIMAGE_MMC(devtypeu, devtypel, instance) \ #devtypel #instance " " +/* MMC boot with zImage from MMC 0:2 '/boot/zImage' */ #define BOOTENV_DEV_ZIMAGE_MMC(devtypeu, devtypel, instance) \ "bootcmd_" #devtypel #instance "=" \ "setenv mmcdev " #instance"; " \ "run mmcbootz\0" - #define BOOTENV_DEV_NAME_ZIMAGE_MMC(devtypeu, devtypel, instance) \ #devtypel #instance " " @@ -118,6 +125,7 @@ func(MMC, mmc, 0) \ func(ZIMAGE_MMC, zimage_mmc, 0) \ func(UIMAGE_MMC, uimage_mmc, 0) \ + func(UBIFS_NAND, ubifs_nand, 0) \ func(NAND, nand, 0) #include <config_distro_bootcmd.h> @@ -128,9 +136,11 @@ "mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \ "mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \ "fdt_high=0xffffffff\0" \ + "bootdir=/boot\0" \ "bootenv=uEnv.txt\0" \ "optargs=\0" \ "mmcdev=0\0" \ + "mmcpart=2\0" \ "console=ttyO0,115200n8\0" \ "mmcargs=setenv bootargs console=${console} " \ "${mtdparts} " \ @@ -143,39 +153,52 @@ "root=ubi0:rootfs rw ubi.mtd=rootfs noinitrd " \ "rootfstype=ubifs rootwait\0" \ "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ + "ext4bootenv=ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootenv}\0" \ "importbootenv=echo Importing environment from mmc ...; " \ "env import -t ${loadaddr} ${filesize}\0" \ - "mmcbootenv=" \ - "mmc dev ${mmcdev}; " \ - "if mmc rescan && run loadbootenv; then " \ - "run importbootenv; " \ + "mmcbootenv=mmc dev ${mmcdev}; " \ + "if mmc rescan; then " \ + "run loadbootenv && run importbootenv; " \ + "run ext4bootenv && run importbootenv; " \ "if test -n $uenvcmd; then " \ "echo Running uenvcmd ...; " \ "run uenvcmd; " \ "fi; " \ "fi\0" \ "loaduimage=setenv bootfile uImage; " \ - "fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ + "ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ "loadzimage=setenv bootfile zImage; " \ - "fatload mmc ${mmcdev} ${loadaddr} zImage\0" \ - "loaddtb=fatload mmc ${mmcdev} ${fdtaddr} ${fdtfile}\0" \ + "ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ + "loaddtb=ext4load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \ + "loadubizimage=setenv bootfile zImage; " \ + "ubifsload ${loadaddr} ${bootdir}/${bootfile}\0" \ + "loadubidtb=ubifsload ${fdtaddr} ${bootdir}/${fdtfile}\0" \ "mmcboot=run mmcbootenv; " \ "if run loaduimage && run loaddtb; then " \ - "echo Booting ${bootfile} from mmc ...; " \ + "echo Booting ${bootdir}/${bootfile} from mmc ${mmcdev}:${mmcpart} ...; " \ "run mmcargs; " \ "bootm ${loadaddr} - ${fdtaddr}; " \ "fi\0" \ "mmcbootz=run mmcbootenv; " \ "if run loadzimage && run loaddtb; then " \ - "echo Booting ${bootfile} from mmc ...; " \ + "echo Booting ${bootdir}/${bootfile} from mmc ${mmcdev}:${mmcpart} ...; " \ "run mmcargs; " \ - "bootz ${loadaddr} - ${fdtaddr};" \ + "bootz ${loadaddr} - ${fdtaddr}; " \ "fi\0" \ - "nandboot=echo Booting uImage from nand ...; " \ - "run nandargs; " \ + "nandboot=" \ "nand read ${loadaddr} kernel; " \ "nand read ${fdtaddr} dtb; " \ + "echo Booting uImage from NAND MTD 'kernel' partition ...; " \ + "run nandargs; " \ "bootm ${loadaddr} - ${fdtaddr}\0" \ + "nandbootubifs=" \ + "ubi part rootfs; " \ + "ubifsmount ubi0:rootfs; " \ + "if run loadubizimage && run loadubidtb; then " \ + "echo Booting ${bootdir}/${bootfile} from NAND ubi0:rootfs ...; " \ + "run nandargs; " \ + "bootz ${loadaddr} - ${fdtaddr}; " \ + "fi\0" \ BOOTENV #endif /* __CONFIG_H */ |