Hi Ard,

Please find my response inline marked [SAMI].

Regards,

Sami Mujawar


On 10/11/2021 11:33 AM, Ard Biesheuvel wrote:
On Wed, 10 Nov 2021 at 12:01, Sami Mujawar <sami.muja...@arm.com> wrote:
The first 4 patches in this series fix build breaks in upstream
edk2-platforms code for Socionext, Lemaker and SynQuacerEvalBoard.

The IORT Rev E.b specification updates the IORT table revision
to 3. Following this the IORT table revision macro
EFI_ACPI_IO_REMAPPING_TABLE_REVISION which was at Rev 0 has
been renamed to EFI_ACPI_IO_REMAPPING_TABLE_REV0.
I *really* don't like this. All other ACPI tables are set up in a
forward compatible way, where an existing definition in code is
guaranteed to comply with later versions of the spec, and can always
claim to be the newest revision. This is the reason why
xxx_TABLE_REVISION macros exist in the first place.

So I suppose that means that the IORT was modified in a non-forward
compatible fashion? Does that mean that newer firmware has to stick
with the old revision in order to remain able to boot older OS
versions?
[SAMI] I don't think the OS compatibility is broken by the IORT spec.

In edk2, the revision macro for IORT is defined differently when compared
to the other ACPI table version macros.

e.g. The IORT revision macro was defined as
"#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION        0x0"
compare this to MADT table version macro which is
"#define EFI_ACPI_6_4_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION 0x05".

Note the EFI_ACPI_x_x prefix in MADT macro name. This allows existing tables
to work, as for ACPI 6.3 the version in Acpi63.h i.e.
EFI_ACPI_6_3_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION will be used.

Since IORT table version macro does not have any version information in the
macro name EFI_ACPI_IO_REMAPPING_TABLE_REV0 is introduced.

The IORT Rev E.b introduces updates the table vertion to 3 and therefore
EFI_ACPI_IO_REMAPPING_TABLE_REV3 has been introduced.
Ref: https://edk2.groups.io/g/devel/message/83547

This IORT Rev E.b patch series essentially retrofits the version tag missing in the IORT table revision macro and this edk2-platform series is a corresponding adotption.
[/SAMI]


Therefore,
the last 7 patches in this series are added to reflect this
change for the following platforms:
  - FVP
  - Morello FVP
  - SGI
  - AMD/Styx
  - Socionext/SynQuacer
  - RaspberryPi
  - N1SDP

Note: This patch series is dependent on the edk2 patch series:
   "[PATCH v3 0/8] IORT Rev E.b specification updates"
   (https://edk2.groups.io/g/devel/message/83545), which must
be merged in edk2 before this patch series can be integrated.

The changes can be seen at:
https://github.com/samimujawar/edk2-platforms/tree/1527_iort_rev_eb_platforms_v1

Sami Mujawar (11):
   Platform/Socionext: Fix build break for SynQuacerEvalBoard
   Platform/LeMaker: Fix build break for CelloBoard
   Platform/Socionext/SynQuacerEvalBoard: Add missing ArmSoftFloatLib
   Platform/Socionext/SynQuacerEvalBoard: Disable EbcDxe for AArch32
     builds
   Platform/ARM: FVP: Update for IORT revision macro renaming
   Platform/ARM: Morello: Update for IORT revision macro renaming
   Platform/ARM: SGI: Update for IORT revision macro renaming
   Silicon/AMD/Styx: Update for IORT revision macro renaming
   Silicon/Socionext/SynQuacer: Update for IORT revision macro renaming
   Platform/RaspberryPi: Update for IORT revision macro renaming
   Platform/ARM: N1SDP: Update for IORT revision macro renaming

  
Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerFvp.c
  |  2 +-
  
Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
       |  2 +-
  Platform/ARM/SgiPkg/AcpiTables/Iort.aslc                                      
               |  2 +-
  
Platform/ARM/VExpressPkg/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
 |  2 +-
  Platform/LeMaker/CelloBoard/CelloBoard.dsc                                    
               |  4 +++-
  Platform/RaspberryPi/AcpiTables/Iort.aslc                                     
               |  2 +-
  Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.dsc                  
               | 11 +++++++++--
  Platform/Socionext/SynQuacerEvalBoard/SynQuacerEvalBoard.fdf                  
               |  8 +++++++-
  Silicon/AMD/Styx/Drivers/AcpiPlatformDxe/Iort.aslc                            
               |  2 +-
  Silicon/Socionext/SynQuacer/AcpiTables/Iort.aslc                              
               |  2 +-
  10 files changed, 26 insertions(+), 11 deletions(-)

--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'









-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#83568): https://edk2.groups.io/g/devel/message/83568
Mute This Topic: https://groups.io/mt/86954380/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to