Hi Andrew/Samer,
So does option 2 could meet your requirement? Option2 is a full set
which cover option 1. This would provide flexibility to disable 32-bit and
64-bit.
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.
Thanks
Elvin
-----Original Message-----
From: El-Haj-Mahmoud, Samer [mailto:[email protected]]
Sent: Friday, February 6, 2015 2:57 PM
To: [email protected]
Cc: Davis, Brad A; Lohr, Paul A
Subject: Re: [edk2] 64-bit entry point and table in SMBIOS 3.0 implementation
I agree, and the PCD to opt out of 32 bit is needed.
There might be a need for a PCD to opt out of the 64 bit version as well. Not
as important, but adds flexibility. May be useful to reduce validation on
platforms that don't care about the 64 bit version.
I also would add that the SmbiosDxe driver should abstract the fact that there
are two tables, and keep the records that are common in sync to meet SMBIOS 3.0
requirements.
-----Original Message-----
From: Andrew Fish [[email protected]]
Received: Friday, 06 Feb 2015, 12:25AM
To: [email protected] [[email protected]]
CC: Davis, Brad A [[email protected]]; Lohr, Paul A [[email protected]]
Subject: Re: [edk2] 64-bit entry point and table in SMBIOS 3.0 implementation
On Feb 5, 2015, at 10:02 PM, Li, Elvin
<[email protected]<mailto:[email protected]>> wrote:
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.
This option would work for us, maybe with a PCD option to disable the 32-bit
table if we ever want to deprecate it in the future.
Thanks,
Andrew Fish
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]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------
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
------------------------------------------------------------------------------
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