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

From: Palmer Dabbelt
Date: Wed Apr 08 2020 - 12:50:10 EST


The following changes since commit 98d54f81e36ba3bf92172791eba5ca5bd813989b:

Linux 5.6-rc4 (2020-03-01 16:38:46 -0600)

are available in the Git repository at:

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

for you to fetch changes up to 37809df4b1c88927fe944eb766e0553811c51f64:

riscv: create a loader.bin boot image for Kendryte SoC (2020-04-03 10:50:17 -0700)

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

This tag contains the patches I'd like to target for 5.7. It has a handful of
new features:

* Partial support for the Kendryte K210. There are still a few outstanding
issues that I have patches for, but I don't actually have a board to test
them so they're not included yet.
* SBI v0.2 support.
* Fixes to support for building with LLVM-based toolchains. The resulting
images are known not to boot yet.

This builds and boots for me. There is one merge conflict, it's just a Kconfig
merge issue. I can publish a resolved branch if you'd like.

I don't anticipate a part two, but I'll probably have something early in the
RCs to finish up the K210 support.

----------------------------------------------------------------
Alexandre Ghiti (1):
riscv: Use p*d_leaf macros to define p*d_huge

Atish Patra (12):
RISC-V: Move all address space definition macros to one place
RISC-V: Mark existing SBI as 0.1 SBI.
RISC-V: Add basic support for SBI v0.2
RISC-V: Add SBI v0.2 extension definitions
RISC-V: Introduce a new config for SBI v0.1
RISC-V: Implement new SBI v0.2 extensions
RISC-V: Move relocate and few other functions out of __init
RISC-V: Add cpu_ops and modify default booting method
RISC-V: Export SBI error to linux error mapping function
RISC-V: Add SBI HSM extension definitions
RISC-V: Add supported for ordered booting method using HSM
RISC-V: Support cpu hotplug

Christoph Hellwig (2):
riscv: Add Kendryte K210 SoC support
riscv: create a loader.bin boot image for Kendryte SoC

Damien Le Moal (5):
riscv: Unaligned load/store handling for M_MODE
riscv: Add SOC early init support
riscv: Select required drivers for Kendryte SOC
riscv: Add Kendryte K210 device tree
riscv: Kendryte K210 default config

Deepa Dinamani (1):
riscv: Delete CONFIG_SYSFS_SYSCALL from defconfigs

Guo Ren (1):
riscv: Use flush_icache_mm for flush_icache_user_range

Palmer Dabbelt (4):
RISC-V: Stop putting .sbss in .sdata
RISC-V: Stop relying on GCC's register allocator's hueristics
RISC-V: Inline the assembly register save/restore macros
RISC-V: Stop using LOCAL for the uaccess fixups

Zong Li (12):
riscv: force hart_lottery to put in .sdata section
riscv: add ARCH_HAS_SET_MEMORY support
riscv: add ARCH_HAS_SET_DIRECT_MAP support
riscv: add ARCH_SUPPORTS_DEBUG_PAGEALLOC support
riscv: move exception table immediately after RO_DATA
riscv: add alignment for text, rodata and data sections
riscv: add STRICT_KERNEL_RWX support
riscv: add macro to get instruction length
riscv: introduce interfaces to patch kernel code
riscv: patch code by fixmap mapping
riscv: Add support to dump the kernel page tables
riscv: Use macro definition instead of magic number

arch/riscv/Kconfig | 26 +-
arch/riscv/Kconfig.socs | 34 ++
arch/riscv/Makefile | 6 +-
arch/riscv/boot/Makefile | 3 +
arch/riscv/boot/dts/Makefile | 1 +
arch/riscv/boot/dts/kendryte/Makefile | 2 +
arch/riscv/boot/dts/kendryte/k210.dts | 23 ++
arch/riscv/boot/dts/kendryte/k210.dtsi | 123 +++++++
arch/riscv/configs/defconfig | 1 +
arch/riscv/configs/nommu_k210_defconfig | 68 ++++
arch/riscv/configs/rv32_defconfig | 1 +
arch/riscv/include/asm/bug.h | 8 +
arch/riscv/include/asm/cacheflush.h | 2 +-
arch/riscv/include/asm/cpu_ops.h | 46 +++
arch/riscv/include/asm/current.h | 5 +-
arch/riscv/include/asm/fixmap.h | 2 +
arch/riscv/include/asm/kasan.h | 2 +-
arch/riscv/include/asm/patch.h | 12 +
arch/riscv/include/asm/pgtable.h | 80 +++--
arch/riscv/include/asm/ptdump.h | 11 +
arch/riscv/include/asm/sbi.h | 195 +++++++----
arch/riscv/include/asm/set_memory.h | 48 +++
arch/riscv/include/asm/smp.h | 24 ++
arch/riscv/include/asm/soc.h | 23 ++
arch/riscv/kernel/Makefile | 13 +-
arch/riscv/kernel/cpu-hotplug.c | 87 +++++
arch/riscv/kernel/cpu_ops.c | 46 +++
arch/riscv/kernel/cpu_ops_sbi.c | 115 +++++++
arch/riscv/kernel/cpu_ops_spinwait.c | 43 +++
arch/riscv/kernel/entry.S | 143 ++++----
arch/riscv/kernel/ftrace.c | 13 +-
arch/riscv/kernel/head.S | 180 ++++++----
arch/riscv/kernel/patch.c | 120 +++++++
arch/riscv/kernel/process.c | 5 +-
arch/riscv/kernel/sbi.c | 575 +++++++++++++++++++++++++++++++-
arch/riscv/kernel/setup.c | 32 +-
arch/riscv/kernel/smpboot.c | 53 +--
arch/riscv/kernel/soc.c | 28 ++
arch/riscv/kernel/stacktrace.c | 7 +-
arch/riscv/kernel/traps.c | 32 +-
arch/riscv/kernel/traps_misaligned.c | 370 ++++++++++++++++++++
arch/riscv/kernel/vmlinux.lds.S | 23 +-
arch/riscv/lib/uaccess.S | 6 +-
arch/riscv/mm/Makefile | 3 +-
arch/riscv/mm/hugetlbpage.c | 6 +-
arch/riscv/mm/init.c | 44 +++
arch/riscv/mm/pageattr.c | 187 +++++++++++
arch/riscv/mm/ptdump.c | 317 ++++++++++++++++++
drivers/soc/Kconfig | 1 +
drivers/soc/Makefile | 1 +
drivers/soc/kendryte/Kconfig | 14 +
drivers/soc/kendryte/Makefile | 3 +
drivers/soc/kendryte/k210-sysctl.c | 248 ++++++++++++++
include/dt-bindings/clock/k210-clk.h | 20 ++
54 files changed, 3154 insertions(+), 327 deletions(-)
create mode 100644 arch/riscv/boot/dts/kendryte/Makefile
create mode 100644 arch/riscv/boot/dts/kendryte/k210.dts
create mode 100644 arch/riscv/boot/dts/kendryte/k210.dtsi
create mode 100644 arch/riscv/configs/nommu_k210_defconfig
create mode 100644 arch/riscv/include/asm/cpu_ops.h
create mode 100644 arch/riscv/include/asm/patch.h
create mode 100644 arch/riscv/include/asm/ptdump.h
create mode 100644 arch/riscv/include/asm/set_memory.h
create mode 100644 arch/riscv/include/asm/soc.h
create mode 100644 arch/riscv/kernel/cpu-hotplug.c
create mode 100644 arch/riscv/kernel/cpu_ops.c
create mode 100644 arch/riscv/kernel/cpu_ops_sbi.c
create mode 100644 arch/riscv/kernel/cpu_ops_spinwait.c
create mode 100644 arch/riscv/kernel/patch.c
create mode 100644 arch/riscv/kernel/soc.c
create mode 100644 arch/riscv/kernel/traps_misaligned.c
create mode 100644 arch/riscv/mm/pageattr.c
create mode 100644 arch/riscv/mm/ptdump.c
create mode 100644 drivers/soc/kendryte/Kconfig
create mode 100644 drivers/soc/kendryte/Makefile
create mode 100644 drivers/soc/kendryte/k210-sysctl.c
create mode 100644 include/dt-bindings/clock/k210-clk.h