mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-28 07:31:15 +00:00
mmc: fsl_esdhc_spl: pre-PBL: fix determining U-Boot size
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@kernel.org> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
This commit is contained in:
parent
0f58f033d4
commit
a91998d8af
1 changed files with 2 additions and 10 deletions
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue