Skip to content

Commit 8f77295

Browse files
vlsuniljoergroedel
authored andcommitted
ACPI: RISC-V: Add support for RIMT
RISC-V IO Mapping Table (RIMT) is a static ACPI table to communicate IOMMU information to the OS. The spec is available at [1]. The changes at high level are, a) Initialize data structures required for IOMMU/device configuration using the data from RIMT. Provide APIs required for device configuration. b) Provide an API for IOMMU drivers to register the fwnode with RIMT data structures. This API will create a fwnode for PCIe IOMMU. [1] - https://github.com/riscv-non-isa/riscv-acpi-rimt Signed-off-by: Sunil V L <[email protected]> Reviewed-by: Anup Patel <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Joerg Roedel <[email protected]>
1 parent 8f5ae30 commit 8f77295

File tree

9 files changed

+565
-0
lines changed

9 files changed

+565
-0
lines changed

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,7 @@ L: [email protected]
347347
348348
S: Maintained
349349
F: drivers/acpi/riscv/
350+
F: include/linux/acpi_rimt.h
350351

351352
ACPI PCC(Platform Communication Channel) MAILBOX DRIVER
352353
M: Sudeep Holla <[email protected]>

arch/riscv/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ config RISCV
1616
select ACPI_MCFG if (ACPI && PCI)
1717
select ACPI_PPTT if ACPI
1818
select ACPI_REDUCED_HARDWARE_ONLY if ACPI
19+
select ACPI_RIMT if ACPI
1920
select ACPI_SPCR_TABLE if ACPI
2021
select ARCH_DMA_DEFAULT_COHERENT
2122
select ARCH_ENABLE_HUGEPAGE_MIGRATION if HUGETLB_PAGE && MIGRATION

drivers/acpi/Kconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,10 @@ if ARM64
547547
source "drivers/acpi/arm64/Kconfig"
548548
endif
549549

550+
if RISCV
551+
source "drivers/acpi/riscv/Kconfig"
552+
endif
553+
550554
config ACPI_PPTT
551555
bool
552556

drivers/acpi/riscv/Kconfig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# SPDX-License-Identifier: GPL-2.0-only
2+
#
3+
# ACPI Configuration for RISC-V
4+
#
5+
6+
config ACPI_RIMT
7+
bool

drivers/acpi/riscv/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
obj-y += rhct.o init.o irq.o
33
obj-$(CONFIG_ACPI_PROCESSOR_IDLE) += cpuidle.o
44
obj-$(CONFIG_ACPI_CPPC_LIB) += cppc.o
5+
obj-$(CONFIG_ACPI_RIMT) += rimt.o

drivers/acpi/riscv/init.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,6 @@
1010
void __init acpi_arch_init(void)
1111
{
1212
riscv_acpi_init_gsi_mapping();
13+
if (IS_ENABLED(CONFIG_ACPI_RIMT))
14+
riscv_acpi_rimt_init();
1315
}

drivers/acpi/riscv/init.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
#include <linux/init.h>
33

44
void __init riscv_acpi_init_gsi_mapping(void);
5+
void __init riscv_acpi_rimt_init(void);

0 commit comments

Comments
 (0)