On 2020.03.30 14:20, Ard Biesheuvel wrote:
On Mon, 30 Mar 2020 at 15:12, Ard Biesheuvel <[email protected]> wrote:

On Mon, 30 Mar 2020 at 15:09, Pete Batard <[email protected]> wrote:

On 2020.03.30 14:06, Ard Biesheuvel wrote:
On Fri, 27 Mar 2020 at 14:06, Pete Batard <[email protected]> wrote:

Incidentally, this is not an [edk2-platform] patch, as the subject line
from previous mail seemed to indicate, but an [edk2] patch.


Do we have a user for this?

Yes we do. I have a pachset lined up that updates the Raspberry Pi ACPI
to 6.3, that has a dependency on this.


But does the RPi have SPE and the associated overflow interrupt?

No, but it doesn't matter since the specs indicate that SPE values can be set to zero if unused/non-applicable.

ACPI
is designed to be backward compatible, so it is perfectly acceptable
to use the 6.2 macros in the context of a firmware implementation that
complies with 6.3.

This is what happens if you try to use EFI_ACPI_6_0_GICC_STRUCTURE_INIT in a 6.3 context:

/usr/src/edk2/MdePkg/Include/IndustryStandard/Acpi10.h:297:33: error: excess elements in scalar initializer [-Werror]
 #define EFI_ACPI_RESERVED_BYTE  0x00
                                 ^~~~
Building ... /usr/src/edk2/MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf [AARCH64] /usr/src/edk2/EmbeddedPkg/Include/Library/AcpiLib.h:64:30: note: in expansion of macro ‘EFI_ACPI_RESERVED_BYTE’ {EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE} \
                              ^~~~~~~~~~~~~~~~~~~~~~
/usr/src/edk2-platforms/Platform/RaspberryPi/AcpiTables/Madt.aslc:64:5: note: in expansion of macro ‘EFI_ACPI_6_0_GICC_STRUCTURE_INIT’
     EFI_ACPI_6_0_GICC_STRUCTURE_INIT (
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The only reason I'm sending an EDK2 patch, which I'd always rather avoid so that edk2-platforms patches can be applied faster, is that I haven't been able to find a way to make the existing 6.0 macros work in a 6.3 context, and I expect that this will be the case for others.

Or is there another reason you want to update the
MADT to 6.3?

I just want to fix the compilation error, as well as make sure that folks who need the ACPI 6.3 SPE init can get it without having to spend time waiting for an EDK2 patch to be applied.

BTW, this patch sets the size of the GICC entry to 'sizeof
(EFI_ACPI_6_0_GIC_STRUCTURE)' so it is likely that the parser will
choke on it.

The structure size hasn't changed. There were 3 reserved bytes, and now there's one reserve byte and one 16-bit word for the SPE.

Since I actually need this patch as part of a platform update, I did validate compilation, so, no, the parser doesn't choke on it.

Regards,

/Pete


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#56639): https://edk2.groups.io/g/devel/message/56639
Mute This Topic: https://groups.io/mt/72586671/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to