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>
This commit is contained in:
		
							parent
							
								
									7341714d6e
								
							
						
					
					
						commit
						a47ca2cf67
					
				|  | @ -89,28 +89,35 @@ | ||||||
| #define MEM_LAYOUT_ENV_SETTINGS \ | #define MEM_LAYOUT_ENV_SETTINGS \ | ||||||
| 	DEFAULT_LINUX_BOOT_ENV | 	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) \ | #define BOOTENV_DEV_NAND(devtypeu, devtypel, instance) \ | ||||||
| 	"bootcmd_" #devtypel #instance "=" \ | 	"bootcmd_" #devtypel #instance "=" \ | ||||||
| 	"run nandboot\0" | 	"run nandboot\0" | ||||||
| 
 |  | ||||||
| #define BOOTENV_DEV_NAME_NAND(devtypeu, devtypel, instance) \ | #define BOOTENV_DEV_NAME_NAND(devtypeu, devtypel, instance) \ | ||||||
| 	#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) \ | #define BOOTENV_DEV_UIMAGE_MMC(devtypeu, devtypel, instance) \ | ||||||
| 	"bootcmd_" #devtypel #instance "=" \ | 	"bootcmd_" #devtypel #instance "=" \ | ||||||
| 		"setenv mmcdev " #instance"; " \ | 		"setenv mmcdev " #instance"; " \ | ||||||
| 		"run mmcboot\0" | 		"run mmcboot\0" | ||||||
| 
 |  | ||||||
| #define BOOTENV_DEV_NAME_UIMAGE_MMC(devtypeu, devtypel, instance) \ | #define BOOTENV_DEV_NAME_UIMAGE_MMC(devtypeu, devtypel, instance) \ | ||||||
| 	#devtypel #instance " " | 	#devtypel #instance " " | ||||||
| 
 | 
 | ||||||
|  | /* MMC boot with zImage from MMC 0:2 '/boot/zImage' */ | ||||||
| #define BOOTENV_DEV_ZIMAGE_MMC(devtypeu, devtypel, instance) \ | #define BOOTENV_DEV_ZIMAGE_MMC(devtypeu, devtypel, instance) \ | ||||||
| 	"bootcmd_" #devtypel #instance "=" \ | 	"bootcmd_" #devtypel #instance "=" \ | ||||||
| 		"setenv mmcdev " #instance"; " \ | 		"setenv mmcdev " #instance"; " \ | ||||||
| 		"run mmcbootz\0" | 		"run mmcbootz\0" | ||||||
| 
 |  | ||||||
| #define BOOTENV_DEV_NAME_ZIMAGE_MMC(devtypeu, devtypel, instance) \ | #define BOOTENV_DEV_NAME_ZIMAGE_MMC(devtypeu, devtypel, instance) \ | ||||||
| 	#devtypel #instance " " | 	#devtypel #instance " " | ||||||
| 
 | 
 | ||||||
|  | @ -118,6 +125,7 @@ | ||||||
| 	func(MMC, mmc, 0) \ | 	func(MMC, mmc, 0) \ | ||||||
| 	func(ZIMAGE_MMC, zimage_mmc, 0) \ | 	func(ZIMAGE_MMC, zimage_mmc, 0) \ | ||||||
| 	func(UIMAGE_MMC, uimage_mmc, 0) \ | 	func(UIMAGE_MMC, uimage_mmc, 0) \ | ||||||
|  | 	func(UBIFS_NAND, ubifs_nand, 0) \ | ||||||
| 	func(NAND, nand, 0) | 	func(NAND, nand, 0) | ||||||
| 
 | 
 | ||||||
| #include <config_distro_bootcmd.h> | #include <config_distro_bootcmd.h> | ||||||
|  | @ -128,9 +136,11 @@ | ||||||
| 	"mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \ | 	"mtdids=" CONFIG_MTDIDS_DEFAULT "\0" \ | ||||||
| 	"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \ | 	"mtdparts=" CONFIG_MTDPARTS_DEFAULT "\0" \ | ||||||
| 	"fdt_high=0xffffffff\0" \ | 	"fdt_high=0xffffffff\0" \ | ||||||
|  | 	"bootdir=/boot\0" \ | ||||||
| 	"bootenv=uEnv.txt\0" \ | 	"bootenv=uEnv.txt\0" \ | ||||||
| 	"optargs=\0" \ | 	"optargs=\0" \ | ||||||
| 	"mmcdev=0\0" \ | 	"mmcdev=0\0" \ | ||||||
|  | 	"mmcpart=2\0" \ | ||||||
| 	"console=ttyO0,115200n8\0" \ | 	"console=ttyO0,115200n8\0" \ | ||||||
| 	"mmcargs=setenv bootargs console=${console} " \ | 	"mmcargs=setenv bootargs console=${console} " \ | ||||||
| 		"${mtdparts} " \ | 		"${mtdparts} " \ | ||||||
|  | @ -143,39 +153,52 @@ | ||||||
| 		"root=ubi0:rootfs rw ubi.mtd=rootfs noinitrd " \ | 		"root=ubi0:rootfs rw ubi.mtd=rootfs noinitrd " \ | ||||||
| 		"rootfstype=ubifs rootwait\0" \ | 		"rootfstype=ubifs rootwait\0" \ | ||||||
| 	"loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ | 	"loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \ | ||||||
|  | 	"ext4bootenv=ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootenv}\0" \ | ||||||
| 	"importbootenv=echo Importing environment from mmc ...; " \ | 	"importbootenv=echo Importing environment from mmc ...; " \ | ||||||
| 		"env import -t ${loadaddr} ${filesize}\0" \ | 		"env import -t ${loadaddr} ${filesize}\0" \ | ||||||
| 	"mmcbootenv=" \ | 	"mmcbootenv=mmc dev ${mmcdev}; " \ | ||||||
| 		"mmc dev ${mmcdev}; " \ | 		"if mmc rescan; then " \ | ||||||
| 		"if mmc rescan && run loadbootenv; then " \ | 			"run loadbootenv && run importbootenv; " \ | ||||||
| 			"run importbootenv; " \ | 			"run ext4bootenv && run importbootenv; " \ | ||||||
| 			"if test -n $uenvcmd; then " \ | 			"if test -n $uenvcmd; then " \ | ||||||
| 				"echo Running uenvcmd ...; " \ | 				"echo Running uenvcmd ...; " \ | ||||||
| 				"run uenvcmd; " \ | 				"run uenvcmd; " \ | ||||||
| 			"fi; " \ | 			"fi; " \ | ||||||
| 		"fi\0" \ | 		"fi\0" \ | ||||||
| 	"loaduimage=setenv bootfile uImage; " \ | 	"loaduimage=setenv bootfile uImage; " \ | ||||||
| 		"fatload mmc ${mmcdev} ${loadaddr} uImage\0" \ | 		"ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ | ||||||
| 	"loadzimage=setenv bootfile zImage; " \ | 	"loadzimage=setenv bootfile zImage; " \ | ||||||
| 		"fatload mmc ${mmcdev} ${loadaddr} zImage\0" \ | 		"ext4load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ | ||||||
| 	"loaddtb=fatload mmc ${mmcdev} ${fdtaddr} ${fdtfile}\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; " \ | 	"mmcboot=run mmcbootenv; " \ | ||||||
| 		"if run loaduimage && run loaddtb; then " \ | 		"if run loaduimage && run loaddtb; then " \ | ||||||
| 			"echo Booting ${bootfile} from mmc ...; " \ | 			"echo Booting ${bootdir}/${bootfile} from mmc ${mmcdev}:${mmcpart} ...; " \ | ||||||
| 			"run mmcargs; " \ | 			"run mmcargs; " \ | ||||||
| 			"bootm ${loadaddr} - ${fdtaddr}; " \ | 			"bootm ${loadaddr} - ${fdtaddr}; " \ | ||||||
| 		"fi\0" \ | 		"fi\0" \ | ||||||
| 	"mmcbootz=run mmcbootenv; " \ | 	"mmcbootz=run mmcbootenv; " \ | ||||||
| 		"if run loadzimage && run loaddtb; then " \ | 		"if run loadzimage && run loaddtb; then " \ | ||||||
| 			"echo Booting ${bootfile} from mmc ...; " \ | 			"echo Booting ${bootdir}/${bootfile} from mmc ${mmcdev}:${mmcpart} ...; " \ | ||||||
| 			"run mmcargs; " \ | 			"run mmcargs; " \ | ||||||
| 			"bootz ${loadaddr} - ${fdtaddr};" \ | 			"bootz ${loadaddr} - ${fdtaddr}; " \ | ||||||
| 		"fi\0" \ | 		"fi\0" \ | ||||||
| 	"nandboot=echo Booting uImage from nand ...; " \ | 	"nandboot=" \ | ||||||
| 		"run nandargs; " \ |  | ||||||
| 		"nand read ${loadaddr} kernel; " \ | 		"nand read ${loadaddr} kernel; " \ | ||||||
| 		"nand read ${fdtaddr} dtb; " \ | 		"nand read ${fdtaddr} dtb; " \ | ||||||
|  | 		"echo Booting uImage from NAND MTD 'kernel' partition ...; " \ | ||||||
|  | 		"run nandargs; " \ | ||||||
| 		"bootm ${loadaddr} - ${fdtaddr}\0" \ | 		"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 | 	BOOTENV | ||||||
| 
 | 
 | ||||||
| #endif /* __CONFIG_H */ | #endif /* __CONFIG_H */ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue