On 02/23/16 05:31, Yao, Jiewen wrote: > I discussed with Module owner. Below is summary for MdeModulePkg: > > 1) PCD Name: We suggest to use PcdDxeIplSwitchToLongMode as > indicator that PEI is 32 bit and DXE is 64 bit for X86 platform. It > might be not clear stated in PCD description, but it is the intent when > this is introduced. We suggest to define this to be FALSE for ARM, so > that our core module can use it. (Confirmed with Liming Gao) > > 2) AcpiTableDxe: As Star Zeng mentioned, we need make sure FACS is > allocate below 4G when PcdDxeIplSwitchToLongMode is set, because it is > used by S3Resume.
This is not good enough. PEI might be restricted to the first 4GB of memory *even though* it is built for X64. Consider a platform with the following characteristics: - PEI is X64 - DXE is X64 - hence PcdDxeIplSwitchToLongMode is FALSE - PEI has page tables only for the first 4GB of RAM - S3 is supported If AcpiTableDxe keyed off of PcdDxeIplSwitchToLongMode *solely*, in order to see whether the FACS needs to be allocated under 4GB, then said platform would break. The most frequently used build of OVMF is exactly like written above. > > 3) UefiBootManagerLib: As Ruiyu Ni mentioned, we need make allocate > L"PerfDataMemAddr" below 4G for when PcdDxeIplSwitchToLongMode is set, > because it is used by S3Resume. My counter-argument is the same as above, I think. > > > > 4) BootGraphicsResourceTableDxe: There is no need to add 4G > limitation, we can remove that directly. (Confirmed with Chao Zhang) > > 5) FirmwarePerformanceDataTableDxe: We can check > PcdDxeIplSwitchToLongMode to allocate Below4G memory for > mAcpiS3PerformanceTable which is used in S3. Same counter-argument again. > And we can remove 4G > limitation for mAcpiBootPerformanceTable directly. (Confirmed with Chao > Zhang) > > 6) PiDxeS3BootScriptLib: We can check PcdDxeIplSwitchToLongMode for > S3TableBase and NewS3TableBase which is used in S3. (Confirmed with Star > Zeng) Same counter-argument. > > 7) BootScriptExecutorDxe: We can check PcdDxeIplSwitchToLongMode for > FfsBuffer and BootScriptExecutorBuffer which is used in S3. (Confirmed > with Star Zeng) Same counter-argument. > > 8) CapsuleRuntimeDxe: Already check PcdDxeIplSwitchToLongMode.No > update needed. (Confirmed with Star Zeng) The only reason this doesn't break under OVMF is because OVMF doesn't implement capsule updates. In summary, PcdDxeIplSwitchToLongMode==TRUE implies, but is not equivalent to, the requirement to allocate under 4GB for S3 purposes. A platform may have *both* S3 *and* a 64-bit PEI phase without access to >= 4GB memory. That's why I proposed a brand new PCD. PcdDxeIplSwitchToLongMode would imply that PCD, but the new PCD wouldn't necessarily imply PcdDxeIplSwitchToLongMode. > BTW: We are trying not use IntelFrameworkModulePkg. If there is > replacement in MdeModulePkg, we suggest use the one in MdeModulePkg, for > example, BDS or ACPI. Absolutely, but migrating a platform from IntelFrameworkModulePkg BDS to MdeModulePkg BDS is not trivial, due to lack of documentation and examples; plus some functionality that is publicly available from GenericBdsLib (and is used by PlatformBdsLib instances) needs to be exported from the new boot manager library. Thanks Laszlo > > > > Thank you > > Yao Jiewen > > > > > > *From:*Ard Biesheuvel [mailto:[email protected]] > *Sent:* Monday, February 22, 2016 8:43 PM > *To:* Yao, Jiewen > *Cc:* Ni, Ruiyu; Laszlo Ersek; [email protected]; Tian, Feng; Zeng, > Star; [email protected]; [email protected]; Fan, Jeff; > Gao, Liming > *Subject:* Re: [edk2] [PATCH v3 2/4] IntelFrameworkModulePkg: BdsDxe: > only allocate below 4 GB if needed > > > > On 22 February 2016 at 13:40, Yao, Jiewen wrote: >> I did a search on current MdeModulePkg. I found there are more modules >> allocating Below4G memory. >> >> Besides BDS, we have BootGraphicsResourceTableDxe, >> BootScriptExecutorDxe, FirmwarePerformanceDataTableDxe, >> PiDxeS3BootScriptLib, CapsuleRuntimeDxe. >> >> >> >> BootGraphicsResourceTableDxe – I am not clear. >> >> CapsuleRuntimeDxe – Below4G is designed for PEI capsule. Or we do not >> need such capability. >> >> BootScriptExecutorDxe, FirmwarePerformanceDataTableDxe, >> PiDxeS3BootScriptLib >> - data need to be access in PEI phase. >> >> >> >> I think we might need more clean up for 32bit PEI. >> > > Agreed. > >> I am still thinking if we can reuse old Pcd – we can clarify in PCD >> description – it is only for 32bit PEI and 64bit DXE. >> >> Or a new PCD, and name to Pcd32BitPei? Please allow me collect more >> feedback on that. >> > > OK > >> In order to separate 32bit PEI issue from ACPI issue, I think we can >> check in ACPI patch at first, if you want. >> > > Should I wait for the maintainers of MdeModulePkg to give their > Reviewed-by ? > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

