
On 10/18/23 13:27, Sean Anderson wrote:
On 10/3/23 00:16, Kuan Lim Lee wrote:
When selecting MMCSD_MODE_EMMCBOOT as boot_mode, emmc do not
load
U-boot proper image after switched hardware partition.
Signed-off-by: Kuan Lim Lee kuanlim.lee@starfivetech.com Reviewed-by: Chee Hong Ang cheehong.ang@starfivetech.com Reviewed-by: Wei Liang Lim weiliang.lim@starfivetech.com
common/spl/spl_mmc.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index 20f687e138..dc8a45222b 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -447,6 +447,9 @@ int spl_mmc_load(struct spl_image_info *spl_image, #endif return err; }
err = mmc_load_image_raw_sector(spl_image, bootdev, mmc,
0);
if (!err)
/* Fall through */ case MMCSD_MODE_RAW: debug("spl: mmc boot mode: raw\n");return err;
So why doesn't the mmc_load_image_raw_sector below (line 475 or so) work?
boot_mode that I choose is MMCSD_MODE_EMMCBOOT. This is a switch case method. If the case finished execution, program will jump to 'return error;' in line 492. Since there are no load image function, in boot_mode: MMCSD_MODE_EMMCBOOT, it will just switch the hwpartition and quit the process & fail to boot.
case MMCSD_MODE_EMMCBOOT: *** here is the case I add mmc_load_image_raw_sector() /* Fall through */ case MMCSD_MODE_RAW: *** here is the case which execute mmc_load_image_raw_sector() in line 470.
--Sean
Please correct me if I am wrong. --KuanLim