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

Patrick Rudolph patrick.rudolph at 9elements.com
Thu Sep 12 08:31:14 CEST 2024


On Thu, Sep 12, 2024 at 2:58 AM Simon Glass <sjg at chromium.org> wrote:
>
> Hi Patrick,
>
> On Wed, 11 Sept 2024 at 00:25, Patrick Rudolph
> <patrick.rudolph at 9elements.com> 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 at 9elements.com>
> > Cc: Simon Glass <sjg at chromium.org>
> > ---
> >  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 at chromium.org>
>
> 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


More information about the U-Boot mailing list