From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by mx.groups.io with SMTP id smtpd.web10.7391.1604899466740771783 for ; Sun, 08 Nov 2020 21:24:28 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=permanent DNS error (domain: byosoft.com.cn, ip: 58.240.74.242, mailfrom: gaoliming@byosoft.com.cn) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Mon, 09 Nov 2020 13:24:10 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , Cc: "'Brijesh Singh'" , "'Michael D Kinney'" , "'Zhiguang Liu'" References: <5e9245c7600b9b2d55dd7586b8df28b91b75b72b.1604685192.git.thomas.lendacky@amd.com> In-Reply-To: <5e9245c7600b9b2d55dd7586b8df28b91b75b72b.1604685192.git.thomas.lendacky@amd.com> Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIHY0IDAxLzExXSBNZGVQa2c6IENsZWFuIHVwIEdIQ0IgZmllbGQgb2Zmc2V0cyBhbmQgc2F2ZSBhcmVh?= Date: Mon, 9 Nov 2020 13:24:10 +0800 Message-ID: <005401d6b658$8d972b00$a8c58100$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQLLxejB1eFpLEq/uXd2Q7WyYPG3iQHrkNXgp8XFA7A= Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Tom: Seemly, this is a ECC tool issue. I submit BZ https://bugzilla.tianocore.org/show_bug.cgi?id=3D3060 to record it.=20 For this patch in MdePkg, it is also OK. Reviewed-by: Liming Gao Thanks Liming > -----=D3=CA=BC=FE=D4=AD=BC=FE----- > =B7=A2=BC=FE=C8=CB: bounce+27952+67100+4905953+8761045@groups.io > =B4=FA=B1=ED Lendacky, > Thomas > =B7=A2=CB=CD=CA=B1=BC=E4: 2020=C4=EA11=D4=C27=C8=D5 1:53 > =CA=D5=BC=FE=C8=CB: devel@edk2.groups.io > =B3=AD=CB=CD: Brijesh Singh ; Michael D Kinney > ; Liming Gao ; > Zhiguang Liu > =D6=F7=CC=E2: [edk2-devel] [PATCH v4 01/11] MdePkg: Clean up GHCB field = offsets > and save area >=20 > From: Tom Lendacky >=20 > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3008 >=20 > Use OFFSET_OF () and sizeof () to calculate the GHCB register field > offsets instead of hardcoding the values in the GHCB_REGISTER enum. > Define only fields that are used per the GHCB specification, which will > result in removing some fields and adding others. >=20 > Also, remove the DR7 field from the GHCB_SAVE_AREA structure since it is > not used/defined in the GHCB specification and then rename the reserved > fields as appropriate. >=20 > Cc: Michael D Kinney > Cc: Liming Gao > Cc: Zhiguang Liu > Signed-off-by: Tom Lendacky > --- > MdePkg/Include/Register/Amd/Ghcb.h | 43 ++++++++------------ > 1 file changed, 17 insertions(+), 26 deletions(-) >=20 > diff --git a/MdePkg/Include/Register/Amd/Ghcb.h > b/MdePkg/Include/Register/Amd/Ghcb.h > index 54a80da0f6d7..ccdb662af7a7 100644 > --- a/MdePkg/Include/Register/Amd/Ghcb.h > +++ b/MdePkg/Include/Register/Amd/Ghcb.h > @@ -82,35 +82,10 @@ > #define IOIO_SEG_DS (BIT11 | BIT10) >=20 >=20 > -typedef enum { > - GhcbCpl =3D 25, > - GhcbRflags =3D 46, > - GhcbRip, > - GhcbRsp =3D 59, > - GhcbRax =3D 63, > - GhcbRcx =3D 97, > - GhcbRdx, > - GhcbRbx, > - GhcbRbp =3D 101, > - GhcbRsi, > - GhcbRdi, > - GhcbR8, > - GhcbR9, > - GhcbR10, > - GhcbR11, > - GhcbR12, > - GhcbR13, > - GhcbR14, > - GhcbR15, > - GhcbXCr0 =3D 125, > -} GHCB_REGISTER; > - > typedef PACKED struct { > UINT8 Reserved1[203]; > UINT8 Cpl; > - UINT8 Reserved2[148]; > - UINT64 Dr7; > - UINT8 Reserved3[144]; > + UINT8 Reserved8[300]; > UINT64 Rax; > UINT8 Reserved4[264]; > UINT64 Rcx; > @@ -136,6 +111,22 @@ typedef PACKED struct { > UINT32 GhcbUsage; > } GHCB; >=20 > +#define GHCB_SAVE_AREA_QWORD_OFFSET(RegisterField) \ > + (OFFSET_OF (GHCB, SaveArea.RegisterField) / sizeof (UINT64)) > + > +typedef enum { > + GhcbCpl =3D GHCB_SAVE_AREA_QWORD_OFFSET (Cpl), > + GhcbRax =3D GHCB_SAVE_AREA_QWORD_OFFSET (Rax), > + GhcbRbx =3D GHCB_SAVE_AREA_QWORD_OFFSET (Rbx), > + GhcbRcx =3D GHCB_SAVE_AREA_QWORD_OFFSET (Rcx), > + GhcbRdx =3D GHCB_SAVE_AREA_QWORD_OFFSET (Rdx), > + GhcbXCr0 =3D GHCB_SAVE_AREA_QWORD_OFFSET (XCr0), > + GhcbSwExitCode =3D GHCB_SAVE_AREA_QWORD_OFFSET (SwExitCode), > + GhcbSwExitInfo1 =3D GHCB_SAVE_AREA_QWORD_OFFSET (SwExitInfo1), > + GhcbSwExitInfo2 =3D GHCB_SAVE_AREA_QWORD_OFFSET (SwExitInfo2), > + GhcbSwScratch =3D GHCB_SAVE_AREA_QWORD_OFFSET (SwScratch), > +} GHCB_REGISTER; > + > typedef union { > struct { > UINT32 Lower32Bits; > -- > 2.28.0 >=20 >=20 >=20 >=20 >=20