Passing System Configuration Data from Firmware to Kernel

Firmware relies on intimate system knowledge for memory initialization and training. However, there is currently no standard method for passing this data to the operating system. The OS kernel and other monitor software relies on platform-specific drivers, but these are often based on proprietary tables using confidential information.
Intel currently publishes a proprietary BIOS ACPI Data Table (BDAT) to convey system data, such as DDR4/DDR5 training margins. This session proposes moving this data to a format for use by any open source firmware project. The proposed method can be implemented by a complete UEFI stack, or low-level firmware based on PEI driver architecture. This session will also describe next steps for implementation, as well EDK II example code available from TianoCore.