[PATCH 2/3] mmc: fsl_esdhc_spl: pre-PBL: fix determining U-Boot size
Jaehoon Chung
jh80.chung at gmail.com
Fri Apr 22 14:07:05 CEST 2022
On 4/3/22 07:17, Pali Rohár wrote:
> In pre-PBL header is stored size of code which BootROM copies from SD card
> to L2/SRAM. This size has upper limit of L2 cache size. In most cases this
> is size of U-Boot SPL or size of L2 cache.
>
> Therefore this size in pre-PBL header cannot be used for determining size
> of proper U-Boot.
>
> So always use CONFIG_SYS_MMC_U_BOOT_SIZE for determining size of proper
> U-Boot which stored on SD card.
> > Signed-off-by: Pali Rohár <pali at kernel.org>
Reviewed-by: Jaehoon Chung <jh80.chung at samsung.com>
Best Regards,
Jaehoon Chung
> ---
> drivers/mmc/fsl_esdhc_spl.c | 12 ++----------
> 1 file changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/drivers/mmc/fsl_esdhc_spl.c b/drivers/mmc/fsl_esdhc_spl.c
> index 109f558dcad3..b87597a88e1d 100644
> --- a/drivers/mmc/fsl_esdhc_spl.c
> +++ b/drivers/mmc/fsl_esdhc_spl.c
> @@ -79,7 +79,6 @@ void __noreturn mmc_boot(void)
>
> #ifdef CONFIG_FSL_CORENET
> offset = CONFIG_SYS_MMC_U_BOOT_OFFS;
> - code_len = CONFIG_SYS_MMC_U_BOOT_SIZE;
> #else
> blklen = mmc->read_bl_len;
> tmp_buf = malloc(blklen);
> @@ -135,18 +134,11 @@ void __noreturn mmc_boot(void)
> offset = (offset << 8) + val;
> }
> offset += CONFIG_SYS_MMC_U_BOOT_OFFS;
> - /* Get the code size from offset 0x48 */
> - byte_num = 4;
> - code_len = 0;
> - for (i = 0; i < byte_num; i++) {
> - val = *(tmp_buf + ESDHC_BOOT_IMAGE_SIZE + i);
> - code_len = (code_len << 8) + val;
> - }
> - code_len -= CONFIG_SYS_MMC_U_BOOT_OFFS;
> +#endif
> /*
> * Load U-Boot image from mmc into RAM
> */
> -#endif
> + code_len = CONFIG_SYS_MMC_U_BOOT_SIZE;
> blk_start = ALIGN(offset, mmc->read_bl_len) / mmc->read_bl_len;
> blk_cnt = ALIGN(code_len, mmc->read_bl_len) / mmc->read_bl_len;
> err = mmc->block_dev.block_read(&mmc->block_dev, blk_start, blk_cnt,
More information about the U-Boot
mailing list