Re: [RFC PATCH v4 00/20] RISC-V: ACPI: Add external interrupt controller support
From: Björn Töpel
Date: Thu Apr 18 2024 - 09:49:53 EST
Sunil V L <sunilvl@xxxxxxxxxxxxxxxx> 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