From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (NAM10-BN7-obe.outbound.protection.outlook.com [40.107.92.84]) by mx.groups.io with SMTP id smtpd.web10.15700.1664775416064548753 for ; Sun, 02 Oct 2022 22:36:56 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@amd.com header.s=selector1 header.b=y9yvgzQe; spf=permerror, err=parse error for token &{10 18 %{i}._ip.%{h}._ehlo.%{d}._spf.vali.email}: invalid domain name (domain: amd.com, ip: 40.107.92.84, mailfrom: abner.chang@amd.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c/J0uXxQOBQPVMN8OMUUtVCDrkPzULr+Lhbn2DXevYj+kn8wY3BHs9INBK/c9DuteaXPHE4Kn4neS7WmcPmvBWXdm0oEr4A3PjV3uhd41xB6RMXRCof5IgCvbm18waMLXhV5eXoMa5bdUe/748VVsbc7770oALFWbebQ9q7nrvYcsaEPqJSRBbMUAM9+kCA9MYk5IJqrfe/PpR1tfMmaKba91jhTVjvtDweZcA3YxG02uKUX4c//Hx2/u+9GutyPECdca9M1JAZNdTO6A/3oi0TvgxBYJq8RWRwtmcwN/ay096sE0HWobtvOR+4eJUFjalQY0kbmamRXtSpBf57vAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7z3tD3FK7tYsSU6mCoqAAWEEfftNMr/NCuo8K+Vz5As=; b=Ohg133IPhsvXLt6fJV81TWLoAUsRwYgRBD+wjKtZfEpPIJXZFGDNi+fbDCPm48cjE5G8iWBQUemQwUCiDiIwhuQqvrhVKOuxVNK13ZpyObvqWa3+ON8lUDvlAPgHoqK9SVfpi23J7qywV+Bcvjk5wu2PliPE6yD6/UMSUcNZhGHClkagu+SVra3j3C20xSLVoBI3AbF2rtA+5Ta6a0yv4Npo+AMSBIxUlw093o3woGiBSwlUtU2wUvydyqAw7Syj/cXEE1D/dOGNC+YloHopqHj+koZA1wb5rHkFOE6QpXQDnaMGKHOtZvM4HyzVDhyOfN77y/4aj7wS+HivA8SMsw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7z3tD3FK7tYsSU6mCoqAAWEEfftNMr/NCuo8K+Vz5As=; b=y9yvgzQeiQlZ9rbEN4lAGIwkN1QoebcIEWULap1uEepKjBNFXBfvImnacIH0BI0zz1bYNbqa53pfNmy2xgTrcPxspbIjA8NQnghDqYBAdX2nqt8+5Bw0frC/5u6Vk3OFnC6XSV3+F2QzBmeoLOcIgvdFvlGAFDGvFCXqU9OItW0= Received: from MN2PR12MB3966.namprd12.prod.outlook.com (2603:10b6:208:165::18) by DM6PR12MB4058.namprd12.prod.outlook.com (2603:10b6:5:21d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.23; Mon, 3 Oct 2022 05:36:52 +0000 Received: from MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::dd29:6efb:1027:cfb2]) by MN2PR12MB3966.namprd12.prod.outlook.com ([fe80::dd29:6efb:1027:cfb2%5]) with mapi id 15.20.5676.028; Mon, 3 Oct 2022 05:36:52 +0000 From: "Chang, Abner" To: "Kinney, Michael D" , "devel@edk2.groups.io" , "quic_llindhol@quicinc.com" , "Ni, Ray" , "Attar, AbdulLateef (Abdul Lateef)" , Sunil V L CC: lichao , "Kirkendall, Garrett" , "Grimes, Paul" , "He, Jiangang" , Andrew Fish Subject: Re: [edk2-devel] The principles of EDK2 module reconstruction for archs Thread-Topic: [edk2-devel] The principles of EDK2 module reconstruction for archs Thread-Index: AdjPX4ZZG0rDXS4WTdOIWvoiYOLYcgC9rttQAC2dmIAADxJbkAAiVmtwAABqVrAAMdRUkAARY7IwAAF/rYAABYT70AB0Z6+AAAYqDgAAADksgA== Date: Mon, 3 Oct 2022 05:36:51 +0000 Message-ID: References: <0c1ee7b8-9ecf-3f46-ac36-9d1464831263@quicinc.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Enabled=true; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SetDate=2022-10-03T05:36:49Z; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Method=Standard; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_Name=General; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ActionId=9b7ebe71-f240-413a-a0ef-1d6489e8ab75; MSIP_Label_4342314e-0df4-4b58-84bf-38bed6170a0f_ContentBits=1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB3966:EE_|DM6PR12MB4058:EE_ x-ms-office365-filtering-correlation-id: 076c717e-50a9-432f-4b46-08daa5014662 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zCIB2s6c4Dnqv79h0lRtsuOLyOzHBIet3tch0KU1Uz15/VbqmeMZvHLnxt2cKZdv2XPctb8KbicUpPH2qXxnRmfdTfv03p0jtZRaWOzXRlHUnrKDWIHOyngy40li4wdYOIVBvfvt34fJyoZiiZ34PsxwTZCyID6O1Gg1kWZwa6O5qgGQw+x4oDwBCi7ktwcd2B5IahGovHJuN2s1M5GHS+NNGWG4u59iwv3t9HTHmHlc7G+r/zBr+phZid7rnbjPlDY6fKhiUZBwvwsOt1g/bt2eBmOPgQOzk5lBFM5HelwMPiQJs64mPeMGypvAcE3RDVpkDIAF3Gzd8TXazs/Fc+55Et2JbHVPKXEsWVh3SLTmPLr0u+ON4W8j0/f3OCajkUSXfbi6MKCc4bgGF/ie/Klq7yJp/sduXbuyCF6jj8DkAm0WA0Gzw2RgHk/6jqFIwFTZdmRpHIexM/ikymua1vajjYA9Y4dXB6hOIR04iZd7G853YE7Hl63y+8AxKBdwruJlStANjTRB/2xW3R9S6LZtl6mrzHcI5zX7D1PL587bQVERmOrVwtRoKhOu8mfDJc2R25pebGy0Jg2gISOMbZ6D2bpaQIdJW/L1/qPhcXwiJ3QWH0upKdegzdLoe/pwE4fdNiQar3oQv/Cxbnio8QdgAG+UT8xesettsiu2T0qlHFC0QHj1VL3YJnlHFVYrvx4jM24JvlCKXpYo4jzRPLp1vJPmLTAkfhrih7cw0bI3GwrIo2LI/Z7HWL22urgvok+j+Z2ALO7LaHA4n29ETVq72xgEKnoAxxmM6EwlvGa5lcEemxCTIcgi8EVK0VWh89gCfMYefCKioG9wjGrbxg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB3966.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(376002)(396003)(39860400002)(346002)(136003)(451199015)(66899015)(19627235002)(8936002)(316002)(33656002)(4326008)(8676002)(64756008)(66446008)(66476007)(66556008)(66946007)(76116006)(966005)(478600001)(71200400001)(86362001)(45080400002)(54906003)(110136005)(41300700001)(30864003)(52536014)(5660300002)(2906002)(38100700002)(6506007)(7696005)(53546011)(83380400001)(186003)(122000001)(38070700005)(55016003)(26005)(9686003)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ZoQyNeGLKnVpJ1gsvrLkqiFeCpJnkib/2sLEzf+viRmbg7ZiECmW6kEzM2qK?= =?us-ascii?Q?RsWgFfm7n9vvDYoaIfarmwWguQ8FU/kQ+k9WccfKs5EKo7ZpSoWmv0Q0eYkd?= =?us-ascii?Q?oAXDlQLvvDQ3Eui6OKh6o7U4Ge5JeASWqWm/Mo/hKrJU/6jDWcuRVH9KNxLE?= =?us-ascii?Q?d51RFl0fIHGHV36XTPKiE1fRfb6qfrN5LtVzIPVpTXKFEd9WT6Y2CkCseohb?= =?us-ascii?Q?97Eqi1EqMQ9SDoDSVTm++g6O1Hz6Am3edvidYUxUHZ4byaiWbxFsMoy50ndn?= =?us-ascii?Q?ORVYCaKXqfyPfOtU6FU+ufBa0qlK6ai56T/rBa/CNYi9/0aKJQMpOTSPvD6I?= =?us-ascii?Q?VXjIAg74y1TNEKJBdjyIr5rZnq4F++jsEh2+nLVEJZU+QlBP6NX/q2e7ztwS?= =?us-ascii?Q?tFB0RIXXl1yBfIqnkTUvdwRorlD+IZkL2E6mAtvhp5pAbOb+A/OW738sVGlS?= =?us-ascii?Q?GvmdgggLfWwwPmE3vgg3KT8lJrSwR5jKsdfz4IzpZf3bd0EmJdnmiQWYfPbw?= =?us-ascii?Q?U67RnU5SE51IvFAhcv43kLctDizhSKnTxkVzNW4EvDnSCP4yqBugAbe7PcYF?= =?us-ascii?Q?VV0kEPqk7WXxZRPDmzAM7+TTarwosu9xTHqDx4ENLOCMPAcotBR/h4VO18rP?= =?us-ascii?Q?IA2fmuJ/rwyvINjrDw3y39VQu/aiCOIZgQ/zQMeh6w2WN8uV4W+K4vahU8u/?= =?us-ascii?Q?hOvNF7SS3m50IOwqS7VkpgEBcgBmUs9OwpFWwUGQDoHPtlvyzn5E9kV63dQX?= =?us-ascii?Q?0vggitG69YBwgP2r6wkLiXOP6iTGY0aNJZdsxZkX2UHscQ5OIT4uU58BMnpz?= =?us-ascii?Q?cVoPi0VBkX15jBiqXI4Bq+BwVPdiaZSqOGcOFVbbvor1aBkYJwippCEwHAu1?= =?us-ascii?Q?r3fBWXuYEwe38h8nlN7B7oaK/lqnYYTovmCRL/vaWeZQP/mSyauqXZ78lj1X?= =?us-ascii?Q?vD5OsBtdWGWNYa3kOPspSzfKJq6sKZ9QakBrSIwMuKlt0GRPyx7iN6huTTGy?= =?us-ascii?Q?G0DraCrvvgKpHPaBrnF5rQUbt1mGiwgAkK1cgHR3f2W9tD/w7RdZhsfaTfaY?= =?us-ascii?Q?MEy4D26WXZvRh6u9uMceD0Yut3mxTlZHSmDWhviOKoapigFntUCrf/3Yqpr8?= =?us-ascii?Q?PeZnCKJXmOzHI+voQdaj+tblzVE2M4f3g3hBmkohR+aHTU4CaIPxB/psIYif?= =?us-ascii?Q?1I70n9PbSbQP79OTnzXNqGb5IpWYAudYHU3CKWR+UCaL+TcS/+1IfEjoxzQe?= =?us-ascii?Q?2GL+SmiR+VU7aiUo5hbjDazrezPCRS7lwt9DY6LAYzLvXCJWAkP6eUuGgZE/?= =?us-ascii?Q?p9/duNZPqb7fcb70KXHJEPluz0TtC4+ihgf00BWLCY8dZqrh1vAtLVG6b8b7?= =?us-ascii?Q?Hx4hRXDsAu1KjvVclgqq9vhj73FxrkRhSNKkt+oU2k11jjA1G854lg+oIjCj?= =?us-ascii?Q?6s41JnfWXOHsGfrMUpue6DBrmRcAUeudy2xn2BbnV2+XXrV0qj1WDTk3cmoj?= =?us-ascii?Q?wRnFhhT8eCwZomS3RvF1/CwA0QqdeAFa+8EdqJENGWS2rTiVxooIWvCGkJiV?= =?us-ascii?Q?nlMzudXS2H72nt8V9QyyB2L1b6S5CRlZ+bhQj8y3?= MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3966.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 076c717e-50a9-432f-4b46-08daa5014662 X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Oct 2022 05:36:52.0118 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: L23wGmLHSrXqGOau1d/ggo23Ns9caCrAaZON9/4OWmuJVFzj/Gyf9rVUc7Q2G9LjzuuBMeF6R6f3rI7KRsBOUg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4058 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only - General] Mike,=20 Agree. This can be mentioned on the Wiki page. Also, this would require the= discussion between maintainer and contributor. I would say maintainer has = the responsibility to make sure an arch folder is only created when necessa= ry. Do you agree with the arch concatenate solution for arch folder? That means= IA32_X64 instead of X86 (I am fine with this)? However, there is one scena= rio. Assume there were two arch folders IA32_X64 and RISCV64. Then ARM shar= es the code with IA32_X64, we may rename IA32_X64 to IA32_X64_ARM. Although the directory naming is not real a problem to the build, a separat= e ARM folder seems easier? Or we can just allow this kind of folder naming = structure, however we let maintainer to make the decision? Abner > -----Original Message----- > From: Kinney, Michael D > Sent: Monday, October 3, 2022 1:18 PM > To: Chang, Abner ; devel@edk2.groups.io; > quic_llindhol@quicinc.com; Ni, Ray ; Attar, AbdulLateef > (Abdul Lateef) ; Sunil V L > ; Kinney, Michael D > > Cc: lichao ; Kirkendall, Garrett > ; Grimes, Paul ; He, > Jiangang ; Andrew Fish > Subject: RE: [edk2-devel] The principles of EDK2 module reconstruction fo= r > archs >=20 > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. >=20 >=20 > Abner, >=20 > I think another guideline is to minimize the number of subdirectories. >=20 > Only create them if it helps with the organization and long term maintena= nce > of the component. >=20 > Mike >=20 >=20 > > -----Original Message----- > > From: Chang, Abner > > Sent: Sunday, October 2, 2022 8:13 PM > > To: Kinney, Michael D ; > > devel@edk2.groups.io; quic_llindhol@quicinc.com; Ni, Ray > > ; Attar, AbdulLateef (Abdul Lateef) > > ; Sunil V L > > Cc: lichao ; Kirkendall, Garrett > > ; Grimes, Paul ; > He, > > Jiangang ; Andrew Fish > > Subject: RE: [edk2-devel] The principles of EDK2 module reconstruction > > for archs > > > > [AMD Official Use Only - General] > > > > Hi Mike and Leif, > > First of all, we don't use arch folder if the module is mainly for a > > specific arch in obviously. So we will have both common and arch-speci= fic > files constructed under module/library root. > > > https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fedk > 2 > > .groups.io%2Fg%2Fdevel%2Fmessage%2F94567&data=3D05%7C01%7CA > bner.Chan > > > g%40amd.com%7Cd49cbbe6d3d942bd69a308daa4fea41b%7C3dd8961fe4884 > e608e11a > > > 82d994e183d%7C0%7C0%7C638003710850252776%7CUnknown%7CTWFpbGZ > sb3d8eyJWI > > > joiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3 > 000%7 > > > C%7C%7C&sdata=3DeiLOC0G9WZWKqm2ALcAiKr7SPBP5AgDdAxogHlv5pI > M%3D&r > > eserved=3D0 > > SmmCpuFeatureLib\Ia32 > > SmmCpuFeatureLib\X64 > > SmmCpuFeatureLib\SmmCpuFeatureLib.c > > SmmCpuFeatureLib\SmmCpuFeatureLibCommon.c > > SmmCpuFeatureLib\IntelSmmCPuFeaturesLib > > SmmCpuFeatureLib\AmdlSmmCPuFeaturesLib > > > > > > > > Could we concatenate architectures? > > > > I.e. AARCH64_ARM, IA32_X64, AARCH64_RISCV64... ? > > Looks like below? > > > > CpuDxe\IA32_X64\IA32\abc.nasm > > CpuDxe\IA32_X64\X64\abc.nasm > > CpuDxe\IA32_X64\CpuDxe.c > > CpuDxe\IA32_X64\AmdCpuDxe.c > > CpuDxe\IA32_X64\IntelCpuDxe.c > > CpuDxe\RiscV64\CpuDxe.c > > CpuDxe\ARM\CpuDxe.c > > CpuDxe\ > > CpuDxeCommon.c // If required. > > CpuDxe.inf // Use INF section arch modifi= er for X86, RISC-V > and ARM. > > CpuDxeAmd.inf // Separate INF for AMD. > > > > Seems ok, but is AARCH64_RISCV64 a real case? Or it means we can > > create a folder "AARCH64_RISCV64" when there are some common files > shared by AARCH64 and RISCV64? > > > > For the 32/64 bit support, it can still stay under module root and > > don't need to assign a folder for them unless the arch has the differen= t > implementation. > > Regards, > > Abner > > > > > > > > > -----Original Message----- > > > From: Kinney, Michael D > > > Sent: Saturday, October 1, 2022 2:52 AM > > > To: devel@edk2.groups.io; quic_llindhol@quicinc.com; Chang, Abner > > > ; Ni, Ray ; Attar, > > > AbdulLateef (Abdul Lateef) ; Sunil V L > > > ; Kinney, Michael D > > > > > > Cc: lichao ; Kirkendall, Garrett > > > ; Grimes, Paul ; > > > He, Jiangang ; Andrew Fish > > > Subject: RE: [edk2-devel] The principles of EDK2 module > > > reconstruction for archs > > > > > > Caution: This message originated from an External Source. Use proper > > > caution when opening attachments, clicking links, or responding. > > > > > > > > > Hi Leif, > > > > > > Concatenation is a good idea. Makes it more obvious and can be > > > easily adopted for new CPU archs. > > > > > > There is an additional case where an implementation does not have > > > differences based on CPU Arch or Vendor, but it does have > > > differences based on the bit- width of the CPU. Take BaseSafeIntLib = as > an example. > > > It has source files for 32-bit CPUs, 64-bit CPUs, and CPU arch > > > specific file for Ebc because Ebc adapts to 32-bit or 64-bit > > > depending on the CPU type the EBC Interpreter is running. > > > > > > MdePkg/Library/BaseSafeIntLib/ > > > BaseSafeIntLib.inf > > > SafeIntLib.c > > > SafeIntLib32.c > > > SafeIntLib64.c > > > SafeIntLibEbc.c > > > > > > Should we add "32" and "64" as supported suffices in file names? > > > > > > If we wanted to put type content into a subdirectory, what would be > > > the suggested directory name for "32" and "64". Or do we want to > > > require this type of difference to always be files in top level direc= tory of > the modules/library? > > > > > > Best regards, > > > > > > Mike > > > > > > > > > > -----Original Message----- > > > > From: devel@edk2.groups.io On Behalf Of > > > > Leif Lindholm > > > > Sent: Friday, September 30, 2022 9:09 AM > > > > To: devel@edk2.groups.io; Kinney, Michael D > > > > ; Chang, Abner > ; > > > > Ni, Ray ; Attar, AbdulLateef (Abdul Lateef) > > > > ; Sunil V L > > > > Cc: lichao ; Kirkendall, Garrett > > > > ; Grimes, Paul > ; > > > > He, Jiangang ; Andrew Fish > > > > > Subject: Re: [edk2-devel] The principles of EDK2 module > > > > reconstruction for archs > > > > > > > > I agree similar things will certainly happen for ARM/AARCH64, > > > > which will probably be noticeable when I start eradicating ArmPkg > > > > and putting the arch-standard bits into (mostly) MdePkg. > > > > > > > > But I like the ability to see already at the filesystem level > > > > which files belong to the architecture I'm currently working on and > which don't. > > > > > > > > Could we concatenate architectures? > > > > I.e. AARCH64_ARM, IA32_X64, AARCH64_RISCV64... ? > > > > > > > > / > > > > Leif > > > > > > > > On 2022-09-30 08:28, Michael D Kinney wrote: > > > > > Hi Abner, > > > > > > > > > > One comment is on adding a new CPU type dir name of 'X86' for > > > > > content that is common for IA32/X64. > > > > > > > > > > I can imagine a similar case for ARM/AARCH64 and for the RISCV > > > > > (32, 64, 128) cases. > > > > > > > > > > I think I would prefer to drop X86 and if there are files that > > > > > are common to multiple CPU architectures then they are > > > > > considered common and are in top directory of module and the > > > > > file header and INF file can clearly document which CPU archs the= file > applies. > > > > > > > > > > Mike > > > > > > > > > >> -----Original Message----- > > > > >> From: Chang, Abner > > > > >> Sent: Friday, September 30, 2022 12:11 AM > > > > >> To: Ni, Ray ; Attar, AbdulLateef (Abdul > > > > >> Lateef) ; Sunil V L > > > > >> ; devel@edk2.groups.io; Kinney, > > > > >> Michael D > > > > >> Cc: lichao ; Kirkendall, Garrett > > > > >> ; Grimes, Paul > > > > >> ; He, Jiangang ; > Leif > > > > >> Lindholm ; Andrew Fish > > > > >> > > > > >> Subject: RE: [edk2-devel] The principles of EDK2 module > > > > >> reconstruction for archs > > > > >> > > > > >> [AMD Official Use Only - General] > > > > >> > > > > >> Thanks Ray, here are my responses. > > > > >> https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2= F > > > > >> %2Fg > > > > >> ithub.com%2Ftianocore-docs%2Fedk2- > CCodingStandardsSpecification > > > > >> %2Fp > > > > >> > > > > ull%2F2&data=3D05%7C01%7CAbner.Chang%40amd.com%7C7c3292c8bd2 > f4 > > > 86f > > > > >> > > > > 920908daa314e8e6%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C6 > > > 3800 > > > > >> > > > > 1607445876768%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLC > JQ > > > IjoiV > > > > >> > > > > 2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata > =3D > > > HAq > > > > >> > ou4JyY1yxDthuQ1dEKcF7Q3o4W77Oo9rOOvkXNWU%3D&reserved=3D0 > > > > >> > > > > >> @Kinney, Michael D we may also need your clarification on the > comments. > > > > >> > > > > >> > > > > >>> -----Original Message----- > > > > >>> From: Ni, Ray > > > > >>> Sent: Thursday, September 29, 2022 3:42 PM > > > > >>> To: Attar, AbdulLateef (Abdul Lateef) > > > > >>> ; Chang, Abner > > > > >>> ; Sunil V L ; > > > > >>> devel@edk2.groups.io > > > > >>> Cc: Kinney, Michael D ; lichao > > > > >>> ; Kirkendall, Garrett > > > > >>> ; Grimes, Paul > > > > >>> ; He, Jiangang ; > > > > >>> Leif Lindholm ; Andrew Fish > > > > >>> > > > > >>> Subject: RE: [edk2-devel] The principles of EDK2 module > > > > >>> reconstruction for archs > > > > >>> > > > > >>> Caution: This message originated from an External Source. Use > > > > >>> proper caution when opening attachments, clicking links, or > responding. > > > > >>> > > > > >>> > > > > >>> Abner, > > > > >>> Comments in > > > > >>> https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%= 2 > > > > >>> F%2F > > > > >>> gith > > > > >>> ub.com%2Ftianocore-docs%2Fedk2- > > > > >>> CCodingStandardsSpecification%2Fpull%2F2%23pullrequestreview- > > > > >>> > > > > 1124763311&data=3D05%7C01%7CAbner.Chang%40amd.com%7Cd825e24 > > > > >>> > > > > 8625541e3f43e08daa1ee2883%7C3dd8961fe4884e608e11a82d994e183d%7C0 > > > > >>> > > > > %7C0%7C638000341502885565%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC > > > > >>> > > > > 4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000% > > > > >>> > > > > 7C%7C%7C&sdata=3DRXxgpbEr6ivbqP1R6%2B3Rxl%2ByJAnaUJuaYYKdfCH > > > > >>> 8jo8%3D&reserved=3D0 > > > > >>> > > > > >>> We can discuss more in tomorrow's meeting. > > > > >>> > > > > >>> > > > > >>>> -----Original Message----- > > > > >>>> From: Attar, AbdulLateef (Abdul Lateef) > > > > >>>> > > > > >>>> Sent: Thursday, September 29, 2022 3:11 PM > > > > >>>> To: Chang, Abner ; Sunil V L > > > > >>>> ; devel@edk2.groups.io; Ni, Ray > > > > >>>> > > > > >>>> Cc: Kinney, Michael D ; lichao > > > > >>>> ; Kirkendall, Garrett > > > > >>>> ; Grimes, Paul > > > > >>>> ; > > > > >>> He, > > > > >>>> Jiangang ; Leif Lindholm > > > > >>>> ; Andrew Fish > > > > >>>> Subject: RE: [edk2-devel] The principles of EDK2 module > > > > >>>> reconstruction for archs > > > > >>>> > > > > >>>> Hi Abner, > > > > >>>> Looks good to me. > > > > >>>> Reviewed-by: Abdul Lateef Attar > > > > >>>> > > > > >>>> Thanks > > > > >>>> AbduL > > > > >>>> > > > > >>>> -----Original Message----- > > > > >>>> From: Chang, Abner > > > > >>>> Sent: 28 September 2022 20:31 > > > > >>>> To: Sunil V L ; > > > > >>>> devel@edk2.groups.io; ray.ni@intel.com > > > > >>>> Cc: Kinney, Michael D ; lichao > > > > >>>> ; Kirkendall, Garrett > > > > >>>> ; Grimes, Paul > > > > >>>> ; > > > > >>> He, > > > > >>>> Jiangang ; Attar, AbdulLateef (Abdul > > > > >>>> Lateef) ; Leif Lindholm > > > > >>>> ; Andrew Fish > > > > >>>> Subject: RE: [edk2-devel] The principles of EDK2 module > > > > >>>> reconstruction for archs > > > > >>>> > > > > >>>> [AMD Official Use Only - General] > > > > >>>> > > > > >>>> I just had created PR to update edkII C coding standard spec > > > > >>>> for the file and directory naming. We can review and confirm > > > > >>>> this update first and then go back to the principles of EDK2 > > > > >>>> module > > > reconstruction for archs. > > > > >>>> Here is the PR: > > > > >>>> > > > > >>> https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%= 2 > > > > >>> F%2F > > > > >>> gith > > > > >>>> ub.com%2Ftianocore-docs%2Fedk2- > > > > >>> &data=3D05%7C01%7CAbner.Chang%40amd.c > > > > >>>> > > > > >>> > > > > om%7Cd825e248625541e3f43e08daa1ee2883%7C3dd8961fe4884e608e11a82 > > > > >>> d994e18 > > > > >>>> > > > > >>> > > > > 3d%7C0%7C0%7C638000341502885565%7CUnknown%7CTWFpbGZsb3d8eyJ > > > > >>> WIjoiMC4wLj > > > > >>>> > > > > >>> > > > > AwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C% > > > > >>> 7C%7C&a > > > > >>>> > > > > >>> > > > > mp;sdata=3DX4z9puj81nIGTqtMxC9igDZyBPOT6OTWSU%2BjoIowo%2BE%3D&a > > > > >>> mp;reserv > > > > >>>> ed=3D0 > > > > >>>> CCodingStandardsSpecification/pull/2 > > > > >>>> > > > > >>>> The naming rule is mainly for the new module or new file IMO. > > > > >>>> Some existing module may not meet the guidelines mentioned in > > > > >>>> this > > > spec. > > > > >>>> Thus we need the principles of EDK2 module reconstruction on > > > > >>>> the existing module to support other processor archs and not > > > > >>>> impacting the > > > > >>> existing platforms (e.g. > > > > >>>> rename the INF file or directory to meet the guidelines). > > > > >>>> > > > > >>>> Sunil, seems RISC-V CpuDxe meet the guideline. Please check it= . > > > > >>>> Just feel that having CpuDxe.c to Riscv64 folder is not > > > > >>>> quite a best solution. I think at least we can abstract the > > > > >>>> protocol structure and protocol installation under CpuDxe\ > > > > >>>> and have the arch implementation under arch folder. We can > > > > >>>> discuss this later after we confirming the > > > > >>> guideline and principles. > > > > >>>> > > > > >>>> Thanks > > > > >>>> Abner > > > > >>>> > > > > >>>>> -----Original Message----- > > > > >>>>> From: Sunil V L > > > > >>>>> Sent: Wednesday, September 28, 2022 3:34 PM > > > > >>>>> To: devel@edk2.groups.io; ray.ni@intel.com > > > > >>>>> Cc: Chang, Abner ; Kinney, Michael D > > > > >>>>> ; lichao ; > > > > >>>>> Kirkendall, Garrett ; Grimes, > > > > >>>>> Paul ; He, Jiangang > > > > >>>>> ; Attar, AbdulLateef (Abdul Lateef) > > > > >>>>> ; Leif Lindholm > > > > >>>>> ; Andrew Fish > > > > >>>>> Subject: Re: [edk2-devel] The principles of EDK2 module > > > > >>>>> reconstruction for archs > > > > >>>>> > > > > >>>>> Caution: This message originated from an External Source. > > > > >>>>> Use proper caution when opening attachments, clicking links, = or > responding. > > > > >>>>> > > > > >>>>> > > > > >>>>> On Wed, Sep 28, 2022 at 03:33:45AM +0000, Ni, Ray wrote: > > > > >>>>> Hi Ray, > > > > >>>>>> > > > > >>>>>> 1. When a new arch's implementation is introduced to > > > > >>>>>> the existing > > > > >>>>> module which was developed for the specific arch: > > > > >>>>>> > > > > >>>>>> 1. The folder reconstruction: > > > > >>>>>> > > > > >>>>>> * Create arch folder for the existing arch implementati= on > > > > >>>>>> [Ray] Do you move existing arch implementation to that arch > folder? > > > > >>>>>> It will > > > > >>>>> break existing platforms a lot. > > > > >>>>>> > > > > >>>>>> * Create the arch folder for the new introduced arch > > > > >>>>>> [Ray] I agree. But if we don't create arch folder for > > > > >>>>>> existing arch > > > > >>>>> implementation, the pkg layout will be a mess. > > > > >>>>>> > > > > >>>>>> [Ray] Hard for me to understand all the principles here. > > > > >>>>>> Maybe we review > > > > >>>>> existing code including to-be-upstreamed code and decide how > to go. > > > > >>>>>> > > > > >>>>> > > > > >>>>> Could you please take a look below changes which is trying > > > > >>>>> to add RISC-V support for CpuDxe? > > > > >>>>> > > > > >>>> > > > > >>> https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%= 2 > > > > >>> F%2F > > > > >>> gith > > > > >>>>> ub.com%2Ftianocore%2Fedk2- > > > > >>>>> > > > > >>>> > > > > >>> > > > > staging%2Fcommit%2Fbba1a11be47dd091734e185afbed73ea75708749& > > > > >>>>> > > > > >>>> > > > > >>> > > > > data=3D05%7C01%7Cabner.chang%40amd.com%7Ca419e6a010d34fde464b08d > > > > >>>>> > > > > >>>> > > > > >>> > > > > aa123e080%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C63799947 > > > > >>>>> > > > > >>>> > > > > >>> > > > > 2732494527%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIj > > > > >>>>> > > > > >>>> > > > > >>> > > > > oiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sd > > > > >>>>> > > > > >>>> > > > > >>> > > > > ata=3DVq6pJLnn8yJrJhFZn7LfLbZzrtpG4n1VLWgAil6J38U%3D&reserved=3D0 > > > > >>>>> > > > > >>>> > > > > >>> https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%= 2 > > > > >>> F%2F > > > > >>> gith > > > > >>>>> ub.com%2Ftianocore%2Fedk2- > > > > >>>>> > > > > >>>> > > > > >>> > > > > staging%2Fcommit%2F7fccf92a97a6d0618a20f10622220e78b3687906&da > > > > >>>>> > > > > >>>> > > > > >>> > > > > ta=3D05%7C01%7Cabner.chang%40amd.com%7Ca419e6a010d34fde464b08daa1 > > > > >>>>> > > > > >>>> > > > > >>> > > > > 23e080%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C63799947273 > > > > >>>>> > > > > >>>> > > > > >>> > > > > 2494527%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV > > > > >>>>> > > > > >>>> > > > > >>> > > > > 2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata > > > > >>>>> > > > > >>>> > > > > >>> > > > > =3DxFmvUv58vh4AUAM17Qy9G5jZWFZlK2Ozt3njpG1e8%2BY%3D&reserv > > > > >>>>> ed=3D0 > > > > >>>>> > > > > >>>>> What do you suggest with above example? > > > > >>>>> > > > > >>>>> 1) Common INF for all architectures - but modify INF alone, > > > > >>>>> no > > > > >>>>> X86 folder creation. > > > > >>>>> > > > > >>>>> This is what I have done in the commit above. May be of > > > > >>>>> least impact to existing code since it is only INF change. > > > > >>>>> But like you mentioned this is bit weird that X86 files will > > > > >>>>> remain in root folder directly along with some common files. > > > > >>>>> > > > > >>>>> 2) Common INF (CpuDxe.inf) + create arch folders X86, X64, > > > > >>>>> IA32, > > > > >>>>> RiscV64 etc > > > > >>>>> > > > > >>>>> IMO, this is probably the best approach. What would be the > > > > >>>>> challenges with this? > > > > >>>>> > > > > >>>>> 3) Separate INF for arch like CpuDxe.inf for x86, > > > > >>>>> CpuDxeRiscV64.inf for > > > > >>>> RISC-V. > > > > >>>>> > > > > >>>>> This again probably is not a good idea. > > > > >>>>> > > > > >>>>> 4) If the module/library is specific to one arch (ex: > > > > >>>>> SMM(X86), SBI(RISC-V)), then create separate INF. > > > > >>>>> > > > > >>>>> Thanks! > > > > >>>>> Sunil > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >=20 > > > >