On Sun, Jan 05, 2025 at 10:56:29PM +0100, Marek Vasut wrote: >On 1/3/25 7:45 AM, Alice Guo wrote: >> From: Ye Li <ye...@nxp.com> >> >> When SPL loading image to secure region, for example, ATF and tee to >> DDR secure region. Because the USDHC controller is non-secure master, >> it can't access this region and will cause loading issue. >> >> So override h_spl_load_read to use a trampoline buffer in nonsecure >> region, then use CPU to copy the image from trampoline buffer to >> destination secure region. >> >> Signed-off-by: Ye Li <ye...@nxp.com> >> Signed-off-by: Alice Guo <alice....@nxp.com> >> Reviewed-by: Peng Fan <peng....@nxp.com> >> --- >> arch/arm/mach-imx/imx9/scmi/soc.c | 40 >> +++++++++++++++++++++++++++++++++++++++ >> common/spl/spl_mmc.c | 2 +- >> 2 files changed, 41 insertions(+), 1 deletion(-) >> >> diff --git a/arch/arm/mach-imx/imx9/scmi/soc.c >> b/arch/arm/mach-imx/imx9/scmi/soc.c >> index >> fefb1a6f4ca58722a5d93c39e4f6a7aaf85aa177..8a7df24afecc1d6d77b7162be639b56af95fd975 >> 100644 >> --- a/arch/arm/mach-imx/imx9/scmi/soc.c >> +++ b/arch/arm/mach-imx/imx9/scmi/soc.c >> @@ -41,6 +41,8 @@ >> #include <scmi_agent.h> >> #include <scmi_protocols.h> >> #endif >> +#include <spl.h> >> +#include <mmc.h> >> DECLARE_GLOBAL_DATA_PTR; >> @@ -830,3 +832,41 @@ enum boot_device get_boot_device(void) >> return boot_dev; >> } >> #endif >> + >> +ulong h_spl_load_read(struct spl_load_info *load, ulong off, >> + ulong size, void *buf) > >Can you simply define spl_get_load_buffer() instead to make sure SPL loads >your stuff into the correct location ?
spl_get_load_buffer does not help here, unless do a big change to spl_mmc.c h_spl_load_read is set to info->read, info->read is not just for reading headers, it also needs to read container image data. > >This hack in generic code is a NAK. This is set it as __weak, and overwrite in soc code, there are many similar code Regards, Peng