[PATCH] armv8: start.S: remove CONFIG_SYS_RESET_SCTRL code
Michael Walle
michael at walle.cc
Mon Jan 24 19:00:54 CET 2022
Am 2022-01-24 18:17, schrieb Andre Przywara:
> There is some code that tries to "reset" the SCTLR_ELx register early
> in
> the boot process. The idea seems to be to guarantee some sane settings
> that U-Boot actually relies on, for instance running in little-endian
> mode, with the MMU off initially.
> However the current code has multiple problems:
> - For a start, no platform or config defines the symbol that would
> enable that code.
> - The code itself really only works if the bits that it tries to clear
> are already cleared:
> - If we run in big-endian mode initially, any previous loads would
> have
> been wrong already. That applies to the (optional) relocation code,
> but more prominently to the mask that it uses to clear those bits:
> "ldr x1, =0xfdfffffa" looks innocent, but actually involves a
> memory
> access to the literal pool, using the current endianess.
> - If we run with the MMU enabled, we are probably doomed already. We
> *could* hope that we are running with an identity mapping, but
> would
> need to do some cache maintenance to avoid losing dirty cache
> lines.
> - The idea of doing a read-modify-write of SCTLR is somewhat
> questionable to begin with, because as the owner of the current
> exception level we should initialise all bits of this register with a
> certain fixed value.
> - The code is unnecessarily complicated, and the function name is
> misspelled.
>
> While those problems *could* admittedly be fixed, the point that is
> does
> not seem to be used at all at the moment tells me we should just remove
> this code, and be it to not give a bad example.
>
> If people care, I could introduce some proper SCTLR initialisation
> code.
> We are about to work this out for the boot-wrapper[1] as we speak, but
> apparently we got away without doing this in U-Boot ever since, so it
> might not be worth the potential trouble.
>
> [1]
> https://lore.kernel.org/linux-arm-kernel/20220114105653.3003399-7-mark.rutland@arm.com/
>
> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
Maybe its used in the cavium u-boot vendor tree; but in mainline it
seems
like it was always dead code. I'm fine with removing it.
-michael
More information about the U-Boot
mailing list