
Le mercredi 24 août 2016 à 11:24 -0400, Tom Rini a écrit :
On Wed, Aug 24, 2016 at 04:40:42PM +0200, Paul Kocialkowski wrote:
This adds support for initializing MMC power from TWL6030 in SPL, which is required when the bootrom didn't power the MMC device yet and U-Boot is to be loaded from MMC (e.g. after setting boot mode from the SYS_BOOT pins in peripheral boot).
So you're loading SPL via USB? If it's via serial I'd much rather just use the SPL Y-Modem support instead. Also:
Right, I'm loading SPL via USB and wish to load u-boot.img via MMC, according to the SYS_BOOT configuration.
This is useful when e.g. only UART Tx is exported from the device.
[snip]
+/* MMCSD FS mode is preferred */ +#undef CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR
That's very much not true. Distro boot is usually done with raw mode not FAT.
Fair enough. The problem here is that the omap-common bootcode will assume raw mode when reading mmc boot media from SYS_BOOT pins. Raw mode is supposed to fallback to FS mode (which is what I want), but when CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR is defined, it'll go ahead and try to load the image. Even if it reads garbage (no valid header), it'll still go ahead and assume u-boot.bin. In practice, it means that raw mode can never fail as long as CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR is set.
Setting CONFIG_SPL_ABORT_ON_RAW_IMAGE allows properly returning when no valid header is found, but it conflicts with CONFIG_SPL_OS_BOOT.
If setting CONFIG_SPL_ABORT_ON_RAW_IMAGE seems agreeable to you (I don't think anyone cares about u-boot.bin anymore), I could rework the logic there so that there is no longer a conflict with CONFIG_SPL_OS_BOOT.
What do you think?