Re: [PATCH v3 20/30] drivers/arm: Implement acpi_fill_madt

From: Patrick Rudolph
Date: Thu Sep 12 2024 - 02:31:38 EST


On Thu, Sep 12, 2024 at 2:58 AM Simon Glass <sjg@xxxxxxxxxxxx> wrote:
>
> Hi Patrick,
>
> On Wed, 11 Sept 2024 at 00:25, Patrick Rudolph
> <patrick.rudolph@xxxxxxxxxxxxx> wrote:
> >
> > Fill the MADT table in the GIC driver and armv8 CPU driver to
> > drop SoC specific code. While the GIC only needs devicetree
> > data, the CPU driver needs additional information stored in
> > the cpu_plat struct.
> >
> > While on it update the only board making use of the existing
> > drivers and writing ACPI MADT in mainboard code.
> >
> > TEST: Booted on QEMU sbsa using driver model generated MADT.
> > Signed-off-by: Patrick Rudolph <patrick.rudolph@xxxxxxxxxxxxx>
> > Cc: Simon Glass <sjg@xxxxxxxxxxxx>
> > ---
> > arch/arm/lib/acpi_table.c | 1 +
> > arch/arm/lib/gic-v3-its.c | 89 ++++++++++++++++++++++++++++++++++++++-
> > drivers/cpu/armv8_cpu.c | 27 ++++++++++++
> > include/cpu.h | 27 +++++++++++-
> > 4 files changed, 141 insertions(+), 3 deletions(-)
>
> Reviewed-by: Simon Glass <sjg@xxxxxxxxxxxx>
>
> Are the GIC values available by probing, or are they just 'known', and
> dependent on the compatible string?
Sorry I don't get that question.

The "arm_gic_v3_its" and "arm_gic_v3" driver uses existing DT
properties and should work with all existing boards.

The madt_gicc entries are board specific. Besides the mpidr all of
them can be 0.
Those entries currently do not have matching DT properties in the CPU
node that could be used.
Some of those entries are present in the GIC node, but there's no
direct association between CPU nodes and GIC nodes.

>
> Regards,
> Simon