Drop default y from CONFIG_EFI_GRUB_ARM32_WORKAROUND?
Heinrich Schuchardt
xypron.glpk at gmx.de
Tue Jan 6 16:10:15 CET 2026
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 <jan.kiszka at siemens.com>:
>>> 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
More information about the U-Boot
mailing list