On 10/28/25 9:00 AM, Alice Guo (OSS) wrote:
-----邮件原件----- 发件人: U-Boot <[email protected]> 代表 Marek Vasut 发送时间: 2025年10月26日 5:35 收件人: [email protected] 抄送: Marek Vasut <[email protected]>; Alice Guo <[email protected]>; Etienne Carriere <[email protected]>; Patrick Delaunay <[email protected]>; Peng Fan <[email protected]>; Tom Rini <[email protected]>; Vinh Nguyen <[email protected]>; Viorel Suman <[email protected]>; Ye Li <[email protected]> 主题: [PATCH] firmware: scmi: Drop mmu_set_region_dcache_behaviour() misuseMMU region cache behavior configuration for SCMI/SMT mailboxes is platform specific. Even on ARM systems, the mailbox memory may not even be located in any cacheable MMU region and may instead reside in some SRAM. Remove this non-generic cache behavior configuration code from generic code path. It is unlikely that any platform is affected by this change if it did configure its MMU regions correctly on start up. Platforms which might be affected are i.MX94/95 and STM32MP. Fixes: 240720e9052f ("firmware: scmi: mailbox/smt agent device") Fixes: 2a3f161c8b16 ("scmi: correctly configure MMU for SCMI buffer") Fixes: b2ae10970d40 ("firmware: scmi: use PAGE_SIZE alignment for ARM64") Signed-off-by: Marek Vasut <[email protected]> --- Cc: Alice Guo <[email protected]> Cc: Etienne Carriere <[email protected]> Cc: Patrick Delaunay <[email protected]> Cc: Peng Fan <[email protected]> Cc: Tom Rini <[email protected]> Cc: Vinh Nguyen <[email protected]> Cc: Viorel Suman <[email protected]> Cc: Ye Li <[email protected]> Cc: [email protected] --- drivers/firmware/scmi/smt.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/drivers/firmware/scmi/smt.c b/drivers/firmware/scmi/smt.c index 237871559f0..cd1c0801f72 100644 --- a/drivers/firmware/scmi/smt.c +++ b/drivers/firmware/scmi/smt.c @@ -61,20 +61,6 @@ int scmi_dt_get_smt_buffer(struct udevice *dev, struct scmi_smt *smt) if (device_is_compatible(dev, "arm,scmi") && ofnode_has_property(dev_ofnode(dev), "mboxes")) scmi_smt_enable_intr(smt, true); -#ifdef CONFIG_ARM - if (dcache_status()) { - u32 align_size; - - if (IS_ENABLED(CONFIG_ARM64)) - align_size = PAGE_SIZE; - else - align_size = MMU_SECTION_SIZE; - - mmu_set_region_dcache_behaviour(ALIGN_DOWN((uintptr_t)smt->buf, align_size), - ALIGN(smt->size, align_size), DCACHE_OFF); - } -#endif - return 0; } -- 2.51.0Tested-by: Alice Guo <[email protected]> Tested on two boards: IMX94 and IMX95. No regressions were observed during boot. Looks good to me.
Thank you !

