On 03/04/13 19:28, Jordan Justen wrote: > When the PM base address was moved from 0x400 to 0xb000, this > code was missed. This prevented shutdown's via the UEFI system > call from working. > > (For example, at the EFI shell prompt: reset -s) > > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jordan Justen <[email protected]> > --- > OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c > b/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c > index d075fbe..89a2644 100644 > --- a/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c > +++ b/OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c > @@ -26,8 +26,8 @@ AcpiPmControl ( > { > ASSERT (SuspendType < 6); > > - IoAndThenOr16 (0x404, (UINT16) ~0x3c00, (UINT16) (SuspendType << 10)); > - IoOr16 (0x404, BIT13); > + IoAndThenOr16 (0xb004, (UINT16) ~0x3c00, (UINT16) (SuspendType << 10)); > + IoOr16 (0xb004, BIT13); > CpuDeadLoop (); > } > >
Could you use (PcdGet16 (PcdAcpiPmBaseAddress) + 4) instead? (Added in svn r13719.) ( Also (independently), 0x3c00 is an "int" (INT32), and bitwise complement on signed integers is not the most beautiful thing in the universe. What happens now is: - ~0x3c00 has type "signed int", - representation is bit pattern 11111111 11111111 11000011 11111111, - value is -15361 decimal (two's complement on our platform -- implementation-defined), - when casting it to "short unsigned" (UINT16), we get USHRT_MAX + 1 + (-15361) == 65536 - 15361 == 0xC3FF I think ((UINT16) ~0x3c00u) would be cleaner (without the detour into negative), but that's just an idea. ) Thanks, Laszlo ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
