On Fri, 19 Aug 2022 at 12:20, Huacai Chen <chenhuacai@xxxxxxxxxxx> wrote: > > This patch adds efistub booting support, which is the standard UEFI boot > protocol for us to use. > > We use generic efistub, which means we can pass boot information (i.e., > system table, memory map, kernel command line, initrd) via a light FDT > and drop a lot of non-standard code. > > We use a flat mapping to map the efi runtime in the kernel's address > space. In efi, VA = PA; in kernel, VA = PA + PAGE_OFFSET. As a result, > flat mapping is not identity mapping, SetVirtualAddressMap() is still > needed for the efi runtime. > > Tested-by: Xi Ruoyao <xry111@xxxxxxxxxxx> > Signed-off-by: Huacai Chen <chenhuacai@xxxxxxxxxxx> > --- > V1 --> V2: > 1, Call SetVirtualAddressMap() in stub; > 2, Use core kernel data directly in alloc_screen_info(); > 3, Remove the magic number in MS-DOS header; > 4, Disable EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER; > 5, Some other small changes suggested by Ard Biesheuvel. > > V2 --> V3: > 1, Adjust Makefile to adapt zboot; > 2, Introduce EFI_RT_VIRTUAL_OFFSET instead of changing flat_va_mapping. > Thanks for the update. I am going to queue this up in the efi/next tree. However, due to the many changes to arch/loongarch in this patch, conflicts are not unlikely, so I created a signed stable tag for the patch that you can merge into the loongarch arch tree if you want. *However*, you must *not* rebase your tree after merging this tag. Therefore, it is probably best that the merge of this tag appears as the very first change on your PR to Linus for v6.1. Everything after can be rebased at will (assuming there are no other impediments to doing so) You can fetch it and merge it like so: git fetch -t git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git git verify-tag efi-loongarch-for-v6.1 # if you like git merge efi-loongarch-for-v6.1 and all your other v6.1 changes can go on top. This way, you can resolve conflicts locally without affecting the EFI changes going via the other tree. The EFI stub for LoongArch change will arrive into Linus's tree via whichever tree he pulls first: the LoongArch one or the EFI one. I will rebase my zboot decompressor changes on top of this - I will cc you again, as the LoongArch builds ok but still does not boot. Thanks, Ard.