On Wed, Mar 24, 2021 at 02:33 PM, Laszlo Ersek wrote:<br />
<blockquote>
<blockquote>
<blockquote>
<blockquote>Hi all,<br />Would it be acceptable/feasible for AcpiTableDxe or AcpiPlatformDxe (in<br />MdeModulePkg) to use `EfiGetSystemConfigurationTable` to get the RSDP<br />and then install the tables? It's a solution that uses the regular<br />UefiLib, so it avoids platform-specific quirks (and as I see it, if RSDP<br />is in the configuration table, we probably always want those tables).</blockquote>
I'm sorry, I don't understand how this would help.</blockquote>
As I understand it, the issue is that this patchset changes MdeModulePkg to do platform-specific parsing.<br /><br />Perhaps it would be an acceptable solution for platforms to retrieve the tables, then add<br />RSDP/them to the configuration table to be installed by AcpiTableDxe/AcpiPlatformDxe.<br />This allows MdeModulePkg to abstract away the parsing, only installing tables<br />available to it.</blockquote>
But this is already the best approach, and already what's happening --<br />when you call EFI_ACPI_TABLE_PROTOCOL.InstallAcpiTable() from the<br />platform's AcpiPlatformDxe, that's *how* you tell AcpiTableDxe in<br />MdeModulePkg to pick up the table and hook it into the RSDT / XSDT /<br />wherever, and also to manage RSD PTR as a UEFI configuration table.<br /><br />Are you (more or less) proposing a new EFI_ACPI_TABLE_PROTOCOL member<br />function for taking a forest of ACPI tables, passed in by RSD PTR?</blockquote>
Yes.<br />I thought the implementation of AcpiPlatformDxe in MdeModulePkg could take it, so it will install<br />ACPI tables from flash or from memory.<br /><br />Regarding UefiPayloadPkg: gEfiAcpiTableGuid is not a HOB. It's an entry in<br />gUefiSystemTableInfoGuid (which is a HOB) that was installed in the config table. Therefore,<br />retrieving its GUID as a HOB in AcpiTableDxe fails.<br /><br />To make this patchset work in UefiPayloadPkg (actually a fork), I have to add AcpiTableDxe to its<br />FDF, drop patch 2/2 and make `InstallAcpiTableFromHob` do<br />`Status = EfiGetSystemConfigurationTable (&gEfiAcpiTableGuid, (VOID **) &Rsdp);`.<br />Then, this patchset works: "acpiview" shell command shows tables from QEMU + coreboot, as well<br />as a BGRT.


 <div width="1" style="color:white;clear:both">_._,_._,_</div> <hr> Groups.io Links:<p>   You receive all messages sent to this group.    <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/73244">View/Reply Online (#73244)</a> |    |  <a target="_blank" href="https://groups.io/mt/81543419/1813853">Mute This Topic</a>  | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>    <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |  <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>  [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>