[PATCH U-Boot v2019.04-aspeed-openbmc 2/3] arch: ARM: Aspeed: Add SPL eMMC partition boot support

Joel Stanley joel at jms.id.au
Fri Oct 9 14:41:18 AEDT 2020


On Mon, 28 Sep 2020 at 20:28, Eddie James <eajames at linux.ibm.com> wrote:
>
> Support loading U-Boot from a specific partition on the eMMC
> device.
>
> Signed-off-by: Eddie James <eajames at linux.ibm.com>
> ---
>  arch/arm/mach-aspeed/Kconfig            | 7 +++++++
>  arch/arm/mach-aspeed/ast2600/spl_boot.c | 9 ++++++++-
>  2 files changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-aspeed/Kconfig b/arch/arm/mach-aspeed/Kconfig
> index 06f14f4f55..0e3bb841d0 100644
> --- a/arch/arm/mach-aspeed/Kconfig
> +++ b/arch/arm/mach-aspeed/Kconfig
> @@ -90,6 +90,13 @@ config ASPEED_UBOOT_MMC_BASE
>           The base block number of the U-Boot
>           image in the eMMC device
>
> +config ASPEED_UBOOT_MMC_PART
> +       int "U-Boot eMMC partition"
> +       default 0
> +       help
> +         The partition number of the U-Boot
> +         image in the eMMC device

To clarify, it's the partition number in the user area of the eMMC
device? (and not the eMMC partition).

Reviewed-by: Joel Stanley <joel at jms.id.au>

> +
>  config ASPEED_UBOOT_MMC_SIZE
>         hex "U-Boot eMMC size in blocks"
>         default 0x0
> diff --git a/arch/arm/mach-aspeed/ast2600/spl_boot.c b/arch/arm/mach-aspeed/ast2600/spl_boot.c
> index b08c49d204..58a22f646e 100644
> --- a/arch/arm/mach-aspeed/ast2600/spl_boot.c
> +++ b/arch/arm/mach-aspeed/ast2600/spl_boot.c
> @@ -46,8 +46,8 @@ static int aspeed_spl_mmc_load_image(struct spl_image_info *spl_image,
>                                       struct spl_boot_device *bootdev)
>  {
>         int err;
> +       int part = CONFIG_ASPEED_UBOOT_MMC_PART;
>         u32 count;
> -
>         struct mmc *mmc = NULL;
>         struct udevice *dev;
>         struct blk_desc *bd;
> @@ -78,6 +78,13 @@ static int aspeed_spl_mmc_load_image(struct spl_image_info *spl_image,
>
>         bd = mmc_get_blk_desc(mmc);
>
> +       if (part) {
> +               if (CONFIG_IS_ENABLED(MMC_TINY))
> +                       err = mmc_switch_part(mmc, part);
> +               else
> +                       err = blk_dselect_hwpart(bd, part);
> +       }
> +
>         count = blk_dread(bd, CONFIG_ASPEED_UBOOT_MMC_BASE, CONFIG_ASPEED_UBOOT_MMC_SIZE,
>                         (void *)CONFIG_ASPEED_UBOOT_DRAM_BASE);
>         if (count != CONFIG_ASPEED_UBOOT_MMC_SIZE) {
> --
> 2.26.2
>


More information about the openbmc mailing list