spl: mmc: Introduce proper layering for spl_mmc_get_uboot_raw_sector()

Introduce two new weak functions, arch_spl_mmc_get_uboot_raw_sector() and
board_spl_mmc_get_uboot_raw_sector(), each of which can be overridden at
a matching level, that is arch/ and board/ , in addition to the existing
weak function spl_mmc_get_uboot_raw_sector().

This way, architecture code can define a default architecture specific
implementation of arch_spl_mmc_get_uboot_raw_sector(), while the board
code can override that using board_spl_mmc_get_uboot_raw_sector() which
takes precedence over the architecture code. In some sort of unlikely
special case where code has to take precedence over board code too, the
spl_mmc_get_uboot_raw_sector() is still left out to be a weak function,
but it should be unlikely that this is ever needed to be overridden.

Signed-off-by: Marek Vasut <marex@denx.de>
This commit is contained in:
Marek Vasut
2023-10-16 18:16:12 +02:00
committed by Stefano Babic
parent fb2bdc4efc
commit e936db9536
8 changed files with 48 additions and 10 deletions

View File

@@ -486,6 +486,32 @@ int spl_mmc_emmc_boot_partition(struct mmc *mmc);
void spl_set_bd(void);
/**
* spl_mmc_get_uboot_raw_sector() - Provide raw sector of the start of U-Boot (architecture override)
*
* This is a weak function which by default will provide the raw sector that is
* where the start of the U-Boot image has been written to.
*
* @mmc: struct mmc that describes the devie where U-Boot resides
* @raw_sect: The raw sector number where U-Boot is by default.
* Return: The raw sector location that U-Boot resides at
*/
unsigned long arch_spl_mmc_get_uboot_raw_sector(struct mmc *mmc,
unsigned long raw_sect);
/**
* spl_mmc_get_uboot_raw_sector() - Provide raw sector of the start of U-Boot (board override)
*
* This is a weak function which by default will provide the raw sector that is
* where the start of the U-Boot image has been written to.
*
* @mmc: struct mmc that describes the devie where U-Boot resides
* @raw_sect: The raw sector number where U-Boot is by default.
* Return: The raw sector location that U-Boot resides at
*/
unsigned long board_spl_mmc_get_uboot_raw_sector(struct mmc *mmc,
unsigned long raw_sect);
/**
* spl_mmc_get_uboot_raw_sector() - Provide raw sector of the start of U-Boot
*