[RFC PATCH 1/2] acpi: update madt revisions to ACPI 6.5.next
Xu, Haibo1
haibo1.xu at intel.com
Fri Sep 1 02:27:58 UTC 2023
> -----Original Message-----
> From: ivanhu <ivan.hu at canonical.com>
> Sent: Friday, September 1, 2023 10:13 AM
> To: Xu, Haibo1 <haibo1.xu at intel.com>; fwts-devel at lists.ubuntu.com
> Cc: heinrich.schuchardt at canonical.com
> Subject: Re: [RFC PATCH 1/2] acpi: update madt revisions to ACPI 6.5.next
>
> Thank you for bringing this matter to our attention.
>
>
> Do you have matis number for this ECR, we could follow? Has it already
> gained approval from the ASWG?
Yes, it had been approved by the ASWG. I can't find the matis number in
the related ECR document below and will send to you after getting it.
https://drive.google.com/file/d/1R6k4MshhN3WTT-hwqAquu5nX6xSEqK2l/view
https://drive.google.com/file/d/1nP3nFiH4jkPMp6COOxP6123DCZKR-tia/view
https://drive.google.com/file/d/1sKbOa8m1UZw1JkquZYe3F1zQBN1xXsaf/view
https://drive.google.com/file/d/1oMGPyOD58JaPgMl1pKasT-VKsIKia7zR/view
> and which ACPI specification version will include this ECR?
>
Currently, all the ECR changes are in 6.5.next and it supposed to be included in
the next ACPI release(6.6?).
>
> On 8/28/23 17:37, Haibo Xu wrote:
> > Add risc-v madt subtable types which were accepted in ACPI
> > 6.5.next[1].
> >
> > [1]
> > https://github.com/riscv-non-isa/riscv-acpi/wiki/ACPI-ASWG-ECR-Process
> > ---
> > src/acpi/madt/madt.c | 14 +++++++++-
> > src/lib/include/fwts_acpi.h | 55
> +++++++++++++++++++++++++++++++++++++
> > 2 files changed, 68 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/acpi/madt/madt.c b/src/acpi/madt/madt.c index
> > 05f93ed8..2b857a08 100644
> > --- a/src/acpi/madt/madt.c
> > +++ b/src/acpi/madt/madt.c
> > @@ -122,7 +122,7 @@
> >
> > #define SUBTABLE_UNDEFINED 0x00
> > #define SUBTABLE_VARIABLE 0xff
> > -#define NUM_SUBTABLE_TYPES 24
> > +#define NUM_SUBTABLE_TYPES 28
> > #define MAX_IO_APIC_ID 256 /* IO APIC ID field is 1 byte */
> >
> > #define SBBR_ACPI_MAJOR_VERSION 6
> > @@ -250,6 +250,18 @@ static struct acpi_madt_subtable_lengths
> spec_info[] = {
> > SUBTABLE_VARIABLE, SUBTABLE_VARIABLE,
> > SUBTABLE_VARIABLE }
> > },
> > + { /* for ACPI 6.5.next */
> > + .major_version = 6,
> > + .minor_version = 5,
> > + .madt_version = 6,
> > + .num_types = 28,
> > + .lengths = { 8, 12, 10, 8, 6, 12, 16, SUBTABLE_VARIABLE,
> > + 16, 16, 12, 82, 24, 24, 16, 20, 16,
> > + SUBTABLE_VARIABLE, SUBTABLE_VARIABLE,
> > + SUBTABLE_VARIABLE, SUBTABLE_VARIABLE,
> > + SUBTABLE_VARIABLE, SUBTABLE_VARIABLE,
> > + SUBTABLE_VARIABLE, 36, 16, 36, 36 }
>
> The same version with ACPI 6.5
> { /* for ACPI 6.5 */
> .major_version = 6,
> .minor_version = 5,
> .madt_version = 6,
>
> Potential conflicts may arise during testing for ACPI 6.5.
> Could we confirm the above versions?
> If not, we prefer to wait the formal release and get the actually versions
> confirmed rather than using the same.
>
Thanks for your review! I will confirm it with the ECR owner.
Haibo
> Cheers,
> Ivan
>
>
>
> > + },
> > { /* terminator */
> > .major_version = 0,
> > .minor_version = 0,
> > diff --git a/src/lib/include/fwts_acpi.h b/src/lib/include/fwts_acpi.h
> > index eb958b0e..510addb4 100644
> > --- a/src/lib/include/fwts_acpi.h
> > +++ b/src/lib/include/fwts_acpi.h
> > @@ -531,6 +531,10 @@ typedef enum {
> > FWTS_MADT_MSI_PIC,
> > FWTS_MADT_BIO_PIC,
> > FWTS_MADT_LPC_PIC,
> > + FWTS_MADT_RINTC,
> > + FWTS_MADT_IMSIC,
> > + FWTS_MADT_APLIC,
> > + FWTS_MADT_PLIC,
> > FWTS_MADT_RESERVED, /* does not have defined structure */
> > FWTS_MADT_OEM /* does not have defined structure */
> > } fwts_acpi_madt_type;
> > @@ -691,6 +695,57 @@ typedef struct {
> > uint64_t mail_box_address;
> > } __attribute__ ((packed)) fwts_acpi_madt_mp_wakeup;
> >
> > +/* Type 24, FWTS_MADT_RINTC */
> > +typedef struct {
> > + uint8_t version;
> > + uint8_t reserved;
> > + uint32_t flags;
> > + uint64_t hart_id;
> > + uint32_t uid;
> > + uint32_t ext_intc_id;
> > + uint64_t imsic_addr;
> > + uint32_t imsic_size;
> > +} __attribute__ ((packed)) fwts_acpi_madt_rintc;
> > +
> > +/* Type 25, FWTS_MADT_IMSIC */
> > +typedef struct {
> > + uint8_t version;
> > + uint8_t reserved;
> > + uint32_t flags;
> > + uint16_t num_ids;
> > + uint16_t num_guest_ids;
> > + uint8_t guest_index_bits;
> > + uint8_t hart_index_bits;
> > + uint8_t group_index_bits;
> > + uint8_t group_index_shift;
> > +} __attribute__ ((packed)) fwts_acpi_madt_imsic;
> > +
> > +/* Type 26, FWTS_MADT_APLIC */
> > +typedef struct {
> > + uint8_t version;
> > + uint8_t id;
> > + uint32_t flags;
> > + uint8_t hw_id[8];
> > + uint16_t num_idcs;
> > + uint16_t num_sources;
> > + uint32_t gsi_base;
> > + uint64_t addr;
> > + uint32_t size;
> > +} __attribute__ ((packed)) fwts_acpi_madt_aplic;
> > +
> > +/* Type 27, FWTS_MADT_PLIC */
> > +typedef struct {
> > + uint8_t version;
> > + uint8_t id;
> > + uint8_t hw_id[8];
> > + uint16_t num_irqs;
> > + uint16_t max_prio;
> > + uint32_t flags;
> > + uint32_t size;
> > + uint64_t base_addr;
> > + uint32_t gsi_base;
> > +} __attribute__ ((packed)) fwts_acpi_madt_plic;
> > +
> > /*
> > * ACPI TCPA (Trusted Computing Platform Alliance Capabilities Table)
> > * http://www.kuro5hin.org/story/2002/10/27/16622/530,
More information about the fwts-devel
mailing list