Commit 1b37a0a2 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'riscv-for-linus-6.6-mw2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux

Pull more RISC-V updates from Palmer Dabbelt:

 - The kernel now dynamically probes for misaligned access speed, as
   opposed to relying on a table of known implementations.

 - Support for non-coherent devices on systems using the Andes AX45MP
   core, including the RZ/Five SoCs.

 - Support for the V extension in ptrace(), again.

 - Support for KASLR.

 - Support for the BPF prog pack allocator in RISC-V.

 - A handful of bug fixes and cleanups.

* tag 'riscv-for-linus-6.6-mw2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (25 commits)
  soc: renesas: Kconfig: For ARCH_R9A07G043 select the required configs if dependencies are met
  riscv: Kconfig.errata: Add dependency for RISCV_SBI in ERRATA_ANDES config
  riscv: Kconfig.errata: Drop dependency for MMU in ERRATA_ANDES_CMO config
  riscv: Kconfig: Select DMA_DIRECT_REMAP only if MMU is enabled
  bpf, riscv: use prog pack allocator in the BPF JIT
  riscv: implement a memset like function for text
  riscv: extend patch_text_nosync() for multiple pages
  bpf: make bpf_prog_pack allocator portable
  riscv: libstub: Implement KASLR by using generic functions
  libstub: Fix compilation warning for rv32
  arm64: libstub: Move KASLR handling functions to kaslr.c
  riscv: Dump out kernel offset information on panic
  riscv: Introduce virtual kernel mapping KASLR
  RISC-V: Add ptrace support for vectors
  soc: renesas: Kconfig: Select the required configs for RZ/Five SoC
  cache: Add L2 cache management for Andes AX45MP RISC-V core
  dt-bindings: cache: andestech,ax45mp-cache: Add DT binding documentation for L2 cache controller
  riscv: mm: dma-noncoherent: nonstandard cache operations support
  riscv: errata: Add Andes alternative ports
  riscv: asm: vendorid_list: Add Andes Technology to the vendors list
  ...
parents 2a5a4326 c6a906cc
Loading
Loading
Loading
Loading
+81 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright (C) 2023 Renesas Electronics Corp.
%YAML 1.2
---
$id: http://devicetree.org/schemas/cache/andestech,ax45mp-cache.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Andestech AX45MP L2 Cache Controller

maintainers:
  - Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

description:
  A level-2 cache (L2C) is used to improve the system performance by providing
  a large amount of cache line entries and reasonable access delays. The L2C
  is shared between cores, and a non-inclusive non-exclusive policy is used.

select:
  properties:
    compatible:
      contains:
        enum:
          - andestech,ax45mp-cache

  required:
    - compatible

properties:
  compatible:
    items:
      - const: andestech,ax45mp-cache
      - const: cache

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  cache-line-size:
    const: 64

  cache-level:
    const: 2

  cache-sets:
    const: 1024

  cache-size:
    enum: [131072, 262144, 524288, 1048576, 2097152]

  cache-unified: true

  next-level-cache: true

additionalProperties: false

required:
  - compatible
  - reg
  - interrupts
  - cache-line-size
  - cache-level
  - cache-sets
  - cache-size
  - cache-unified

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    cache-controller@2010000 {
        compatible = "andestech,ax45mp-cache", "cache";
        reg = <0x13400000 0x100000>;
        interrupts = <508 IRQ_TYPE_LEVEL_HIGH>;
        cache-line-size = <64>;
        cache-level = <2>;
        cache-sets = <1024>;
        cache-size = <262144>;
        cache-unified;
    };
+5 −6
Original line number Diff line number Diff line
@@ -87,13 +87,12 @@ The following keys are defined:
    emulated via software, either in or below the kernel.  These accesses are
    always extremely slow.

  * :c:macro:`RISCV_HWPROBE_MISALIGNED_SLOW`: Misaligned accesses are supported
    in hardware, but are slower than the corresponding aligned accesses
    sequences.
  * :c:macro:`RISCV_HWPROBE_MISALIGNED_SLOW`: Misaligned accesses are slower
    than equivalent byte accesses.  Misaligned accesses may be supported
    directly in hardware, or trapped and emulated by software.

  * :c:macro:`RISCV_HWPROBE_MISALIGNED_FAST`: Misaligned accesses are supported
    in hardware and are faster than the corresponding aligned accesses
    sequences.
  * :c:macro:`RISCV_HWPROBE_MISALIGNED_FAST`: Misaligned accesses are faster
    than equivalent byte accesses.

  * :c:macro:`RISCV_HWPROBE_MISALIGNED_UNSUPPORTED`: Misaligned accesses are
    not supported at all and will generate a misaligned address fault.
+7 −0
Original line number Diff line number Diff line
@@ -20406,6 +20406,13 @@ S: Supported
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git
F:	drivers/staging/
STANDALONE CACHE CONTROLLER DRIVERS
M:	Conor Dooley <conor@kernel.org>
L:	linux-riscv@lists.infradead.org
S:	Maintained
T:	git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
F:	drivers/cache
STARFIRE/DURALAN NETWORK DRIVER
M:	Ion Badulescu <ionut@badula.org>
S:	Odd Fixes
+2 −0
Original line number Diff line number Diff line
@@ -156,4 +156,6 @@ static inline void efi_capsule_flush_cache_range(void *addr, int size)

efi_status_t efi_handle_corrupted_x18(efi_status_t s, const char *f);

void efi_icache_sync(unsigned long start, unsigned long end);

#endif /* _ASM_EFI_H */
+27 −1
Original line number Diff line number Diff line
@@ -273,7 +273,14 @@ config RISCV_DMA_NONCOHERENT
	select ARCH_HAS_SYNC_DMA_FOR_CPU
	select ARCH_HAS_SYNC_DMA_FOR_DEVICE
	select DMA_BOUNCE_UNALIGNED_KMALLOC if SWIOTLB
	select DMA_DIRECT_REMAP
	select DMA_DIRECT_REMAP if MMU

config RISCV_NONSTANDARD_CACHE_OPS
	bool
	depends on RISCV_DMA_NONCOHERENT
	help
	  This enables function pointer support for non-standard noncoherent
	  systems to handle cache management.

config AS_HAS_INSN
	def_bool $(as-instr,.insn r 51$(comma) 0$(comma) 0$(comma) t0$(comma) t0$(comma) zero)
@@ -713,6 +720,25 @@ config RELOCATABLE

          If unsure, say N.

config RANDOMIZE_BASE
        bool "Randomize the address of the kernel image"
        select RELOCATABLE
        depends on MMU && 64BIT && !XIP_KERNEL
        help
          Randomizes the virtual address at which the kernel image is
          loaded, as a security feature that deters exploit attempts
          relying on knowledge of the location of kernel internals.

          It is the bootloader's job to provide entropy, by passing a
          random u64 value in /chosen/kaslr-seed at kernel entry.

          When booting via the UEFI stub, it will invoke the firmware's
          EFI_RNG_PROTOCOL implementation (if available) to supply entropy
          to the kernel proper. In addition, it will randomise the physical
          location of the kernel Image as well.

          If unsure, say N.

endmenu # "Kernel features"

menu "Boot options"
Loading