HI Laszlo Thank you to raise this long time existing issue. :-) There is historic reason that we inherit this undocumented API from EDK-I to EDKII.
I do not object your update. I am thinking if it is time to create a new API which can match PI specification, and suggest all consumers use the new API. RETURN_STATUS EFIAPI S3BootScriptSavePiMemPoll ( IN S3_BOOT_SCRIPT_LIB_WIDTH Width, IN UINT64 Address, IN VOID *Data, IN VOID *DataMask, IN UINT64 Delay, ); Thank you Yao Jiewen > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of > Laszlo Ersek > Sent: Friday, December 2, 2016 1:56 AM > To: edk2-devel-01 <edk2-de...@ml01.01.org> > Cc: Tian, Feng <feng.t...@intel.com>; Gao, Liming <liming....@intel.com>; > Kinney, Michael D <michael.d.kin...@intel.com>; Zeng, Star > <star.z...@intel.com>; Wei, David <david....@intel.com> > Subject: [edk2] [PATCH 0/3] MdePkg, MdeModulePkg, Vlv2TbltDevicePkg: > 64-bit LoopTimes in S3 MEM_POLL > > While working on S3 boot script related stuff in OVMF, I wanted to see > if infinite blocking was possible in the various POLL opcodes. While > edk2's implementation of IO_POLL, PCI_CONFIG_POLL and > PCI_CONFIG2_POLL > follows the PI spec vol5 closely, even internally (using 100ns delay > units), the MEM_POLL internals differ -- they are microseconds based. > > That's not a problem per se (it's just a different internal opcode > representation, which is fine); the problem is that the current > internals don't conform to the spec: in 32-bit builds, the UINT64 number > of 100ns units that the caller intends to wait for is silently > truncated, for no good reason. This issue is not hard to fix (we can > even keep the microseconds-based internals), so let's fix it. > > Repo: https://github.com/lersek/edk2/ > Branch: mempoll_looptimes_64bit > > Cc: David Wei <david....@intel.com> > Cc: Feng Tian <feng.t...@intel.com> > Cc: Liming Gao <liming....@intel.com> > Cc: Mang Guo <mang....@intel.com> > Cc: Michael D Kinney <michael.d.kin...@intel.com> > Cc: Star Zeng <star.z...@intel.com> > > Thanks > Laszlo > > Laszlo Ersek (3): > MdePkg, MdeModulePkg: S3BootScriptSaveMemPoll(): accept 64-bit > LoopTimes > MdeModulePkg: S3SaveStateDxe, SmmS3SaveState: save 64-bit > LoopTimes > Vlv2TbltDevicePkg/BootScriptSaveDxe: save 64-bit LoopTimes > > MdeModulePkg/Library/PiDxeS3BootScriptLib/BootScriptSave.c | 2 +- > MdeModulePkg/Universal/Acpi/S3SaveStateDxe/S3SaveState.c | 8 > ++++---- > MdeModulePkg/Universal/Acpi/SmmS3SaveState/SmmS3SaveState.c | 8 > ++++---- > MdePkg/Include/Library/S3BootScriptLib.h | 2 +- > MdePkg/Library/BaseS3BootScriptLibNull/BootScriptLib.c | 2 +- > Vlv2TbltDevicePkg/BootScriptSaveDxe/ScriptSave.c | 4 ++-- > 6 files changed, 13 insertions(+), 13 deletions(-) > > -- > 2.9.2 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel