On 1/6/26 15:38, Jan Kiszka wrote:
On 06.01.26 15:30, Heinrich Schuchardt wrote:
Am 6. Januar 2026 14:47:30 MEZ schrieb Jan Kiszka <[email protected]>:
Hi,

it seems that some kernel configs can cause problems with the
CONFIG_EFI_GRUB_ARM32_WORKAROUND. Namely, 6.1-cip and 5.10-cip with its
current defconfigs [1] no longer boot on the BeagleBone Black (other
boards still need validation), both with the more recommendable
systemd-boot and grub. I do not have the motivation to debug the reason
in the kernel / its config, given that everything works fine once the
firmware behaves according to the UEFI spec.

Meanwhile, grub reached 2.12 now which is far away from the old, broken
version of 2019. So, should we rather make this workaround opt-in in 2026?

Jan

Hello Jan,

Looks ok to me. Will you send a patch?


Can do. Just one follow-up question:

"This workaround currently is also needed on systems with caches that
cannot be managed via CP15."

Do we know them by name? Should we keep the default for those?

Jan



arch/arm/cpu/armv7m/cache.c has its own d/icache_disable() routines but it does not support EFI.

I also found these cache management routines
(git grep -n disable | grep cache | grep void):

arch/arm/mach-exynos/include/mach/sys_proto.h:12:void l2_cache_disable(void);
arch/arm/mach-imx/cache.c:144:void v7_outer_cache_disable(void)
arch/arm/mach-ipq40xx/cpu.c:32:void disable_caches(void)
arch/arm/mach-kirkwood/cache.c:11:void l2_cache_disable()
arch/arm/mach-mvebu/cpu.c:683:void v7_outer_cache_disable(void)
arch/arm/mach-npcm/npcm7xx/cpu.c:62:void disable_caches(void)
arch/arm/mach-npcm/npcm7xx/l2_cache_pl310.c:26:void v7_outer_cache_disable(void)
arch/arm/mach-omap2/omap3/board.c:447:void omap3_outer_cache_disable(void)
arch/arm/mach-s5pc1xx/cache.c:19:void disable_caches(void)
arch/arm/mach-s5pc1xx/cache.c:37:void v7_outer_cache_disable(void)
arch/arm/mach-socfpga/misc.c:92:void v7_outer_cache_disable(void)
arch/arm/mach-u8500/cache.c:23:void v7_outer_cache_disable(void)
arch/arm/mach-uniphier/arm32/cache-uniphier.c:211:static void uniphier_cache_endisable(int enable) arch/arm/mach-uniphier/arm32/cache-uniphier.c:228:void uniphier_cache_disable(void) arch/arm/mach-uniphier/arm32/cache-uniphier.c:283:void v7_outer_cache_disable(void) arch/arm/mach-uniphier/arm32/cache-uniphier.h:18:void uniphier_cache_disable(void);

SYS_L2CACHE_OFF is another symbol worth grepping for for:

arch/arm/mach-exynos/common_setup.h:64:#if !defined(CONFIG_SYS_L2CACHE_OFF) && defined(CONFIG_EXYNOS5420)
arch/arm/mach-exynos/lowlevel_init.c:90:#ifndef CONFIG_SYS_L2CACHE_OFF
arch/arm/mach-exynos/lowlevel_init.c:183:#if !defined(CONFIG_SYS_L2CACHE_OFF) && defined(CONFIG_EXYNOS5420)
arch/arm/mach-imx/cache.c:80:#ifndef CONFIG_SYS_L2CACHE_OFF
arch/arm/mach-imx/cache.c:151:#endif /* !CONFIG_SYS_L2CACHE_OFF */
arch/arm/mach-npcm/npcm7xx/l2_cache_pl310_init.S:10:#ifndef CONFIG_SYS_L2CACHE_OFF
arch/arm/mach-omap2/omap3/board.c:33:#ifndef CONFIG_SYS_L2CACHE_OFF
arch/arm/mach-omap2/omap3/board.c:196:#ifndef CONFIG_SYS_L2CACHE_OFF
arch/arm/mach-omap2/omap3/board.c:408:#ifndef CONFIG_SYS_L2CACHE_OFF
arch/arm/mach-omap2/omap3/board.c:457:#endif /* !CONFIG_SYS_L2CACHE_OFF */
arch/arm/mach-s5pc1xx/cache.c:25:#ifndef CONFIG_SYS_L2CACHE_OFF

Best regards

Heinrich

Reply via email to