158 lines
5.3 KiB
Diff
158 lines
5.3 KiB
Diff
|
Index: u-boot-2013.04/drivers/mmc/spl_mmc.c
|
||
|
===================================================================
|
||
|
--- u-boot-2013.04.orig/drivers/mmc/spl_mmc.c
|
||
|
+++ u-boot-2013.04/drivers/mmc/spl_mmc.c
|
||
|
@@ -67,6 +67,59 @@ end:
|
||
|
}
|
||
|
|
||
|
#ifdef CONFIG_SPL_FAT_SUPPORT
|
||
|
+static void mmc_load_image_ext2(struct mmc *mmc)
|
||
|
+{
|
||
|
+ s32 err;
|
||
|
+ struct image_header *header;
|
||
|
+ char *payloadname;
|
||
|
+ int filelen;
|
||
|
+ disk_partition_t part_info = {};
|
||
|
+
|
||
|
+ header = (struct image_header *)(CONFIG_SYS_TEXT_BASE -
|
||
|
+ sizeof(struct image_header));
|
||
|
+
|
||
|
+ if (get_partition_info(&mmc->block_dev,
|
||
|
+ CONFIG_SYS_MMC_SD_FAT_BOOT_PARTITION, &part_info)) {
|
||
|
+ printf("spl: no partition table found\n");
|
||
|
+ hang();
|
||
|
+ }
|
||
|
+
|
||
|
+ err = ext4fs_set_blk_dev(&mmc->block_dev, &part_info);
|
||
|
+ if (!err) {
|
||
|
+ printf("spl: ext4fs register err - %d\n", err);
|
||
|
+ hang();
|
||
|
+ }
|
||
|
+
|
||
|
+ err = ext4fs_mount(0);
|
||
|
+ if (!err) {
|
||
|
+ printf("spl: ext4fs mount err - %d\n", err);
|
||
|
+ hang();
|
||
|
+ }
|
||
|
+
|
||
|
+
|
||
|
+ payloadname = "u-boot.img";
|
||
|
+
|
||
|
+ filelen = err = ext4fs_open(payloadname);
|
||
|
+ if (err < 0) {
|
||
|
+ goto end;
|
||
|
+ }
|
||
|
+ err = ext4fs_read((u8 *)header, sizeof(struct image_header));
|
||
|
+ if (err <= 0) {
|
||
|
+ goto end;
|
||
|
+ }
|
||
|
+
|
||
|
+ spl_parse_image_header(header);
|
||
|
+
|
||
|
+ err = ext4fs_read((u8 *)spl_image.load_addr, filelen);
|
||
|
+
|
||
|
+end:
|
||
|
+ if (err <= 0) {
|
||
|
+ printf("spl: error reading image %s, err - %d\n",
|
||
|
+ payloadname, err);
|
||
|
+ hang();
|
||
|
+ }
|
||
|
+}
|
||
|
+
|
||
|
static void mmc_load_image_fat(struct mmc *mmc)
|
||
|
{
|
||
|
s32 err;
|
||
|
@@ -127,7 +180,8 @@ void spl_mmc_load_image(void)
|
||
|
#ifdef CONFIG_SPL_FAT_SUPPORT
|
||
|
} else if (boot_mode == MMCSD_MODE_FAT) {
|
||
|
debug("boot mode - FAT\n");
|
||
|
- mmc_load_image_fat(mmc);
|
||
|
+// mmc_load_image_fat(mmc);
|
||
|
+ mmc_load_image_ext2(mmc);
|
||
|
#endif
|
||
|
} else {
|
||
|
puts("spl: wrong MMC boot mode\n");
|
||
|
Index: u-boot-2013.04/include/configs/omap3_beagle.h
|
||
|
===================================================================
|
||
|
--- u-boot-2013.04.orig/include/configs/omap3_beagle.h
|
||
|
+++ u-boot-2013.04/include/configs/omap3_beagle.h
|
||
|
@@ -55,6 +55,7 @@
|
||
|
|
||
|
#define CONFIG_OF_LIBFDT
|
||
|
#define CONFIG_CMD_BOOTZ
|
||
|
+#define CONFIG_SUPPORT_RAW_INITRD /* bootz raw initrd support */
|
||
|
|
||
|
#define CONFIG_CMDLINE_TAG 1 /* enable passing of ATAGs */
|
||
|
#define CONFIG_SETUP_MEMORY_TAGS 1
|
||
|
@@ -255,7 +256,7 @@
|
||
|
"root=${nandroot} " \
|
||
|
"rootfstype=${nandrootfstype}\0" \
|
||
|
"bootenv=uEnv.txt\0" \
|
||
|
- "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \
|
||
|
+ "loadbootenv=ext2load mmc ${mmcdev} ${loadaddr} ${bootenv}\0" \
|
||
|
"importbootenv=echo Importing environment from mmc ...; " \
|
||
|
"env import -t $loadaddr $filesize\0" \
|
||
|
"ramargs=setenv bootargs console=${console} " \
|
||
|
@@ -267,8 +268,8 @@
|
||
|
"omapdss.def_disp=${defaultdisplay} " \
|
||
|
"root=${ramroot} " \
|
||
|
"rootfstype=${ramrootfstype}\0" \
|
||
|
- "loadramdisk=fatload mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \
|
||
|
- "loaduimagefat=fatload mmc ${mmcdev} ${loadaddr} uImage\0" \
|
||
|
+ "loadramdisk=ext2load mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \
|
||
|
+ "loaduimagefat=ext2load mmc ${mmcdev} ${loadaddr} uImage\0" \
|
||
|
"loaduimage=ext2load mmc ${mmcdev}:2 ${loadaddr} /boot/uImage\0" \
|
||
|
"mmcboot=echo Booting from mmc ...; " \
|
||
|
"run mmcargs; " \
|
||
|
Index: u-boot-2013.04/include/configs/omap4_common.h
|
||
|
===================================================================
|
||
|
--- u-boot-2013.04.orig/include/configs/omap4_common.h
|
||
|
+++ u-boot-2013.04/include/configs/omap4_common.h
|
||
|
@@ -126,6 +126,7 @@
|
||
|
#define CONFIG_CMD_FAT /* FAT support */
|
||
|
#define CONFIG_CMD_I2C /* I2C serial bus support */
|
||
|
#define CONFIG_CMD_MMC /* MMC support */
|
||
|
+#define CONFIG_SUPPORT_RAW_INITRD /* bootz raw initrd support */
|
||
|
|
||
|
/* Disabled commands */
|
||
|
#undef CONFIG_CMD_NET
|
||
|
@@ -162,10 +163,10 @@
|
||
|
"vram=${vram} " \
|
||
|
"root=${mmcroot} " \
|
||
|
"rootfstype=${mmcrootfstype}\0" \
|
||
|
- "loadbootscript=fatload mmc ${mmcdev} ${loadaddr} boot.scr\0" \
|
||
|
+ "loadbootscript=ext2load mmc ${mmcdev} ${loadaddr} boot.scr\0" \
|
||
|
"bootscript=echo Running bootscript from mmc${mmcdev} ...; " \
|
||
|
"source ${loadaddr}\0" \
|
||
|
- "loadbootenv=fatload mmc ${mmcdev} ${loadaddr} uEnv.txt\0" \
|
||
|
+ "loadbootenv=ext2load mmc ${mmcdev} ${loadaddr} uEnv.txt\0" \
|
||
|
"importbootenv=echo Importing environment from mmc${mmcdev} ...; " \
|
||
|
"env import -t ${loadaddr} ${filesize}\0" \
|
||
|
"loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \
|
||
|
Index: u-boot-2013.04/spl/Makefile
|
||
|
===================================================================
|
||
|
--- u-boot-2013.04.orig/spl/Makefile
|
||
|
+++ u-boot-2013.04/spl/Makefile
|
||
|
@@ -72,6 +72,7 @@ LIBS-$(CONFIG_SPL_SERIAL_SUPPORT) += dri
|
||
|
LIBS-$(CONFIG_SPL_SPI_FLASH_SUPPORT) += drivers/mtd/spi/libspi_flash.o
|
||
|
LIBS-$(CONFIG_SPL_SPI_SUPPORT) += drivers/spi/libspi.o
|
||
|
LIBS-$(CONFIG_SPL_FAT_SUPPORT) += fs/fat/libfat.o
|
||
|
+LIBS-$(CONFIG_SPL_FAT_SUPPORT) += fs/ext4/libext4fs.o
|
||
|
LIBS-$(CONFIG_SPL_LIBGENERIC_SUPPORT) += lib/libgeneric.o
|
||
|
LIBS-$(CONFIG_SPL_POWER_SUPPORT) += drivers/power/libpower.o
|
||
|
LIBS-$(CONFIG_SPL_NAND_SUPPORT) += drivers/mtd/nand/libnand.o
|
||
|
Index: u-boot-2013.04/arch/arm/cpu/armv7/omap3/board.c
|
||
|
===================================================================
|
||
|
--- u-boot-2013.04.orig/arch/arm/cpu/armv7/omap3/board.c
|
||
|
+++ u-boot-2013.04/arch/arm/cpu/armv7/omap3/board.c
|
||
|
@@ -77,6 +77,8 @@ u32 omap3_boot_device = BOOT_DEVICE_NAND
|
||
|
/* auto boot mode detection is not possible for OMAP3 - hard code */
|
||
|
u32 spl_boot_mode(void)
|
||
|
{
|
||
|
+ return MMCSD_MODE_FAT;
|
||
|
+
|
||
|
switch (spl_boot_device()) {
|
||
|
case BOOT_DEVICE_MMC2:
|
||
|
return MMCSD_MODE_RAW;
|
||
|
|