Re: [GIT PULL] RISC-V Patches for the 5.10 Merge Window, Part 1

From: Palmer Dabbelt
Date: Mon Oct 19 2020 - 17:00:51 EST


On Mon, 19 Oct 2020 13:43:27 PDT (-0700), atishp@xxxxxxxxxxxxxx wrote:
On Mon, Oct 19, 2020 at 12:08 PM Palmer Dabbelt <palmer@xxxxxxxxxxx> wrote:

The following changes since commit d012a7190fc1fd72ed48911e77ca97ba4521bccd:

Linux 5.9-rc2 (2020-08-23 14:08:43 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git tags/riscv-for-linus-5.10-mw0

for you to fetch changes up to de22d2107ced3cc5355cc9dbbd85e44183546bd5:

RISC-V: Add page table dump support for uefi (2020-10-02 14:31:33 -0700)

----------------------------------------------------------------
RISC-V Patches for the 5.10 Merge Window, Part 1

This contains a handful of cleanups and new features, including:

* A handful of cleanups for our page fault handling.
* Improvements to how we fill out cacheinfo.
* Support for EFI-based systems.

---

This contains a merge from the EFI tree that was necessary as some of the EFI
support landed over there. It's my first time doing something like this,

I haven't included the set_fs stuff because the base branch it depends on
hasn't been merged yet. I'll probably have another merge window PR, as
there's more in flight (most notably the fix for new binutils I just sent out),
but I figured there was no reason to delay this any longer.

There is one merge conflict, which is between my fixes and for-next branches:

diff --cc arch/riscv/kernel/vmlinux.lds.S
index 67db80e12d1f,9795359cb9da..ffaa3da375c2
--- a/arch/riscv/kernel/vmlinux.lds.S
+++ b/arch/riscv/kernel/vmlinux.lds.S
@@@ -66,8 -71,11 +70,13 @@@ SECTION
_etext = .;
}

+ INIT_DATA_SECTION(16)
+
+ #ifdef CONFIG_EFI
+ . = ALIGN(PECOFF_SECTION_ALIGNMENT);
+ __pecoff_text_end = .;
+ #endif
+
/* Start of data section */
_sdata = .;
RO_DATA(SECTION_ALIGN)

----------------------------------------------------------------
Anup Patel (1):
RISC-V: Move DT mapping outof fixmap

Ard Biesheuvel (3):
efi/libstub: arm32: Base FDT and initrd placement on image address
efi/libstub: Export efi_low_alloc_above() to other units
efi/libstub: arm32: Use low allocation for the uncompressed kernel


I thought these 3 were being taken through the EFI tree. I already see
them in the master branch.

762cd288fc4a efi/libstub: arm32: Use low allocation for the uncompressed kernel
1a895dbf4b66 efi/libstub: Export efi_low_alloc_above() to other units
6208857b8f7e efi/libstub: arm32: Base FDT and initrd placement on image address

I see them in Linus' master with those exact hashes, so IIUC this is all OK? I
guess I just assumed they were supposed to show up in the shortlog, but it's my
first time trying one of these multi-tree merges so maybe I screwed something
up?

I obtained these by merging a tag from the EFI tree (that's already been
merged) into my tree, which looks OK to me:

commit 8a3f30c4319dc70547f11c18da2e7b5987543aa1
gpg: Signature made Fri 02 Oct 2020 02:30:05 PM PDT
gpg: using RSA key 2B3C3747446843B24A943A7A2E1319F35FBB1889
gpg: issuer "palmer@xxxxxxxxxxx"
gpg: Good signature from "Palmer Dabbelt <palmer@xxxxxxxxxxx>" [ultimate]
gpg: aka "Palmer Dabbelt <palmerdabbelt@xxxxxxxxxx>" [ultimate]
merged tag 'efi-riscv-shared-for-v5.10'
gpg: Signature made Wed 16 Sep 2020 08:57:07 AM PDT
gpg: using RSA key 9CD2A0DA6AD8F7330175E2BBC237207E9574FA7D
gpg: Good signature from "Adriaan (Ard) Biesheuvel <ard.biesheuvel@xxxxxxxxxx>" [unknown]
gpg: aka "Adriaan (Ard) Biesheuvel <ard.biesheuvel@xxxxxxxxx>" [unknown]
gpg: aka "Adriaan (Ard) Biesheuvel <ardb@xxxxxxxxxx>" [unknown]
gpg: aka "Adriaan (Ard) Biesheuvel <ard.biesheuvel@xxxxxxx>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: F43D 0332 8115 A198 C900 1688 3D20 0E9C A632 9909
Subkey fingerprint: 9CD2 A0DA 6AD8 F733 0175 E2BB C237 207E 9574 FA7D
Merge: 54701a0d12e2 762cd288fc4a
Author: Palmer Dabbelt <palmerdabbelt@xxxxxxxxxx>
Date: Fri Oct 2 14:29:51 2020 -0700
Merge tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/efi/efi into for-next
Stable branch for v5.10 shared between the EFI and RISC-V trees
The RISC-V EFI boot and runtime support will be merged for v5.10 via
the RISC-V tree. However, it incorporates some changes that conflict
with other EFI changes that are in flight, so this tag serves as a
shared base that allows those conflicts to be resolved beforehand.
* tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/efi/efi:
efi/libstub: arm32: Use low allocation for the uncompressed kernel
efi/libstub: Export efi_low_alloc_above() to other units
efi/libstub: arm32: Base FDT and initrd placement on image address
efi: Rename arm-init to efi-init common for all arch
include: pe.h: Add RISC-V related PE definition

I think the actual issue here is just that whatever I pointed git to when
generating the PR didn't contain the merge of the shared code yet, so
git-shortlog included it?

Atish Patra (8):
include: pe.h: Add RISC-V related PE definition
efi: Rename arm-init to efi-init common for all arch
RISC-V: Add early ioremap support
RISC-V: Implement late mapping page table allocation functions
RISC-V: Add PE/COFF header for EFI stub
RISC-V: Add EFI stub support.
RISC-V: Add EFI runtime services
RISC-V: Add page table dump support for uefi

Palmer Dabbelt (1):
Merge tag 'efi-riscv-shared-for-v5.10' of ssh://gitolite.kernel.org/.../efi/efi into for-next

Pekka Enberg (11):
riscv/mm: Simplify retry logic in do_page_fault()
riscv/mm/fault: Move no context handling to no_context()
riscv/mm/fault: Move bad area handling to bad_area()
riscv/mm/fault: Move vmalloc fault handling to vmalloc_fault()
riscv/mm/fault: Simplify fault error handling
riscv/mm/fault: Move fault error handling to mm_fault_error()
riscv/mm/fault: Simplify mm_fault_error()
riscv/mm/fault: Move FAULT_FLAG_WRITE handling in do_page_fault()
riscv/mm/fault: Move access error check to function
riscv/mm/fault: Fix inline placement in vmalloc_fault() declaration
riscv/mm/fault: Set FAULT_FLAG_INSTRUCTION flag in do_page_fault()

Tian Tao (1):
RISC-V: Fix duplicate included thread_info.h

Zong Li (3):
riscv: Set more data to cacheinfo
riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
riscv: Add cache information in AUX vector

arch/arm/include/asm/efi.h | 23 +-
arch/arm64/include/asm/efi.h | 5 +-
arch/riscv/Kconfig | 25 ++
arch/riscv/Makefile | 1 +
arch/riscv/configs/defconfig | 1 +
arch/riscv/include/asm/Kbuild | 1 +
arch/riscv/include/asm/cacheinfo.h | 5 +
arch/riscv/include/asm/efi.h | 55 ++++
arch/riscv/include/asm/elf.h | 13 +
arch/riscv/include/asm/fixmap.h | 16 +-
arch/riscv/include/asm/io.h | 1 +
arch/riscv/include/asm/mmu.h | 2 +
arch/riscv/include/asm/pgtable.h | 5 +
arch/riscv/include/asm/sections.h | 13 +
arch/riscv/include/uapi/asm/auxvec.h | 24 ++
arch/riscv/kernel/Makefile | 2 +
arch/riscv/kernel/cacheinfo.c | 98 +++++--
arch/riscv/kernel/efi-header.S | 111 ++++++++
arch/riscv/kernel/efi.c | 96 +++++++
arch/riscv/kernel/head.S | 18 +-
arch/riscv/kernel/head.h | 2 -
arch/riscv/kernel/image-vars.h | 51 ++++
arch/riscv/kernel/setup.c | 18 +-
arch/riscv/kernel/vmlinux.lds.S | 23 +-
arch/riscv/mm/fault.c | 356 +++++++++++++-----------
arch/riscv/mm/init.c | 191 ++++++++++---
arch/riscv/mm/ptdump.c | 48 +++-
drivers/firmware/efi/Kconfig | 3 +-
drivers/firmware/efi/Makefile | 4 +-
drivers/firmware/efi/{arm-init.c => efi-init.c} | 0
drivers/firmware/efi/libstub/Makefile | 10 +
drivers/firmware/efi/libstub/arm32-stub.c | 178 +++---------
drivers/firmware/efi/libstub/arm64-stub.c | 1 -
drivers/firmware/efi/libstub/efi-stub.c | 59 +---
drivers/firmware/efi/libstub/efistub.h | 7 +-
drivers/firmware/efi/libstub/relocate.c | 4 +-
drivers/firmware/efi/libstub/riscv-stub.c | 109 ++++++++
drivers/firmware/efi/riscv-runtime.c | 143 ++++++++++
include/linux/pe.h | 3 +
39 files changed, 1275 insertions(+), 450 deletions(-)
create mode 100644 arch/riscv/include/asm/efi.h
create mode 100644 arch/riscv/include/asm/sections.h
create mode 100644 arch/riscv/kernel/efi-header.S
create mode 100644 arch/riscv/kernel/efi.c
create mode 100644 arch/riscv/kernel/image-vars.h
rename drivers/firmware/efi/{arm-init.c => efi-init.c} (100%)
create mode 100644 drivers/firmware/efi/libstub/riscv-stub.c
create mode 100644 drivers/firmware/efi/riscv-runtime.c

_______________________________________________
linux-riscv mailing list
linux-riscv@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/linux-riscv