[RFC PATCH v4 00/20] RISC-V: ACPI: Add external interrupt controller support

Björn Töpel bjorn at kernel.org
Thu Apr 18 06:49:22 PDT 2024


Sunil V L <sunilvl at ventanamicro.com> writes:

> This series adds support for the below ECR approved by ASWG.
> 1) MADT - https://drive.google.com/file/d/1oMGPyOD58JaPgMl1pKasT-VKsIKia7zR/view?usp=sharing
>
> The series primarily enables irqchip drivers for RISC-V ACPI based
> platforms.
>
> The series can be broadly categorized like below. 
>
> 1) PCI ACPI related functions are migrated from arm64 to common file so
> that we don't need to duplicate them for RISC-V.
>
> 2) Added support for re-ordering the probe of interrupt controllers when
> IRQCHIP_ACPI_DECLARE is used.
>
> 3) To ensure probe order between interrupt controllers and devices,
> implicit dependency is created similar to when _DEP is present.
>
> 4) When PNP devices like Generic 16550A UART, have the dependency on the
> interrupt controller, they will not be added to PNP data structures. So,
> added second phase of pnpacpi_init to handle this.
>
> 5) ACPI support added in RISC-V interrupt controller drivers.
>
> This series is still kept as RFC to seek feedback on above design
> changes. Looking forward for the feedback!
>
> Changes since RFC v3:
> 	1) Moved to _DEP method instead of fw_devlink.
> 	2) PLIC/APLIC driver probe using namespace devices.
> 	3) Handling PNP devices as part of clearing dependency.
> 	4) Rebased to latest linux-next to get AIA DT drivers.
>
> Changes since RFC v2:
> 	1) Introduced fw_devlink for ACPI nodes for IRQ dependency.
> 	2) Dropped patches in drivers which are not required due to
> 	   fw_devlink support.
> 	3) Dropped pci_set_msi() patch and added a patch in
> 	   pci_create_root_bus().
> 	4) Updated pnp_irq() patch so that none of the actual PNP
> 	   drivers need to change.
>
> Changes since RFC v1:
> 	1) Abandoned swnode approach as per Marc's feedback.
> 	2) To cope up with AIA series changes which changed irqchip driver
> 	   probe from core_initcall() to platform_driver, added patches
> 	   to support deferred probing.
> 	3) Rebased on top of Anup's AIA v11 and added tags.
>
> To test the series,
>
> 1) Qemu should be built using the riscv_acpi_namespace_v1 branch at
> https://github.com/vlsunil/qemu.git
>
> 2) EDK2 should be built using the instructions at:
> https://github.com/tianocore/edk2/blob/master/OvmfPkg/RiscVVirt/README.md

Hi Sunil,

I started playing with your work, and FYI: Using U-boot instead of EDK2
works out of the box (with acpi.config added to U-boot).

I changed my rootfs/boot tooling like [1], and it boots.

(For those who prefer working with U-boot UEFI instead of EDK2.)


Björn

[1] https://github.com/bjoto/riscv-rootfs-utils/commit/c0c620131f04d0c25df1504af4d0629a420b097e



More information about the linux-riscv mailing list