Re: [edk2-devel] [edk2-platforms PATCH v4 1/7] SimicsX58SktPkg: Add CPU Pkg for SimicsX58
The following files still have "SkyLake" in the comment at the top of the file. This needs to be changed. * SktUefiBootInclude.fdf * SktPostMemoryInclude.fdf Given this is the first commit for Simics QSP, I think it would be helpful to expand the QSP acronym (Quick Start Package) in the commit message. With those changes: Reviewed-by: Michael Kubacki > -Original Message- > From: devel@edk2.groups.io On Behalf Of David Wei > Sent: Friday, August 30, 2019 2:19 PM > To: devel@edk2.groups.io > Cc: Wu, Hao A ; Gao, Liming ; > Sinha, Ankit ; Agyeman, Prince > ; Kubacki, Michael A > ; Desimone, Nathaniel L > ; Kinney, Michael D > > Subject: [edk2-devel] [edk2-platforms PATCH v4 1/7] SimicsX58SktPkg: Add CPU > Pkg for SimicsX58 > > Add CPU Pkg for SimicsX58. It is added for simics QSP project support > > Cc: Hao Wu > Cc: Liming Gao > Cc: Ankit Sinha > Cc: Agyeman Prince > Cc: Kubacki Michael A > Cc: Nate DeSimone > Cc: Michael D Kinney > > Signed-off-by: David Wei > --- > .../SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c | 148 + > .../SimicsX58SktPkg/Smm/Access/SmmAccessPei.c | 346 > + > .../SimicsX58SktPkg/Smm/Access/SmramInternal.c | 200 > .../Include/Register/X58SmramSaveStateMap.h| 178 +++ > Silicon/Intel/SimicsX58SktPkg/SktPkg.dec | 37 +++ > Silicon/Intel/SimicsX58SktPkg/SktPkgPei.dsc| 14 + > .../Intel/SimicsX58SktPkg/SktPostMemoryInclude.fdf | 9 + > .../Intel/SimicsX58SktPkg/SktPreMemoryInclude.fdf | 10 + > Silicon/Intel/SimicsX58SktPkg/SktSecInclude.fdf| 16 + > .../Intel/SimicsX58SktPkg/SktUefiBootInclude.fdf | 14 + > .../SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.inf | 54 > .../SimicsX58SktPkg/Smm/Access/SmmAccessPei.inf| 65 > .../SimicsX58SktPkg/Smm/Access/SmramInternal.h | 82 + > 13 files changed, 1173 insertions(+) > create mode 100644 > Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c > create mode 100644 > Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccessPei.c > create mode 100644 > Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmramInternal.c > create mode 100644 > Silicon/Intel/SimicsX58SktPkg/Include/Register/X58SmramSaveStateMap.h > create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPkg.dec > create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPkgPei.dsc > create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPostMemoryInclude.fdf > create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPreMemoryInclude.fdf > create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktSecInclude.fdf > create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktUefiBootInclude.fdf > create mode 100644 > Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.inf > create mode 100644 > Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccessPei.inf > create mode 100644 > Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmramInternal.h > > diff --git a/Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c > b/Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c > new file mode 100644 > index 00..5d3b2c14aa > --- /dev/null > +++ b/Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c > @@ -0,0 +1,148 @@ > +/** @file > + A DXE_DRIVER providing SMRAM access by producing > EFI_SMM_ACCESS2_PROTOCOL. > + > + X58 TSEG is expected to have been verified and set up by the > + SmmAccessPei driver. > + > + Copyright (C) 2013, 2015, Red Hat, Inc. Copyright (c) 2009 - > + 2019, Intel Corporation. All rights reserved. > + > + SPDX-License-Identifier: BSD-2-Clause-Patent **/ > + > +#include > +#include > +#include > +#include > + > +#include "SmramInternal.h" > + > +/** > + Opens the SMRAM area to be accessible by a boot-service driver. > + > + This function "opens" SMRAM so that it is visible while not inside of SMM. > + The function should return EFI_UNSUPPORTED if the hardware does not > + support hiding of SMRAM. The function should return EFI_DEVICE_ERROR > + if the SMRAM configuration is locked. > + > + @param[in] This The EFI_SMM_ACCESS2_PROTOCOL instance. > + > + @retval EFI_SUCCESS The operation was successful. > + @retval EFI_UNSUPPORTED The system does not support opening and > closing of > +SMRAM. > + @retval EFI_DEVICE_ERROR SMRAM cannot be opened, perhaps because it is > +locked. > +**/ > +STATIC > +EFI_STATUS > +EFIAPI > +SmmAccess2DxeOpen ( > + IN EFI_SMM_ACCESS2_PROTOCOL *This > + ) > +{ > + return SmramAccessOpen (&This->LockState, &This->OpenState); } > + > +/** > +
Re: [edk2-devel] [edk2-platforms PATCH v4 1/7] SimicsX58SktPkg: Add CPU Pkg for SimicsX58
Reviewed-by: Nate DeSimone -Original Message- From: Wei, David Y Sent: Friday, August 30, 2019 2:19 PM To: devel@edk2.groups.io Cc: Wu, Hao A ; Gao, Liming ; Sinha, Ankit ; Agyeman, Prince ; Kubacki, Michael A ; Desimone, Nathaniel L ; Kinney, Michael D Subject: [edk2-platforms PATCH v4 1/7] SimicsX58SktPkg: Add CPU Pkg for SimicsX58 Add CPU Pkg for SimicsX58. It is added for simics QSP project support Cc: Hao Wu Cc: Liming Gao Cc: Ankit Sinha Cc: Agyeman Prince Cc: Kubacki Michael A Cc: Nate DeSimone Cc: Michael D Kinney Signed-off-by: David Wei --- .../SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c | 148 + .../SimicsX58SktPkg/Smm/Access/SmmAccessPei.c | 346 + .../SimicsX58SktPkg/Smm/Access/SmramInternal.c | 200 .../Include/Register/X58SmramSaveStateMap.h| 178 +++ Silicon/Intel/SimicsX58SktPkg/SktPkg.dec | 37 +++ Silicon/Intel/SimicsX58SktPkg/SktPkgPei.dsc| 14 + .../Intel/SimicsX58SktPkg/SktPostMemoryInclude.fdf | 9 + .../Intel/SimicsX58SktPkg/SktPreMemoryInclude.fdf | 10 + Silicon/Intel/SimicsX58SktPkg/SktSecInclude.fdf| 16 + .../Intel/SimicsX58SktPkg/SktUefiBootInclude.fdf | 14 + .../SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.inf | 54 .../SimicsX58SktPkg/Smm/Access/SmmAccessPei.inf| 65 .../SimicsX58SktPkg/Smm/Access/SmramInternal.h | 82 + 13 files changed, 1173 insertions(+) create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccessPei.c create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmramInternal.c create mode 100644 Silicon/Intel/SimicsX58SktPkg/Include/Register/X58SmramSaveStateMap.h create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPkg.dec create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPkgPei.dsc create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPostMemoryInclude.fdf create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPreMemoryInclude.fdf create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktSecInclude.fdf create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktUefiBootInclude.fdf create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.inf create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccessPei.inf create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmramInternal.h diff --git a/Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c b/Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c new file mode 100644 index 00..5d3b2c14aa --- /dev/null +++ b/Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c @@ -0,0 +1,148 @@ +/** @file + A DXE_DRIVER providing SMRAM access by producing EFI_SMM_ACCESS2_PROTOCOL. + + X58 TSEG is expected to have been verified and set up by the + SmmAccessPei driver. + + Copyright (C) 2013, 2015, Red Hat, Inc. Copyright (c) 2009 - + 2019, Intel Corporation. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent **/ + +#include +#include +#include +#include + +#include "SmramInternal.h" + +/** + Opens the SMRAM area to be accessible by a boot-service driver. + + This function "opens" SMRAM so that it is visible while not inside of SMM. + The function should return EFI_UNSUPPORTED if the hardware does not + support hiding of SMRAM. The function should return EFI_DEVICE_ERROR + if the SMRAM configuration is locked. + + @param[in] This The EFI_SMM_ACCESS2_PROTOCOL instance. + + @retval EFI_SUCCESS The operation was successful. + @retval EFI_UNSUPPORTED The system does not support opening and closing of +SMRAM. + @retval EFI_DEVICE_ERROR SMRAM cannot be opened, perhaps because it is +locked. +**/ +STATIC +EFI_STATUS +EFIAPI +SmmAccess2DxeOpen ( + IN EFI_SMM_ACCESS2_PROTOCOL *This + ) +{ + return SmramAccessOpen (&This->LockState, &This->OpenState); } + +/** + Inhibits access to the SMRAM. + + This function "closes" SMRAM so that it is not visible while outside of SMM. + The function should return EFI_UNSUPPORTED if the hardware does not + support hiding of SMRAM. + + @param[in] This The EFI_SMM_ACCESS2_PROTOCOL instance. + + @retval EFI_SUCCESS The operation was successful. + @retval EFI_UNSUPPORTED The system does not support opening and closing of +SMRAM. + @retval EFI_DEVICE_ERROR SMRAM cannot be closed. +**/ +STATIC +EFI_STATUS +EFIAPI +SmmAccess2DxeClose ( + IN EFI_SMM_ACCESS2_PROTOCOL *This + ) +{ + return SmramAccessClose (&This->LockState, &This->OpenState); } + +/** + Inhibits access to the SMRAM. + + This function prohibits access to the SMRAM region. This function is + usually implemented such that it is a write-once operation. + + @param[in] This The EFI_SMM_ACCESS2_PROTOCOL instance. + + @retval EFI_SUCCESS The device was successfully loc
[edk2-devel] [edk2-platforms PATCH v4 1/7] SimicsX58SktPkg: Add CPU Pkg for SimicsX58
Add CPU Pkg for SimicsX58. It is added for simics QSP project support Cc: Hao Wu Cc: Liming Gao Cc: Ankit Sinha Cc: Agyeman Prince Cc: Kubacki Michael A Cc: Nate DeSimone Cc: Michael D Kinney Signed-off-by: David Wei --- .../SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c | 148 + .../SimicsX58SktPkg/Smm/Access/SmmAccessPei.c | 346 + .../SimicsX58SktPkg/Smm/Access/SmramInternal.c | 200 .../Include/Register/X58SmramSaveStateMap.h| 178 +++ Silicon/Intel/SimicsX58SktPkg/SktPkg.dec | 37 +++ Silicon/Intel/SimicsX58SktPkg/SktPkgPei.dsc| 14 + .../Intel/SimicsX58SktPkg/SktPostMemoryInclude.fdf | 9 + .../Intel/SimicsX58SktPkg/SktPreMemoryInclude.fdf | 10 + Silicon/Intel/SimicsX58SktPkg/SktSecInclude.fdf| 16 + .../Intel/SimicsX58SktPkg/SktUefiBootInclude.fdf | 14 + .../SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.inf | 54 .../SimicsX58SktPkg/Smm/Access/SmmAccessPei.inf| 65 .../SimicsX58SktPkg/Smm/Access/SmramInternal.h | 82 + 13 files changed, 1173 insertions(+) create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccessPei.c create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmramInternal.c create mode 100644 Silicon/Intel/SimicsX58SktPkg/Include/Register/X58SmramSaveStateMap.h create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPkg.dec create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPkgPei.dsc create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPostMemoryInclude.fdf create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktPreMemoryInclude.fdf create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktSecInclude.fdf create mode 100644 Silicon/Intel/SimicsX58SktPkg/SktUefiBootInclude.fdf create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.inf create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccessPei.inf create mode 100644 Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmramInternal.h diff --git a/Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c b/Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c new file mode 100644 index 00..5d3b2c14aa --- /dev/null +++ b/Silicon/Intel/SimicsX58SktPkg/Smm/Access/SmmAccess2Dxe.c @@ -0,0 +1,148 @@ +/** @file + A DXE_DRIVER providing SMRAM access by producing EFI_SMM_ACCESS2_PROTOCOL. + + X58 TSEG is expected to have been verified and set up by the SmmAccessPei + driver. + + Copyright (C) 2013, 2015, Red Hat, Inc. + Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#include +#include +#include +#include + +#include "SmramInternal.h" + +/** + Opens the SMRAM area to be accessible by a boot-service driver. + + This function "opens" SMRAM so that it is visible while not inside of SMM. + The function should return EFI_UNSUPPORTED if the hardware does not support + hiding of SMRAM. The function should return EFI_DEVICE_ERROR if the SMRAM + configuration is locked. + + @param[in] This The EFI_SMM_ACCESS2_PROTOCOL instance. + + @retval EFI_SUCCESS The operation was successful. + @retval EFI_UNSUPPORTED The system does not support opening and closing of +SMRAM. + @retval EFI_DEVICE_ERROR SMRAM cannot be opened, perhaps because it is +locked. +**/ +STATIC +EFI_STATUS +EFIAPI +SmmAccess2DxeOpen ( + IN EFI_SMM_ACCESS2_PROTOCOL *This + ) +{ + return SmramAccessOpen (&This->LockState, &This->OpenState); +} + +/** + Inhibits access to the SMRAM. + + This function "closes" SMRAM so that it is not visible while outside of SMM. + The function should return EFI_UNSUPPORTED if the hardware does not support + hiding of SMRAM. + + @param[in] This The EFI_SMM_ACCESS2_PROTOCOL instance. + + @retval EFI_SUCCESS The operation was successful. + @retval EFI_UNSUPPORTED The system does not support opening and closing of +SMRAM. + @retval EFI_DEVICE_ERROR SMRAM cannot be closed. +**/ +STATIC +EFI_STATUS +EFIAPI +SmmAccess2DxeClose ( + IN EFI_SMM_ACCESS2_PROTOCOL *This + ) +{ + return SmramAccessClose (&This->LockState, &This->OpenState); +} + +/** + Inhibits access to the SMRAM. + + This function prohibits access to the SMRAM region. This function is usually + implemented such that it is a write-once operation. + + @param[in] This The EFI_SMM_ACCESS2_PROTOCOL instance. + + @retval EFI_SUCCESS The device was successfully locked. + @retval EFI_UNSUPPORTED The system does not support locking of SMRAM. +**/ +STATIC +EFI_STATUS +EFIAPI +SmmAccess2DxeLock ( + IN EFI_SMM_ACCESS2_PROTOCOL *This + ) +{ + return SmramAccessLock (&This->LockState, &This->OpenState); +} + +/** + Queries the memory controller for the possible regions that will support + SMRAM. + + @param[in]