public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Sami Mujawar" <sami.mujawar@arm.com>
To: Ard Biesheuvel <ardb@kernel.org>,
	edk2-devel-groups-io <devel@edk2.groups.io>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>,
	Leif Lindholm <leif@nuviainc.com>,
	Pierre <pierre.gondois@arm.com>,
	Matteo.Carlini@arm.com, Akanksha.Jain2@arm.com,
	Ben.Adderson@arm.com,
	"Liming Gao (Byosoft address)" <gaoliming@byosoft.com.cn>,
	Peter Batard <pete@akeo.ie>,
	Thomas Abraham <thomas.abraham@arm.com>,
	Chandni.Cherukuri@arm.com, Khasim.Mohammed@arm.com,
	nd <nd@arm.com>
Subject: Re: [edk2-devel] [PATCH edk2-platforms v1 00/11] Fix build breaks and update IORT revision macro
Date: Wed, 10 Nov 2021 13:30:19 +0000	[thread overview]
Message-ID: <4152d2d7-9c91-c105-4972-aafd8b5697ad@arm.com> (raw)
In-Reply-To: <CAMj1kXHjER_Mo-hdwiEe7oYUqSLJ_T1B++DOcXAO2ada5ytvgg@mail.gmail.com>

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.mujawar@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)'
>>
>>
>>
>> 
>>
>>


      reply	other threads:[~2021-11-10 13:30 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-10 11:01 [PATCH edk2-platforms v1 00/11] Fix build breaks and update IORT revision macro Sami Mujawar
2021-11-10 11:01 ` [PATCH edk2-platforms v1 01/11] Platform/Socionext: Fix build break for SynQuacerEvalBoard Sami Mujawar
2021-11-10 11:01 ` [PATCH edk2-platforms v1 02/11] Platform/LeMaker: Fix build break for CelloBoard Sami Mujawar
2021-11-10 11:01 ` [PATCH edk2-platforms v1 03/11] Platform/Socionext/SynQuacerEvalBoard: Add missing ArmSoftFloatLib Sami Mujawar
2021-11-10 11:01 ` [PATCH edk2-platforms v1 04/11] Platform/Socionext/SynQuacerEvalBoard: Disable EbcDxe for AArch32 builds Sami Mujawar
2021-11-10 11:01 ` [PATCH edk2-platforms v1 05/11] Platform/ARM: FVP: Update for IORT revision macro renaming Sami Mujawar
2021-11-10 11:01 ` [PATCH edk2-platforms v1 06/11] Platform/ARM: Morello: " Sami Mujawar
2021-11-10 11:01 ` [PATCH edk2-platforms v1 07/11] Platform/ARM: SGI: " Sami Mujawar
2021-11-10 11:01 ` [PATCH edk2-platforms v1 08/11] Silicon/AMD/Styx: " Sami Mujawar
2021-11-10 11:01 ` [PATCH edk2-platforms v1 09/11] Silicon/Socionext/SynQuacer: " Sami Mujawar
2021-11-10 11:01 ` [PATCH edk2-platforms v1 10/11] Platform/RaspberryPi: " Sami Mujawar
2021-11-10 11:01 ` [PATCH edk2-platforms v1 11/11] Platform/ARM: N1SDP: " Sami Mujawar
2021-11-10 11:33 ` [edk2-devel] [PATCH edk2-platforms v1 00/11] Fix build breaks and update IORT revision macro Ard Biesheuvel
2021-11-10 13:30   ` Sami Mujawar [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4152d2d7-9c91-c105-4972-aafd8b5697ad@arm.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox