[PATCH 0/5] sunxi: enable automatic eMMC boot partition support

André Przywara andre.przywara at arm.com
Tue Nov 10 13:57:09 CET 2020


On 10/11/2020 12:38, Tom Rini wrote:

Hi Tom,

> On Sun, Nov 08, 2020 at 03:48:23PM +0000, André Przywara wrote:
>> On 08/11/2020 14:59, Peter Robinson wrote:
>>
>> Hi,
>>
>>> On Sun, Nov 8, 2020 at 1:14 PM Andre Przywara <andre.przywara at arm.com> wrote:
>>>>
>>>> The eMMC standard describes the concept of boot partitions, consisting
>>>> of two storage areas separate from the main user data partition.
>>>> The Allwinner BootROM supports loading SPL/Boot0 from such a boot
>>>> partition, if that is configured in the eMMC device [1].
>>>>
>>>> To load U-Boot proper along with the SPL from there, currently this
>>>> requires to enable CONFIG_SUPPORT_EMMC_BOOT, and this means that this
>>>> build won't boot from the normal eMMC user partition anymore.
>>>> Also the raw MMC sector offset needs to be adjusted manually, preventing
>>>> a boot from an SD card.
>>>>
>>>> This series introduces automatic detection of eMMC boot partition boot.
>>>> Patch 3/5 automates the raw MMC sector offset decision, allowing such
>>>> a build to also boot from an SD card.
>>>> Unfortunately the BootROM does not mark an eMMC boot partition boot
>>>> differently from the normal eMMC user data partition boot, so patch 4/5
>>>> introduces a function that repeats the BootROM algorithm, so that the SPL
>>>> comes to the same conclusion as the BootROM. This allows to build one
>>>> single image that boots from everywhere: eMMC user data, eMMC boot,
>>>> SD card, SPI flash.
>>>> Patch 1/5 contains a bugfix that's needed in a later patch, patch 2/5
>>>> extends the generic spl_mmc_boot_mode() interface to make 4/5 feasible.
>>>>
>>>> Without enabling CONFIG_SUPPORT_EMMC_BOOT, the AArch64 SPL grows by
>>>> 92 bytes, ARMv7 grows by 36 bytes. With enabling the feature, the size
>>>> goes up by 444 bytes (AArch64) and 260 bytes (ARMv7).
>>>> Even for AArch64 this is still 4.5 KB below the SPL limit, so patch 5/5
>>>> enables this new mechanism for some boards I could test this on.
>>>>
>>>> Please have a look and test this if you have a board with eMMC.
>>>> I put installation instructions into the linux-sunxi Wiki:
>>>> http://linux-sunxi.org/Bootable_eMMC
>>>
>>> It would probably be good to put that link in the local Allwinner docs
>>> so it's easier for people to find.
>>
>> Yeah, actually as you mention it:
>> There does not seem to be some generic README.sunxi file where this
>> would belong to.
>>
>> Jagan: would it make sense to create one, and describe how to get U-Boot
>> into the devices (SD card, eMMC, SPI flash, FEL)? That could move some
>> parts of README.sunxi64 out of there, since they apply to all Allwinner
>> devices.
>>
>> If people agree that this is the right thing to do, I would be happy to
>> send a patch.
> 
> Well, rST file in doc/boards/ and all of that, but, yes please.

Ah, thanks for the pointer, looks good.
Do we accept symlinks in the tree? There are quite some references to
board/sunxi/README.sunxi64 out there. Or shall I keep a stub instead?

Cheers,
Andre


More information about the U-Boot mailing list