On 2016/12/2 9:53, Yao, Jiewen wrote:
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,
  );

If the new API is introduced, the old one could be marked as deprecated by DISABLE_NEW_DEPRECATED_INTERFACES.

Thanks,
Star


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

Reply via email to