Re: [RFC/RFT PATCH 0/6] ARM: p2v: reduce min alignment to 2 MiB
From: Russell King - ARM Linux admin <linux@armlinux.org.uk>
Date: 2020-09-20 09:01:25
Also in:
linux-efi
On Sat, Sep 19, 2020 at 07:49:26PM -0400, Nicolas Pitre wrote:
On Fri, 18 Sep 2020, Ard Biesheuvel wrote:quoted
This series is inspired by Zhei Len's series [0], which updates the ARM p2v patching code to optionally support p2v relative alignments of as little as 64 KiB. Reducing this alignment is necessary for some specific Huawei boards, but given that reducing this minimum alignment will make the boot sequence more robust for all platforms, especially EFI boot, which no longer relies on the 128 MB masking of the decompressor load address, but uses firmware memory allocation routines to find a suitable spot for the decompressed kernel. This series is not based on Zhei Len's code, but addresses the same problem, and takes some feedback given in the review into account: - use of a MOVW instruction to avoid two adds/adcs sequences when dealing with the carry on LPAE - add support for Thumb2 kernels as well - make the change unconditional - it will bit rot otherwise, and has value for other platforms as well. The first four patches are general cleanup and preparatory changes. Patch #5 implements the switch to a MOVW instruction without changing the minimum alignment. Patch #6 reduces the minimum alignment to 2 MiB. Tested on QEMU in ARM/!LPAE, ARM/LPAE, Thumb2/!LPAE and Thumb2/LPAE modes.At this point I think this really ought to be split into a file of its own... and maybe even rewritten in C. Even though I wrote the original code, I no longer understand it without re-investing time into it. But in either cases the whole of head.S would need to have its registers shuffled first to move long lived values away from r0-r3,ip,lr to allow for standard function calls.
However, that code has to run _before_ the virtual mappings are setup, which makes C code out of the question, unless we build a separate executable binary and then insert it into the kernel image. So, sorry, it's not going to be practical to rewrite it in C. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last! _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel