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

From: Palmer Dabbelt
Date: Mon Oct 19 2020 - 15:08:15 EST


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

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