From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web11.2106.1592463706414967507 for ; Thu, 18 Jun 2020 00:01:47 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=L/VyGGsc; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: dandan.bi@intel.com) IronPort-SDR: Nl56NS8D3Yj/2DJ7DDeghWE4AinVb5YGKIYYXhiobfLRFJ9TM5beeNcAiNUGLCFuhj/xJ+Gogl ijQ1QtowJ25Q== X-IronPort-AV: E=McAfee;i="6000,8403,9655"; a="142412792" X-IronPort-AV: E=Sophos;i="5.73,525,1583222400"; d="scan'208,217";a="142412792" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2020 00:01:44 -0700 IronPort-SDR: ODqYL9KsIe8omf+JpPVEdwmo2DscAJjpBBW2c3RGO1jaLOUd1KKzhJfaSZocGJTOKTonZiERYz 8PwSBDNnurLw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,525,1583222400"; d="scan'208,217";a="477095168" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga006.fm.intel.com with ESMTP; 18 Jun 2020 00:01:44 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 18 Jun 2020 00:01:44 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 18 Jun 2020 00:01:43 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 18 Jun 2020 00:01:43 -0700 Received: from NAM04-SN1-obe.outbound.protection.outlook.com (104.47.44.59) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 18 Jun 2020 00:01:40 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VZAjsEOEfrz9+W4hAmcjGnBCuweB91kXyGtkd2jUq/Yx6/Or1Uxv0ocngC1qpZolVN4jvY2hi6qnnX53FW6IlfBw5OhF7mll1FBafksTfdgFuomFkXVVwv76/laZdLayiflZuBdoTpKgPRQAgozNzkzSVHqf+O71iuVJ0fv9EQdhlV0G2pkRpatxswHw9Lw4SzdwIbVUPk3xOLt/Y7wsEW0cVKyciM5q4jvY+HGZy+dV7lfsea2fLBs1HmtPrS7Ggmh9bIsi+TZwjEPSjFlR5RKrSNzb5ovRH/RUkZa5N39MRw4CrR+odx0HXN0JANpl8EMzVyuR29N+fR4MAmBZmw== 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-SenderADCheck; bh=ji+5bCIip+X+ZkbB8CXGGx7uB7RwaPU/OjsEgoFs2TI=; b=iHGl1Q2jClIjLOQg39UowVfAFjA/wBg1/wi8MLioHbFmuHdhUIVVjVPfJi9SzcBPtw46RFgxYzuct7T6Unugn9McdxnaasxZfog3l1gFZWetpBDI5ErcYMrKVMfupE2b/KGZDVjwIePenU3tjQZZVJEsytOWuOaI9ZP1GTTcR4UQk+k5pclilqK+wdehTEFXqKViaAUuYej7oKZ9ek4PcQavqk3RTQtOyUAhncMZkpuZPSHMWOLM9eidMbCQaOh+nElwEW64i1vt/uVAWYEBfteoASsrJkWHxL3SvqhXFJuERs27F6IlDDm3cCym7+QADAWFKKSbhGLI4xW2r+9kWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ji+5bCIip+X+ZkbB8CXGGx7uB7RwaPU/OjsEgoFs2TI=; b=L/VyGGscHtjxoXQDsbSN3i1yDKQhaKC7Iub51RmwWt/8hMSUJvo4aVSZxJj+xlq/gKLRClTCeOjrxUjsgN+DXq/p9thBgRBW0GoiT0+UhTIywuoFlgrPWw4Q81glFRrzFOfvx+9eqAhpg0DKt34FeIF9a0jbsMrHgSEX5xYXJqY= Received: from BN6PR11MB1393.namprd11.prod.outlook.com (2603:10b6:404:3c::12) by BN6PR11MB1427.namprd11.prod.outlook.com (2603:10b6:405:8::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.21; Thu, 18 Jun 2020 07:01:36 +0000 Received: from BN6PR11MB1393.namprd11.prod.outlook.com ([fe80::a1f4:15d6:9a79:de03]) by BN6PR11MB1393.namprd11.prod.outlook.com ([fe80::a1f4:15d6:9a79:de03%11]) with mapi id 15.20.3088.029; Thu, 18 Jun 2020 07:01:36 +0000 From: "Dandan Bi" To: "devel@edk2.groups.io" , "rfc@edk2.groups.io" CC: "Dong, Eric" , "Ni, Ray" , "Wang, Jian J" , "Wu, Hao A" , "Tan, Ming" , "Bi, Dandan" Subject: [edk2-devel] [edk2-rfc] MdeModulePkg/StatusCodeHandler: Separate NULL class libraries for Memory and serial handlers from MdeModulePkg/Universal/StatusCodeHandler modules Thread-Topic: [edk2-devel] [edk2-rfc] MdeModulePkg/StatusCodeHandler: Separate NULL class libraries for Memory and serial handlers from MdeModulePkg/Universal/StatusCodeHandler modules Thread-Index: AdZFPgT7ud2IrirfSlGwHwQRi30D8A== Date: Thu, 18 Jun 2020 07:01:36 +0000 Message-ID: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.55.46.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6596afce-3b51-4abd-fa7b-08d81355715c x-ms-traffictypediagnostic: BN6PR11MB1427: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 0438F90F17 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: M4lOaCUhrv69A1iKcOt7LDBEhIudo3eLf/Fmr2iUeckfKxDOEmlcwsiihRHYyzQBZLvt0GTkCFYM+wGCMBzW6ZVcpNO7ewtKeyttCwxR9dNr+VSSs4mamCzqOUR0mwdCAh/2dY9GO8YzuZEiOFjbi3LvEKIBjJA8fi1Y0b7eDuXYYQxRERi1z+1CyUeNqLTmkDEllE8hpHxxE6KuQQA8gtin1cJdRFNg0i1DpiNNSfucpdNVjlGxBSKRXPoT75JzqPCkY9/X/31XZ/7fETdANbMgOqOyqa5/IHMQZ3mJdSSlBjtNs4/q4Y1TEvQFucT12g8rHrIhuS5TA8Ko4rcD0T2vnSN1Rucz0wK4IijrdqLzIGV2fuV2P92hEHj2ytx82o7ifM9Nw9cFqe+6B1clRg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN6PR11MB1393.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(376002)(396003)(39860400002)(346002)(366004)(136003)(66946007)(76116006)(66476007)(66446008)(66556008)(64756008)(86362001)(5660300002)(52536014)(33656002)(166002)(4326008)(107886003)(450100002)(55016002)(83380400001)(9686003)(7696005)(966005)(2906002)(186003)(9326002)(8676002)(26005)(316002)(8936002)(110136005)(71200400001)(478600001)(54906003)(6506007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: ZknI1ToRbub14KHU89ezCA5Uce2Xp+Ack3aHLd3bR69IxGKr7cDTyfrp8y583/rdo4S99UZSRR6G91owmyFv2SVVx7aL0t8EMpi/QhK2S8R/UGDxFmkwUQcTyXafxL/JciTmVz7Gmj5c0RHcl4SoF5wiy8phNHvgT6kyghGnoWr/gOndGzp3AS4ayUPkgkjYL5jKUILjnctLvjuw8h4CVHEgGH+dUthe4jBVu58Pp2soPULWmvu0LTHhQisRKKHD47auso0Lr0PIOc5s3BcQRQ+x9TeF7C6mV5yUG4QWHoBbIutTI/cfMyqnxh0GmlZFa8OW0BpSRcTEkLGEDdxanF8JBmbgZasRpjtYZcs5L6bfKbohAKClad45wiAG/GPSsAZim+/zfzePr/2JDB/Z/JVJ3GxpXjztEBg7d/29uwF+ZnQ4iOi31JlCj8eBMX5JHUprrfEPL5LiZtvzvIG9/fnWgizI00uMyvVJ4YHUQWY= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 6596afce-3b51-4abd-fa7b-08d81355715c X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2020 07:01:36.6542 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: JmnG+LdrYxpVqUOtgxLmthXC0Uw+DbUOb164UqmhVeZe+sNK7iQNa2tpsKsFA5sdB/oOijg3m/1IC6nlhlAw5w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1427 Return-Path: dandan.bi@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_BN6PR11MB1393556738AFCFB0F2A73B20EA9B0BN6PR11MB1393namp_" --_000_BN6PR11MB1393556738AFCFB0F2A73B20EA9B0BN6PR11MB1393namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi All, REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2816 We plan to separate two kinds of NULL class libraries for Memory and serial= handlers from MdeModulePkg/Universal/StatusCodeHandler/.../ StatusCodeHand= lerPei/RuntimeDxe/Smm modules. The benefit we want to gain from this separation is to 1) make the code cle= ar and easy to maintain, 2) make platform flexible to choose any handler li= brary they need, and it also can reduce image size since the unused handler= s can be excluded. If you have any concern or comments for this separation, please let me know= . We plan to add new separated NULL class library MemoryStausCodeHandlerLib a= nd SerialStatusCodeHandlerLib with different phase implementation into MdeM= odulePkg\Library\ directory. The main tree structure may like below: MdeModulePkg\Library |------MemoryStausCodeHandlerLib |------|------ PeiMemoryStausCodeHandlerLib.inf |------|------ RuntimeDxeMemoryStatusCodeHandlerLib.inf |------|------ SmmMemoryStausCodeHandlerLib.inf |------SerialStatusCodeHandlerLib |------|------ PeiSerialStatusCodeHandlerLib.inf |------|------ RuntimeDxeSerialStatusCodeHandlerLib.inf |------|------ SmmSerialStatusCodeHandlerLib.inf We will update existing platform use cases in edk2 and edk2-platform repo t= o cover the new NULL class library to make sure this change doesn't impact = any platform. After this separation, StatusCodeHandler module usage will like below, and = it's also very flexible for platform to cover more handler libraries to mee= t their requirements. MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusCodeHandlerPei.inf { NULL|MdeModulePkg/Library/MemoryStausCodeHandlerLib/PeiMemoryStausCodeHandl= erLib.inf NULL|MdeModulePkg/Library/SerialStatusCodeHandlerLib/PeiSerialStatusCodeHan= dlerLib.inf ... } MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntim= eDxe.inf { NULL|MdeModulePkg/Library/MemoryStausCodeHandlerLib/RuntimeDxeMemoryStausCo= deHandlerLib.inf NULL|MdeModulePkg/Library/SerialStatusCodeHandlerLib/RuntimeDxeSerialStatus= CodeHandlerLib.inf ... } MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf { NULL|MdeModulePkg/Library/MemoryStausCodeHandlerLib/SmmMemoryStausCodeH= andlerLib.inf NULL|MdeModulePkg/Library/SerialStatusCodeHandlerLib/SmmSerialStatusCodeHan= dlerLib.inf ... } Thanks, Dandan --_000_BN6PR11MB1393556738AFCFB0F2A73B20EA9B0BN6PR11MB1393namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi All,

 

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2816

 

We plan to separate two kinds of NULL class librarie= s for Memory and serial handlers from MdeModulePkg/Universal/StatusCodeHandler/…/ StatusCodeHandlerPei/R= untimeDxe/Smm modules.

The benefit we want to gain from this separation is = to 1) make the code clear and easy to maintain, 2) make platform flexible t= o choose any handler library they need, and it also can reduce image size s= ince the unused handlers can be excluded.

If you have any concern or comments for this separat= ion, please let me know.

 

We plan to add new separated NULL class library M= emoryStausCodeHandlerLib and SerialStatusCodeHandlerLib with different phase implementati= on into MdeModulePkg\Library\ directory.

The main tree structure may like below:

MdeModulePkg\Library

|------MemoryStausCodeHandlerLib

|------|------ PeiMemoryStausCodeHandlerLib.inf=

|------|------ RuntimeDxeMemoryStatusCodeHandlerLib.= inf

|------|------ SmmMemoryStausCodeHandlerLib.inf=

|------SerialStatusCodeHandlerLib<= /p>

|------|------ PeiSerialStatusCodeHandlerLib.inf

|------|------ RuntimeDxeSerialStatusCodeHandlerLib.= inf

|------|------ SmmSerialStatusCodeHandlerLib.inf

 

 

We will update existing platform use cases in edk2 a= nd edk2-platform repo to cover the new NULL class library to make sure this= change doesn’t impact any platform.

After this separation, StatusCodeHandler module usag= e will like below, and it’s also very flexible for platform to cover = more handler libraries to meet their requirements.

MdeModulePkg/Universal/StatusCodeHandler/Pei/StatusC= odeHandlerPei.inf {

  <LibraryClasses>

NULL|MdeModulePkg/Libra= ry/MemoryStausCodeHandlerLib/PeiMemoryStausCodeHandlerLib.inf

NULL|MdeModulePkg/Libra= ry/SerialStatusCodeHandlerLib/PeiSerialStatusCodeHandlerLib.inf<= /p>

    …

}

 

MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/= StatusCodeHandlerRuntimeDxe.inf  {

  <LibraryClasses>

NULL|MdeModulePkg/Libra= ry/MemoryStausCodeHandlerLib/RuntimeDxeMemoryStausCodeHandlerLib.inf

NULL|MdeModulePkg/Libra= ry/SerialStatusCodeHandlerLib/RuntimeDxeSerialStatusCodeHandlerLib.inf=

    …

}

 

MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusC= odeHandlerSmm.inf {

  <LibraryClasses>

    NULL|MdeModulePkg/Library/MemoryS= tausCodeHandlerLib/SmmMemoryStausCodeHandlerLib.inf

NULL|MdeModulePkg/Libra= ry/SerialStatusCodeHandlerLib/SmmSerialStatusCodeHandlerLib.inf<= /p>

    …

}

 

 

Thanks,

Dandan

--_000_BN6PR11MB1393556738AFCFB0F2A73B20EA9B0BN6PR11MB1393namp_--