[RESEND PATCH v2 0/3] sunxi: Improve automatic eMMC boot partition support

Andre Przywara andre.przywara at arm.com
Wed Apr 6 00:59:29 CEST 2022


On Mon, 12 Jul 2021 11:06:48 +0100
Andre Przywara <andre.przywara at arm.com> wrote:

> (resent to also include forgotten U-Boot list)
> 
> The Allwinner BootROM supports loading the SPL from eMMC boot partitions,
> but so far the SPL support for this case was a bit lacking, as it was a
> compile time decision, and even required a manual config change.
> This actually got accidentally fixed in v2021.04 (c0b417b2f1a3 "sunxi:
> support loading with SPL > 32KB"), but still some gaps remain: When just
> enabling an eMMC boot partition, but having no bootable code there, the
> BROM will just continue with booting from the user data partition, but
> U-Boot does not detect this and will try to load U-Boot proper from that
> boot partition.
> 
> This series fixes this, by replicating the BROMs decisions in the SPL,
> to decide on the partition to continue loading from.
> 
> Patch 1/3 prepares a generic function to take an extra argument, while
> patch 2/3 implements the actual algorithm.
> As this now allows to always have eMMC boot support on, patch 3/3 just
> activates this for a number of boards I could test it on.
> 
> I'd like to encourage other people to test this on boards with eMMC, to
> enable this in the respective defconfig, maybe even centrally.
> 
> Some more details on eMMC boot partition support and how to install
> U-Boot in there can be found in the linux-sunxi Wiki:
> http://linux-sunxi.org/Bootable_eMMC

Rebased and updated patch 1/3, then merged into sunxi/master, which
landed in mainline already.

Thanks,
Andre

> 
> Cheers,
> Andre
> 
> Changelog v1 .. v2:
> - drop patch 1/5 (bugfix): already merged
> - drop patch 3/5, as it was obsoleted by c0b417b2f1a3
> - remove check for 32KB SPL limit (not applicable for H6 and beyond)
> - remove extra sector offset adjustment (obsoleted by c0b417b2f1a3)
> 
> Andre Przywara (3):
>   spl: mmc: extend spl_mmc_boot_mode() to take mmc argument
>   sunxi: eMMC: Improve automatic boot source detection
>   sunxi: defconfig: enable eMMC boot partition support
> 
>  arch/arm/mach-imx/spl.c                    |  2 +-
>  arch/arm/mach-k3/am6_init.c                |  2 +-
>  arch/arm/mach-k3/j721e_init.c              |  2 +-
>  arch/arm/mach-omap2/boot-common.c          |  2 +-
>  arch/arm/mach-rockchip/spl.c               |  2 +-
>  arch/arm/mach-socfpga/spl_a10.c            |  2 +-
>  arch/arm/mach-socfpga/spl_gen5.c           |  2 +-
>  arch/arm/mach-stm32mp/spl.c                |  2 +-
>  arch/arm/mach-sunxi/board.c                | 80 ++++++++++++++++++++++
>  arch/arm/mach-uniphier/mmc-boot-mode.c     |  5 +-
>  common/spl/spl_mmc.c                       |  4 +-
>  configs/bananapi_m64_defconfig             |  1 +
>  configs/emlid_neutis_n5_devboard_defconfig |  1 +
>  configs/pine64-lts_defconfig               |  1 +
>  configs/pine_h64_defconfig                 |  1 +
>  include/spl.h                              |  3 +-
>  16 files changed, 97 insertions(+), 15 deletions(-)
> 



More information about the U-Boot mailing list