[PATCH v1] arm64: imx8ulp: Split SRAM0 mapping to isolate the SCMI shared memory as non-cacheable

Marek Vasut marek.vasut at mailbox.org
Fri Oct 31 15:39:57 CET 2025


On 10/31/25 8:49 AM, alice.guo at oss.nxp.com wrote:
> From: Alice Guo <alice.guo at nxp.com>
> 
> This patch splits the 2MB SRAM0 mapping into three regions:
> - 0x22000000~0x2201f000: cacheable normal memory
> - 0x2201f000~0x22020000: non-cacheable device memory
> - 0x22020000~0x22200000: cacheable normal memory
> 
> The change ensures the SCMI shared memory is non-cacheable, which
> avoids cache-related issues after removing
> mmu_set_region_dcache_behaviour() from scmi_dt_get_smt_buffer().
> 
> Signed-off-by: Alice Guo <alice.guo at nxp.com>
> ---
>   arch/arm/mach-imx/imx8ulp/soc.c | 16 +++++++++++++++-
>   1 file changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-imx/imx8ulp/soc.c b/arch/arm/mach-imx/imx8ulp/soc.c
> index 04c6f064130..6cb6b0e7429 100644
> --- a/arch/arm/mach-imx/imx8ulp/soc.c
> +++ b/arch/arm/mach-imx/imx8ulp/soc.c
> @@ -384,7 +384,21 @@ static struct mm_region imx8ulp_arm64_mem_map[] = {
>   		/* SRAM0 (align with 2M) */
>   		.virt = 0x22000000UL,
>   		.phys = 0x22000000UL,
> -		.size = 0x200000UL,
> +		.size = 0x1f000UL,
> +		.attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) |
> +			 PTE_BLOCK_OUTER_SHARE |
> +			 PTE_BLOCK_PXN | PTE_BLOCK_UXN
> +	}, {

Please add a comment that this is used for mailboxes and must be 
non-cacheable here.

> +		.virt = 0x2201f000UL,
> +		.phys = 0x2201f000UL,
> +		.size = 0x1000UL,
> +		.attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) |
> +			 PTE_BLOCK_NON_SHARE |
> +			 PTE_BLOCK_PXN | PTE_BLOCK_UXN
> +	}, {
Reviewed-by: Marek Vasut <marek.vasut at mailbox.org>

Thanks !


More information about the U-Boot mailing list