Hello Ben,
On Wed, Apr 04, 2018 at 01:23:42PM -0600, Nobody III wrote:
Thanks for the analysis. The OSDev wiki says, "The ACPICA code is meant to be directly integrated into the host OS, as a kernel-resident subsystem." This suggests that we could likely use acpica without too much trouble.
That's perfectly true for traditional monolithic kernels like Linux but should not be taken as given for our approach of a minimal trusted computing base. ACPI comes with significant complexity due to its dependency on AML and therefore an AML interpreter. If there's the slightest chance to keep ACPICA out of the TCB we should invest the effort. A good example is our acpi_drv which implements the ATARE approach [2] to statically parse PCI routing tables.
By the way, could you please give me a quick explanation of the _PIC and _PRT methods, and how they're stored?
Please refer to the ACPI specification [1] sections "5.8.1 _PIC Method" and "6.2.13 _PRT (PCI Routing Table)". Those methods are part of the DSDT table and implemented in ASL/AML.
[1] http://www.uefi.org/sites/default/files/resources/ACPI%206_2_A_Sept29.pdf [2] https://os.inf.tu-dresden.de/papers_ps/tr-atare-2009.pdf
Regards