From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0620.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe41::620]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 42F95817B2 for ; Wed, 11 Jan 2017 17:51:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=n1SffHxX/nikjo2HJY3HFUYLCMRF7eIzfbzE6dFiUYg=; b=DxLwJAWMkYNAma2YgmSUau5ofDKviTKnXz498ich4v/KF8IBy09VzosXdHBwllr83tDSE+C01hTlC26W5sng4/ejeKxvey2e0i63HospmHOJ6DvsUGfXO+4zw5b7cXhqoB77Bcyv2wtvhAzf5MF+8yqca9Cqc6farXFMsZN9fMA= Received: from DM5PR12MB1243.namprd12.prod.outlook.com (10.168.237.22) by BLUPR12MB0660.namprd12.prod.outlook.com (10.163.217.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.829.7; Thu, 12 Jan 2017 01:51:28 +0000 Received: from DM5PR12MB1243.namprd12.prod.outlook.com ([10.168.237.22]) by DM5PR12MB1243.namprd12.prod.outlook.com ([10.168.237.22]) with mapi id 15.01.0829.017; Thu, 12 Jan 2017 01:51:27 +0000 From: "Duran, Leo" To: "Gao, Liming" , "edk2-devel@lists.01.org" CC: "Kinney, Michael D" , "Justen, Jordan L" , "Singh, Brijesh" , "Fan, Jeff" , "lersek@redhat.com" Thread-Topic: [edk2] [PATCH 0/8] IoLib class library Thread-Index: AQHSa50d9SVIzO2mQUCxeACfCl7c3qEygHYAgAAddMCAAAsIAIAAxY+QgACe34CAAAHMwIAAAuuAgAAAXrA= Date: Thu, 12 Jan 2017 01:51:27 +0000 Message-ID: References: <1484092554-26224-1-git-send-email-leo.duran@amd.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14D6CCE7E@shsmsx102.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14D6CD269@shsmsx102.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14D6CD8F6@shsmsx102.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14D6CD9A6@shsmsx102.ccr.corp.intel.com> In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14D6CD9A6@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=leo.duran@amd.com; x-originating-ip: [2605:6000:e7c4:2000:104a:99c0:3acf:2f2a] x-microsoft-exchange-diagnostics: 1; BLUPR12MB0660; 7:GeGNRCcPZEaRfv9JmKNpPBG/8yOOk6nHkDyE3cXotlXrsgX+jT0p2XB6cu3j1xYeoaD5GCv5dEbRDYJo88Y5zrkkhTO9Kizbzmx6KJqEU4feOjpMN+KLYkVB+vFetRMWUJBOlRefdksAvBP4oAY4JLQeFgdEMiEMoCjIhwokB6ywK/aAyfZvg/SETkDlUkKazTJbYRMPS5VDmG1eeOE4S5cx5/kfVrFuZS52k4KPrhKx37u4iQ5hwbCyxMLkeVyaiMYB5H6CT6JGWBerjlQd6ivZ+PQMjwePvfncFIPKO02hc98KkQG2b/asCLSAiaz7dileO8auPcg8KwppqnbhAr+H7biOvjlI8cwjxVI68G8G2F2TThBuAN+PxYrbhXepn/Tx7dZqiF7Uzv0yvAIuwDKRuY3aw8O9YoHpOwVjzDnX30kQKYNdVKzpcUWGg421D8FVRWQjOiMpHo0RkejTnw==; 20:ABW8j6YIcokIpYhgPGjYjHmmbEBl8bcBCZ4atOahZjHBIdZF2ZS52NiVboGG9VfvtddIJycQmlo6C8PaGUeke03MJ9Uysl5i+3mtFC9aS8TVFywPDEzuP4Axcma7Xy8zww6XtfDWhTcwbykZ3QHgINtxmovSIBE+MoH5ctt7beXXx4WYBILTaPWaJVwKUtNXHNNgah1QZ6SXCcjV1qXetbG/vlHdt7/a9xFuvAVKKg3Dbkh4jJGx34sJ6W9Oydqq x-forefront-antispam-report: SFV:SKI; SCL:-1SFV:NSPM; SFS:(10009020)(6009001)(6029001)(7916002)(39410400002)(39860400002)(39840400002)(39850400002)(39450400003)(43544003)(13464003)(377454003)(199003)(189002)(81156014)(81166006)(3280700002)(8676002)(6506006)(6436002)(2900100001)(189998001)(2950100002)(38730400001)(50986999)(106356001)(106116001)(229853002)(54356999)(7696004)(122556002)(77096006)(4326007)(2906002)(105586002)(76176999)(8936002)(3660700001)(305945005)(9686003)(68736007)(5660300001)(102836003)(6116002)(97736004)(101416001)(54906002)(6306002)(74316002)(92566002)(33656002)(86362001)(93886004)(99286003)(25786008)(2501003)(55016002)(7736002)(5001770100001)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR12MB0660; H:DM5PR12MB1243.namprd12.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; x-ms-office365-filtering-correlation-id: 3b255cc0-804f-483a-2752-08d43a8d85b2 x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:BLUPR12MB0660; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(767451399110)(162533806227266)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123564025)(20161123558021)(20161123562025)(20161123560025)(6072148); SRVR:BLUPR12MB0660; BCL:0; PCL:0; RULEID:; SRVR:BLUPR12MB0660; x-forefront-prvs: 018577E36E received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2017 01:51:27.1445 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR12MB0660 Subject: Re: [PATCH 0/8] IoLib class library X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Jan 2017 01:51:31 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Ummh... > -----Original Message----- > From: Gao, Liming [mailto:liming.gao@intel.com] > Sent: Wednesday, January 11, 2017 7:39 PM > To: Duran, Leo ; edk2-devel@lists.01.org > Cc: Kinney, Michael D ; Justen, Jordan L > ; Singh, Brijesh ; Fan, > Jeff ; lersek@redhat.com > Subject: RE: [edk2] [PATCH 0/8] IoLib class library >=20 > Leo: > I suggest you rework IoLib instances PeiIoLib, DxeIoLibCpuIo, > DxeIoLibCpuIo2 library instance first. Then, later you only need to chang= e > CpuIo PEIM and driver, don't need to change library instances again. >=20 > Thanks > Liming [Duran, Leo]=20 If I rework the IoLib instances to use EfiCpuIoWidthFifoUint#, the I/O driv= er will *not* do the right thing, so the expected IoLib functionality will= be broken. Basically, the I/O driver needs to properly support EfiCpuIoWidthFifoUint# = types in order for the IoLib instances to work correctly using that type. In contrast, albeit not optimal, the changes I've already made to the IoLIb= instances will function correctly with the exiting I/O driver. So it seems like the order t=3Df changes needs to be: 1) Update I/O driver to support EfiCpuIoWidthFifoUint# types 2) Then update IoLib instances to use EfiCpuIoWidthFifoUint# types But perhaps my unders5tanding of the current implementation is flawed? Leo. > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Duran, Leo > Sent: Thursday, January 12, 2017 9:35 AM > To: Gao, Liming ; edk2-devel@lists.01.org > Cc: Kinney, Michael D ; Justen, Jordan L > ; Singh, Brijesh ; Fan, > Jeff ; lersek@redhat.com > Subject: Re: [edk2] [PATCH 0/8] IoLib class library >=20 > How about this instead: >=20 > 1) I submit a "v2" to take care of the code-style issue, while making all > instances of IoLib fully functional & complaint with the complete IoLib A= PI. > 2) At a later time (soon, I promise), I submit a patch for CpuIo2Dxe to > properly support FiFo types and also rework the IoLib instances to use > EfiCpuIoWidthFifoUint#. >=20 > Is that a deal? > Leo >=20 > > -----Original Message----- > > From: Gao, Liming [mailto:liming.gao@intel.com] > > Sent: Wednesday, January 11, 2017 7:22 PM > > To: Duran, Leo ; edk2-devel@lists.01.org > > Cc: Kinney, Michael D ; Justen, Jordan L > > ; Singh, Brijesh ; > > Fan, Jeff ; lersek@redhat.com > > Subject: RE: [edk2] [PATCH 0/8] IoLib class library > > > > Leo: > > CpuIo2Dxe supports FifoIo operation, because original logic includes > > FifoIo implementation. CpuIoCheckParameter() checks the parameter, > > doesn't performance operation. And, 64bit IO operation is not > > supported. You add three APIs for 8, 16 and 32 Io operation. So, there = is no > lose functionality. > > Last, OperationWidth =3D (EFI_CPU_IO_PROTOCOL_WIDTH) (Width & 0x03); > It > > still supports all Width. > > > > Besides, I understand your work scope for IO library update. You can > > focus on my comment 1. If you have no bandwidth, you can submit > > bugzillar for comment 2 to update PeiCpuIo and DxeCpuIo driver to base > > on IoLib to implement FifoIo APIs. > > > > Thanks > > Liming > > -----Original Message----- > > From: Duran, Leo [mailto:leo.duran@amd.com] > > Sent: Thursday, January 12, 2017 12:29 AM > > To: Gao, Liming ; edk2-devel@lists.01.org > > Cc: Kinney, Michael D ; Justen, Jordan L > > ; Singh, Brijesh ; > > Fan, Jeff ; lersek@redhat.com > > Subject: RE: [edk2] [PATCH 0/8] IoLib class library > > > > Liming, > > > > However, here are some issues with trying to use Fifo types via the > > I/O > > protocol: > > 1) CpuIo2Dxe.c - CpuIoCheckParameter(): Count is forced to 1 for Fifo > types: > > // > > // For FIFO type, the target address won't increase during the access= , > > // so treat Count as 1 > > // > > if (Width >=3D EfiCpuIoWidthFifoUint8 && Width <=3D > > EfiCpuIoWidthFifoUint64) { > > Count =3D 1; > > } > > > > 2) CpuIo2Dxe.c - CpuIoCheckParameter():Fifo types are > > eliminated/truncated: > > // > > // Check to see if Width is in the valid range for I/O Port operation= s > > // > > Width =3D (EFI_CPU_IO_PROTOCOL_WIDTH) (Width & 0x03); > > if (!MmioOperation && (Width =3D=3D EfiCpuIoWidthUint64)) { > > return EFI_INVALID_PARAMETER; > > } > > > > 3) CpuIo2Dxe.c - CpuIoServiceRead()/CpuIoServiceWrite(): > > OperationWidth is only serviced for these cases: EfiCpuIoWidthUint8, > > EfiCpuIoWidthUint16, and EfiCpuIoWidthUint32 So the Fifo types are not > > serviced. > > > > > > > -----Original Message----- > > > From: Gao, Liming [mailto:liming.gao@intel.com] > > > Sent: Tuesday, January 10, 2017 10:07 PM > > > To: Duran, Leo ; edk2-devel@lists.01.org > > > Cc: Kinney, Michael D ; Justen, Jordan L > > > ; Singh, Brijesh ; > > > Fan, Jeff ; lersek@redhat.com > > > Subject: RE: [edk2] [PATCH 0/8] IoLib class library > > > > > > Leo: > > > edk2\UefiCpuPkg\CpuIo2Dxe\CpuIo2Dxe.c CpuIoServiceRead() bases on > > > IoReadFifo8() for EfiCpuIoWidthFifoUint8 width. So, IoLibCupIo2 > > > library instance IoReadFifo8() implementation can call > > > mCpuIo->Io.Read (mCpuIo, EfiCpuIoWidthFifoUint8, Port, Count, > > > Buffer); > > > > > > Thanks > > > Liming > > > -----Original Message----- > > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf > > > Of Duran, Leo > > > Sent: Wednesday, January 11, 2017 11:37 AM > > > To: Gao, Liming ; edk2-devel@lists.01.org > > > Cc: Kinney, Michael D ; Justen, Jordan L > > > ; Singh, Brijesh ; > > > Fan, Jeff ; lersek@redhat.com > > > Subject: Re: [edk2] [PATCH 0/8] IoLib class library > > > > > > Liming... > > > > > > > -----Original Message----- > > > > From: Gao, Liming [mailto:liming.gao@intel.com] > > > > Sent: Tuesday, January 10, 2017 7:42 PM > > > > To: Duran, Leo ; edk2-devel@lists.01.org > > > > Cc: Singh, Brijesh ; Justen, Jordan L > > > > ; Kinney, Michael D > > > > ; lersek@redhat.com; Fan, Jeff > > > > > > > > Subject: RE: [edk2] [PATCH 0/8] IoLib class library > > > > > > > > Leo: > > > > Thanks for your update. Here is my comments. > > > > 1) PeiIoLib, DxeIoLibCpuIo, DxeIoLibCpuIo2 library instance can > > > > base on CPU IO service to do FifoIo operation. They don't > > > > implement them > > > again. > > > > 2) IntelFrameworkModulePkg CpuIoDxe and UefiCpuPkg CpuIoPei > driver > > > can > > > > be updated to base on FifoIo API for their FifoIo implementation. > > > > > > [Duran, Leo] I actually considered that, but the CPU I/O driver does > > > not provide FiFiIo service in its implementation of the > > EFI_CPU_IO2_PROTOCOL. > > > The CPU I/O driver does use the Fifo routines internally, and it > > > does so when that caller request IoRead/IoWrite... see the CPU I/O > > > service > > routines below. > > > > > > > 3) One coding style issue. We don't assign value to the variable > > declaration. > > > > UINT8 *Buffer8 =3D (UINT8 *)Buffer; > > > > =3D=3D> > > > > UINT8 *Buffer8; > > > > Buffer8 =3D (UINT8 *)Buffer; > > > > > > [Duran, Leo] OK, I'll change that. > > > > > > > > > > > Thanks > > > > Liming > > > [Duran, Leo] > > > > > > EFI_STATUS > > > EFIAPI > > > CpuIoServiceRead ( > > > IN EFI_CPU_IO2_PROTOCOL *This, > > > IN EFI_CPU_IO_PROTOCOL_WIDTH Width, > > > IN UINT64 Address, > > > IN UINTN Count, > > > OUT VOID *Buffer > > > ) > > > { > > > EFI_STATUS Status; > > > UINT8 InStride; > > > UINT8 OutStride; > > > EFI_CPU_IO_PROTOCOL_WIDTH OperationWidth; > > > UINT8 *Uint8Buffer; > > > > > > Status =3D CpuIoCheckParameter (FALSE, Width, Address, Count, Buffe= r); > > > if (EFI_ERROR (Status)) { > > > return Status; > > > } > > > > > > // > > > // Select loop based on the width of the transfer > > > // > > > InStride =3D mInStride[Width]; > > > OutStride =3D mOutStride[Width]; > > > OperationWidth =3D (EFI_CPU_IO_PROTOCOL_WIDTH) (Width & 0x03); > > > > > > #if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64) > > > if (InStride =3D=3D 0) { > > > switch (OperationWidth) { > > > case EfiCpuIoWidthUint8: > > > IoReadFifo8 ((UINTN)Address, Count, Buffer); > > > return EFI_SUCCESS; > > > case EfiCpuIoWidthUint16: > > > IoReadFifo16 ((UINTN)Address, Count, Buffer); > > > return EFI_SUCCESS; > > > case EfiCpuIoWidthUint32: > > > IoReadFifo32 ((UINTN)Address, Count, Buffer); > > > return EFI_SUCCESS; > > > default: > > > // > > > // The CpuIoCheckParameter call above will ensure that this > > > // path is not taken. > > > // > > > ASSERT (FALSE); > > > break; > > > } > > > } > > > #endif > > > > > > for (Uint8Buffer =3D Buffer; Count > 0; Address +=3D InStride, > > > Uint8Buffer +=3D OutStride, Count--) { > > > if (OperationWidth =3D=3D EfiCpuIoWidthUint8) { > > > *Uint8Buffer =3D IoRead8 ((UINTN)Address); > > > } else if (OperationWidth =3D=3D EfiCpuIoWidthUint16) { > > > *((UINT16 *)Uint8Buffer) =3D IoRead16 ((UINTN)Address); > > > } else if (OperationWidth =3D=3D EfiCpuIoWidthUint32) { > > > *((UINT32 *)Uint8Buffer) =3D IoRead32 ((UINTN)Address); > > > } > > > } > > > > > > return EFI_SUCCESS; > > > } > > > > > > EFI_STATUS > > > EFIAPI > > > CpuIoServiceWrite ( > > > IN EFI_CPU_IO2_PROTOCOL *This, > > > IN EFI_CPU_IO_PROTOCOL_WIDTH Width, > > > IN UINT64 Address, > > > IN UINTN Count, > > > IN VOID *Buffer > > > ) > > > { > > > EFI_STATUS Status; > > > UINT8 InStride; > > > UINT8 OutStride; > > > EFI_CPU_IO_PROTOCOL_WIDTH OperationWidth; > > > UINT8 *Uint8Buffer; > > > > > > // > > > // Make sure the parameters are valid > > > // > > > Status =3D CpuIoCheckParameter (FALSE, Width, Address, Count, Buffe= r); > > > if (EFI_ERROR (Status)) { > > > return Status; > > > } > > > > > > // > > > // Select loop based on the width of the transfer > > > // > > > InStride =3D mInStride[Width]; > > > OutStride =3D mOutStride[Width]; > > > OperationWidth =3D (EFI_CPU_IO_PROTOCOL_WIDTH) (Width & 0x03); > > > > > > #if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64) > > > if (InStride =3D=3D 0) { > > > switch (OperationWidth) { > > > case EfiCpuIoWidthUint8: > > > IoWriteFifo8 ((UINTN)Address, Count, Buffer); > > > return EFI_SUCCESS; > > > case EfiCpuIoWidthUint16: > > > IoWriteFifo16 ((UINTN)Address, Count, Buffer); > > > return EFI_SUCCESS; > > > case EfiCpuIoWidthUint32: > > > IoWriteFifo32 ((UINTN)Address, Count, Buffer); > > > return EFI_SUCCESS; > > > default: > > > // > > > // The CpuIoCheckParameter call above will ensure that this > > > // path is not taken. > > > // > > > ASSERT (FALSE); > > > break; > > > } > > > } > > > #endif > > > > > > for (Uint8Buffer =3D (UINT8 *)Buffer; Count > 0; Address +=3D > > > InStride, Uint8Buffer +=3D OutStride, Count--) { > > > if (OperationWidth =3D=3D EfiCpuIoWidthUint8) { > > > IoWrite8 ((UINTN)Address, *Uint8Buffer); > > > } else if (OperationWidth =3D=3D EfiCpuIoWidthUint16) { > > > IoWrite16 ((UINTN)Address, *((UINT16 *)Uint8Buffer)); > > > } else if (OperationWidth =3D=3D EfiCpuIoWidthUint32) { > > > IoWrite32 ((UINTN)Address, *((UINT32 *)Uint8Buffer)); > > > } > > > } > > > > > > return EFI_SUCCESS; > > > } > > > > -----Original Message----- > > > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On > > > > Behalf Of Leo Duran > > > > Sent: Wednesday, January 11, 2017 7:56 AM > > > > To: edk2-devel@lists.01.org > > > > Cc: brijesh.singh@amd.com; Justen, Jordan L > > > > ; Gao, Liming ; > > > > Leo Duran ; Kinney, Michael D > > > > ; lersek@redhat.com; Fan, Jeff > > > > > > > > Subject: [edk2] [PATCH 0/8] IoLib class library > > > > > > > > The UefiCpuPkg/CpuIo2Dxe driver and the QemuCfgLib library have > > > > duplicate implementations of I/O Fifo routines. The patch series > > > > moves the I/O Fifo routines into the BaseIoLibIntrinsic library > > > > and expands the IoLib class to include the ported I/O Fifo routines= . > > > > > > > > The Fifo routines moved from the UefiCpuPkg/CpuIo2Dxe driver > > > > support > > > > IA32 and X64 natively, and other architectures are supported by > > > > simply looping through the basic IoRead/IoWrite routines as > appropiate. > > > > > > > > The intent of this patch series is twofold: > > > > 1) Integrate I/O Fifo routines into the IoLib class library. > > > > 2) Allow override of IoLib as may be required to support specific > > > > hardware implementations, such as AMD's Secure Encrypted > > > > Virtualization > > > (SEV). > > > > > > > > Leo Duran (8): > > > > MdePkg: Expand BaseIoLibIntrinsic (IoLib class) library > > > > MdePkg/DxeIoLibCpuIo2: Add new Fifo routines in IoLib class > > > > MdePkg/DxeIoLibEsal: Add new Fifo routines in IoLib class > > > > MdePkg/PeiIoLibCpuIo: Add new Fifo routines in IoLib class > > > > MdePkg/SmmIoLibSmmCpuIo2: Add new Fifo routines in IoLib class > > > > IntelFrameworkPkg/DxeIoLibCpuIo: Add new Fifo routines in IoLib > class > > > > UefiCpuPkg: Modify CpuIo2Dxe to use new IoLib class library > > > > OvmfPkg: Modify QemuFwCfgLib to use new IoLib class library > > > > > > > > IntelFrameworkPkg/Library/DxeIoLibCpuIo/IoLib.c | 203 > > > > +++++++++++++++++++++ > > > > MdePkg/Include/Library/IoLib.h | 158 +++++++++= +++++++ > > > > .../BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf | 6 +- > > > > .../Library/BaseIoLibIntrinsic}/Ia32/IoFifo.asm | 1 + > > > > .../Library/BaseIoLibIntrinsic}/Ia32/IoFifo.nasm | 1 + > > > > MdePkg/Library/BaseIoLibIntrinsic/IoLibArm.c | 182 > > > > ++++++++++++++++++ > > > > MdePkg/Library/BaseIoLibIntrinsic/IoLibEbc.c | 179 > > > > ++++++++++++++++++ > > > > MdePkg/Library/BaseIoLibIntrinsic/IoLibIpf.c | 201 > > > > ++++++++++++++++++++ > > > > .../Library/BaseIoLibIntrinsic}/X64/IoFifo.asm | 1 + > > > > .../Library/BaseIoLibIntrinsic}/X64/IoFifo.nasm | 1 + > > > > MdePkg/Library/DxeIoLibCpuIo2/IoLib.c | 203 > > > > +++++++++++++++++++++ > > > > MdePkg/Library/DxeIoLibEsal/IoLib.c | 203 > > > > +++++++++++++++++++++ > > > > MdePkg/Library/PeiIoLibCpuIo/IoLib.c | 203 > > > > +++++++++++++++++++++ > > > > MdePkg/Library/SmmIoLibSmmCpuIo2/IoLib.c | 203 > > > > +++++++++++++++++++++ > > > > OvmfPkg/Library/QemuFwCfgLib/Ia32/IoLibExAsm.nasm | 55 ------ > > > > OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c | 54 +----- > > > > OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf | 7 +- > > > > OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgSecLib.inf | 7 +- > > > > OvmfPkg/Library/QemuFwCfgLib/X64/IoLibExAsm.nasm | 52 ------ > > > > UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.c | 3 +- > > > > UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf | 11 +- > > > > UefiCpuPkg/CpuIo2Dxe/IoFifo.h | 176 ---------= --------- > > > > 22 files changed, 1751 insertions(+), 359 deletions(-) rename > > > > {UefiCpuPkg/CpuIo2Dxe =3D> > > > > MdePkg/Library/BaseIoLibIntrinsic}/Ia32/IoFifo.asm (94%) rename > > > > {UefiCpuPkg/CpuIo2Dxe =3D> > > > > MdePkg/Library/BaseIoLibIntrinsic}/Ia32/IoFifo.nasm (94%) rename > > > > {UefiCpuPkg/CpuIo2Dxe =3D> > > > > MdePkg/Library/BaseIoLibIntrinsic}/X64/IoFifo.asm (95%) rename > > > > {UefiCpuPkg/CpuIo2Dxe =3D> > > > > MdePkg/Library/BaseIoLibIntrinsic}/X64/IoFifo.nasm (95%) delete > > > > mode > > > > 100644 OvmfPkg/Library/QemuFwCfgLib/Ia32/IoLibExAsm.nasm > > > > delete mode 100644 > > > > OvmfPkg/Library/QemuFwCfgLib/X64/IoLibExAsm.nasm > > > > delete mode 100644 UefiCpuPkg/CpuIo2Dxe/IoFifo.h > > > > > > > > -- > > > > 1.9.1 > > > > > > > > _______________________________________________ > > > > edk2-devel mailing list > > > > edk2-devel@lists.01.org > > > > https://lists.01.org/mailman/listinfo/edk2-devel > > > _______________________________________________ > > > edk2-devel mailing list > > > edk2-devel@lists.01.org > > > https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel