Hi All,
As DMTF already gives SMBIOS 3.00d even it is still Work in Progress Documents,
I would like to hear from you about how to implement 64-bit entrypoint/table
together with 32-bit entrypoint/table for EDKII SMBIOS 3.0 support. I listed
several options below for EDKII SMBIOS module to produce 32-bit and 64-bit
entrypoint/table:
Option 1:
We produce both 32-bit and 64-bit entrypoint. We produce 32-bit table below
4GB, we produce 64-bit table anywhere up to max CPU physical address. We add a
SMBIOS record to both 32-bit and 64-bit table. And if these conditions below
happen, we add one SMBIOS record to 64-bit table ONLY:
1. If we find 32-bit entrypoint cannot be allocated below 4GB.
2. If we find memory below 4GB is not enough when a new SMBIOS record is
added/updated.
3. If we meet a length of record exceed 65535. As 32-bit SMBIOS entry
point defines "Maximum Structure Size" for a single record with WORD.
4. If we find the size of entire SMBIOS table will exceed 65535. As
32-bit SMBIOS entry point defines "Structure Table Length" for entire SMBIOS
table with WORD.
Option 2:
We introduce a new PCD PcdSmbiosEntryPointProvideMethod to
provide standalone choices.
1. 0b - 32-bit entry point and 32-bit table.
2. 1b - 64-bit entry point and 64-bit table.
3. 11b - Both 32-bit and 64-bit entry point. The code logic follows
Option 1.
Option 3:
We introduce a new PCD PcdSmbios2xCompatibility to provide 2
choices:
1. When PcdSmbios2xCompatibility is set to TRUE, 32-bit entrypoint/table
will be produced following SMBIOS 2.x spec. There are several options for
64-bit entrypoint/table: Produce/Not Produce, 4GBBelow/AnyWhereInMemory. It
depends on how we want to use 64-bit entrypoint/table when we still want to
keep compatibility. Welcome any ideas here.
2. When PcdSmbios2xCompatibility is set to FALSE, only 64-bit
entrypoint/table will be produced at anywhere in memory.
If you have other options, please feel free to discuss.
Thank you
Regards
Elvin Li
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel