[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