Some SMBIOS tables have dependencies on other SMBIOS tables. These dependencies are established using handles pointing to the dependent SMBIOS tables. This requires the dependent SMBIOS table to be installed before the parent SMBIOS table can be installed.
To facilitate dynamic SMBIOS table generation, a SMBIOS table dispatcher has been introduced. The SMBIOS table dispatcher schedules the installation of dependent SMBIOS tables before the parent SMBIOS table is installed. This v2 series addresses the feedback received for the v1 series and also introduces ordered dispatch for SMBIOS tables. The SMBIOS dispatcher categorises the SMBIOS tables as: - default ordered - ordered. The default ordered SMBIOS tables have a fixed defined dependency i.e. their dependency list can be traversed by the dispatcher to schedule their dispatch. Ordered SMBIOS tables do not have a well defined dependency and could depend on any SMBIOS table, for e.g. the SMBIOS table Group Associations (Type 14) does not have a well defined dependency as it can be used to associate any two SMBIOS tables. Therefore, ordered SMBIOS tables are scheduled for dispatch after the default ordered SMBIOS tables are dispatched. The ordered SMBIOS tables can also have a level that allows the dispatcher to sequence their dispatch. The changes can be seen at: https://github.com/samimujawar/edk2/tree/2406_smbios_dispatcher_v2 Sami Mujawar (4): DynamicTablesPkg: Define a SMBIOS Structure/Table type DynamicTablesPkg: Add SMBIOS table dispatcher DynamicTablesPkg: Update SMBIOS dispatcher dependency table DynamicTablesPkg: Add Ordered dispatch support for SMBIOS tables DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf | 4 +- DynamicTablesPkg/Drivers/DynamicTableManagerDxe/SmbiosTableDispatcher.c | 669 ++++++++++++++++++++ DynamicTablesPkg/Drivers/DynamicTableManagerDxe/SmbiosTableDispatcher.h | 181 ++++++ DynamicTablesPkg/Include/StandardNameSpaceObjects.h | 17 + 4 files changed, 870 insertions(+), 1 deletion(-) create mode 100644 DynamicTablesPkg/Drivers/DynamicTableManagerDxe/SmbiosTableDispatcher.c create mode 100644 DynamicTablesPkg/Drivers/DynamicTableManagerDxe/SmbiosTableDispatcher.h -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)' -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#100833): https://edk2.groups.io/g/devel/message/100833 Mute This Topic: https://groups.io/mt/97468479/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-