[U-Boot] eMMC 4.41 boot partition booting issue

Matthew Starr mstarr at hedonline.com
Fri Apr 24 17:17:07 CEST 2015


All,

I have been using u-boot 2013.07 on an i.MX53 custom board with u-boot installed in an eMMC boot partition and the u-boot environment and Linux zImage on a GPT partition in the eMMC user area formatted with ext2.  This has worked great for booting a u-boot environment and kernel in the eMMC user area since u-boot 2013.07 didn't have support for reading the boot partitions.

Now I am trying to upgrade to u-boot 2015.04 to include some additional support for eMMC like enabling enhanced data area and boot partition awareness.  It seems no matter what configuration I try, I am unable to see my u-boot environment or Linux zImage files on my ext2 partition which worked fine in my previous version of u-boot.  I have tried the following configurations:
- eMMC boot partition contains uboot and the user area has a GPT partition formatted with ext2 containing the u-boot environment and zImage.
- eMMC boot partition contains uboot and at 1MB into the 16MB boot partition a msdos partition is created and formatted with ext2 containing the u-boot environment and zImage.

Here is what my boot output looks like:
U-Boot 2015.04 (Apr 24 2015 - 08:53:58)

Board: PM-048
       Watchdog enabled
I2C:   ready
DRAM:  128 MiB
MMC:   FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   CPU Net Initialization Failed
No ethernet found.
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0(part 0) is current device
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
ERROR: Failed to load environment from uEnv.txt
Running default boot command ...
Booting from mmc ...
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **
Wrong Image Format for bootm command
ERROR: can't get kernel image!

Here are the MMC related #defines I have included in my include/configs header file:
/* MMC Configs */
#define CONFIG_FSL_ESDHC
#define CONFIG_SYS_FSL_ESDHC_ADDR       0
#define CONFIG_MMC
#define CONFIG_CMD_MMC
#define CONFIG_CMD_BOOTZ                        /* bootz zImage support */
#define CONFIG_SUPPORT_RAW_INITRD               /* bootz raw initrd support */
#define CONFIG_GENERIC_MMC
#define CONFIG_CMD_FAT
#define CONFIG_CMD_EXT2
#define CONFIG_CMD_EXT4
#define CONFIG_CMD_FS_GENERIC                   /* Generic load commands */
#define CONFIG_DOS_PARTITION
#define CONFIG_SUPPORT_EMMC_BOOT

I also added the following #define thinking this might help, but I still get the same errors with or without it.
#define CONFIG_SYS_MMC_ENV_PART 0

When using the uboot command prompt, here is some of the output from the mmc commands:
PM-048 U-Boot > mmc part

Partition Map for MMC device 0  --   Partition Type: DOS

Part    Start Sector    Num Sectors     UUID            Type
  1     1               7553023         00000000-01     ee

Attempts to use "mmc partconf" to change which partition is accessible seems to do nothing to the output of "mmc part" even if "mmc rescan" is run.
Attempts to use run "ext2ls mmc 0:1" result in the following:
Failed to mount ext2 filesystem...
** Unrecognized filesystem type **

I have verified in Linux that the eMMC boot partitions are properly formatted with ext2 and can be mounted as well as the partition in the eMMC user area that is also formatted as ext2.  Neither seem to be accessible from u-boot 2015.04.

Does anyone have any suggestions as to how to either access my eMMC boot partition or the eMMC user area at boot so I can load my uboot environment and kernel?

Best regards,
 
Matthew Starr


More information about the U-Boot mailing list