From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id A07C3941159 for ; Fri, 3 Nov 2023 05:10:17 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=UEoCd/lm4rNjMjMFrGICHne2eYIAi6SXTPRY9TYnFK4=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:msip_labels:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type; s=20140610; t=1698988216; v=1; b=gAKHMVO6iLvGLk9a9cyYPa7shH+EJYTMW6RPISpAKN8wJ3XWRuauEzIR7JnOGT/CL5aOcO1t urnkjv0TrjF7gI2necUcZ5qk3Z6YZY3X7KOxhPAy1ifT6sy9AJQp5obzX7PCzYp9CdW3S3yrt/q ftKWN0Owjd11Y3WWYl/ahNng= X-Received: by 127.0.0.2 with SMTP id yv8NYY7687511xYj6jXGC9Du; Thu, 02 Nov 2023 22:10:16 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web11.28124.1698988215607037574 for ; Thu, 02 Nov 2023 22:10:15 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10882"; a="419987805" X-IronPort-AV: E=Sophos;i="6.03,273,1694761200"; d="scan'208,217";a="419987805" X-Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Nov 2023 22:10:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10882"; a="790653308" X-IronPort-AV: E=Sophos;i="6.03,273,1694761200"; d="scan'208,217";a="790653308" X-Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga008.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 02 Nov 2023 22:10:14 -0700 X-Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Thu, 2 Nov 2023 22:10:13 -0700 X-Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Thu, 2 Nov 2023 22:10:13 -0700 X-Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.101) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Thu, 2 Nov 2023 22:10:13 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=khlKnqVBfpE2fLBs4f/m3gxCjOVbVx+VSHVbsNbi8beaX89k1jFUykj3TTugFt+Is7D8xEm5g0F3EuU1JLNSe/MMdcs5zxp2Ndr0UimPE5Df6t7rfCe/22RZn0MuwBtQqzAcK3D2fYqiMpe7Krpv0cF1pyCf6p7eJPZ0s/Sihy6WyEYjmUf58eTe0K1R6sHF32NRDUbMWRe6TnATTc7PPzDpmH8PbRWhQQWlB+v0a7grQXwV5c9Ugb2rUDJsia8BAdA43HkG7CQn4x0tMtPZfUVIaPSNmHvpDHKnaPyofzchwTEcdW5dZB3bl18kLZ4fDIWTC02miG3wXSTYE3LJlQ== 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=/z8AP0ZYd8Z/uzZ0efLRi2VvKLfTwmoSxttgfNHIb18=; b=ONVFkP34vEzbAAJYDhu0OVCRNUSngADUKqHSnBfc1X58foJHLurNoFRvndjmidHhs0bh2C3rP5iTRO2Z4bSREhqUsQJMGm93rAXf96lv8NRzDdEMG7wSNz/SPM/RXSiAQXlbNmE1VvAMvQ3Vwg8v6cQ3Vn+08MJrwsQ80QKNfRP0dHB0i0ymBQAdJQzc7z1505iiEG9iNtOwap9IAZP6mEfCE9Rqh1z7j61zr8Kpa8VQ0k1zmdpnjqDYpkRpW6DEFug9zLItoW0HQkVyD+cpLDCQAfc/JqpGQmLX2L2Hwv+4ehbbHWfnL3EL2wiag5XQnz67fd9ZZhl7VYyYBOHFHw== 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 X-Received: from MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by LV8PR11MB8746.namprd11.prod.outlook.com (2603:10b6:408:202::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.21; Fri, 3 Nov 2023 05:10:09 +0000 X-Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::b614:1f5e:8b0c:9858]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::b614:1f5e:8b0c:9858%4]) with mapi id 15.20.6954.019; Fri, 3 Nov 2023 05:10:09 +0000 From: "Ni, Ray" To: Chao Li , "devel@edk2.groups.io" CC: "Kinney, Michael D" , "Gao, Liming" , "Liu, Zhiguang" , "Dong, Eric" , "Kumar, Rahul R" , Gerd Hoffmann , Leif Lindholm , Ard Biesheuvel , Abner Chang , Daniel Schaefer , Sami Mujawar , "Yao, Jiewen" , "Justen, Jordan L" Subject: Re: [edk2-devel] [PATCH v1 00/29] Enable LoongArch virtual machine in edk2 Thread-Topic: [PATCH v1 00/29] Enable LoongArch virtual machine in edk2 Thread-Index: AQHaDfGKICzGsvtE7kuU96niXiWFCbBoC8o7 Date: Fri, 3 Nov 2023 05:10:09 +0000 Message-ID: References: <20231103010302.4052990-1-lichao@loongson.cn> In-Reply-To: <20231103010302.4052990-1-lichao@loongson.cn> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN6PR11MB8244:EE_|LV8PR11MB8746:EE_ x-ms-office365-filtering-correlation-id: 10d0d07f-2d20-46b7-aa27-08dbdc2b26bb x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: +Y5yn6muiQhNLDmxOrutdrbCNyDk8gpIuMHYW/5wrALcORuebkc/ZGWI7idDPgEHHBSXjwdG9jMJARTW/XnRwhpXLz+6y2zdPOKzi9HZYq3GHj6TNUjB7MqV0nsIFC7JqWInsUxXQrYWEEVpXv4a7Z0C4/FsmkiI/noHVuXWl6r4Q9VW/+cZFpzlFqbTIxlNg5Ae9nCuqVtIfNA9urck8K70Vmo13jONXCR4TmvxFcIkArC4QzlAPfrrL6zAWRQCVLcUjhaPi5GczZYZcFrg05MVVPu0jnp4ypIAcHhgDLQW5dzP7+ehcHpjCMK67u4FpfUjp4VTN4PWN7dGXg30CHnUCm70jQivA1xyKQ/du1fwcSfb+9fWnPIPyC7JrU/RuP/PURMXzY4d0ZETMM0PXaSMVzniZz3Vwp7CKg4fp/Y9ogRCj7m9Jw9zJ6GLx4NXyn5bJMmS8WKWvOrUgUknUDXUuljgX42HNvW4i7mknJqSXBeHHxJyiuarUU0Vq+oonUhhtc7FGjm+NsXDkwqb/MDgV9fKb7AWmU2xRwTppoXV0mR43ANIos4JmxJlTDKXoEmT/WqH3ZydmZ7BeGRbVLreCuIjE58AikwuUhYo9xc= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?zw+UwD9l4Acf1QiZi6kTA6ZNlDDXxbweLwDZoZLPddTIW4GLtAm3RqjeCDP2?= =?us-ascii?Q?coqtNtBuTG/z50OEm79RuVAFR/tes1jfXmtCumkBepjliR3cimd3dLdvj+MH?= =?us-ascii?Q?iTsW63Gyt1/ozVFb0z9FGMTrEmi8iOqZg1yKg47+IH9uCKMJKZm9peROZp/+?= =?us-ascii?Q?P3EjQsJp1H9gLheHUkvjXJvDVxYXmbPHBU35u2xHDH5GPd0qyJJF7yUait2X?= =?us-ascii?Q?tnWc+u9dG6c2F2DkW/Riq/O0y2HGYqgOzE6JrM6I3/ufpbYEpsJdgmAzdpyW?= =?us-ascii?Q?PylLfkyRTFQfkp8UkihE61ZfxahoQp9csCe5P5IBXdvo2Z3PjbOxDT4Hle17?= =?us-ascii?Q?jqT3shzYAkKfD/FjQPRkmnqFoIZNCeijMKa8eO23muIxTpqkgjOSL4QWpCSq?= =?us-ascii?Q?FI1GEs2ysSTAnrbCWp6EXytf6r+ABGPG/Cv4N3Qj7R8rQ+NmcKDvYutVfVos?= =?us-ascii?Q?vM8mk1+cXWSROOiE+ThyQ+AR2QfUzLFLUYOu2eaLCbVJFpVPeQgPYIUy48cw?= =?us-ascii?Q?954Rcs0w70ViA7iSrbGnO1RFXfeiN1g00vks8xwHj3VTkmxC0YH11hSLoPMv?= =?us-ascii?Q?q5AgRLiu4Pzu+O+ocrFvl8anCxCJLf/wO5P927apWCk37A+ath2phUdoeWqF?= =?us-ascii?Q?S/LFs0OdG+Rpzd0i4so85nJmG7VJPInPUL15SMO004cwJqVQ5+/3yD20NwY6?= =?us-ascii?Q?t76HaMTrd+m5ToNqlYa6yobL1GqwauS1tmWq0aP4Ptr0xHCL/tki/+eUSosr?= =?us-ascii?Q?EDOXoSJQzF8v4WPEy5IDg19jqtcr69UXAa6Rjj9hRCTuAmD/XMYocWhw37TF?= =?us-ascii?Q?XggCXmmLUu4mp4wfSpntMakrO1EnZSyMcRaQegn1GNY942Vk/PGxYPE6sCvJ?= =?us-ascii?Q?UjJ/wH6zWnX9vMYTlebAkwW9EbnOZ9WvyPnEUP6A8VGLZvzVi4bEij/dyKoF?= =?us-ascii?Q?GB3ExQYY050jNIZWQLUyBTHVhNkTS4M8n5FAlXRfezckpQXj5RhPRb15psiH?= =?us-ascii?Q?Um1O9XSMIFaVzvwMZn6eHTxy2yARR9iN6+YwNiWSOcgcjsM4Sqo1vxL3QWkT?= =?us-ascii?Q?e9rnV2iS0sqApjUqN99L1JXG8h4wy48NREYfjy2f7tLP1Ll69egAN3i6hTYp?= =?us-ascii?Q?6pQSDTR/1Axnn5kTAZzrMviwUl1d8BOmVqtovJ06ngCOKy+xLoRNTzsWvFgy?= =?us-ascii?Q?BADocv3lQKalqo+8n95gtaeB4eo5liaSygRyHCMEmN+Gzndvm38x3gXKcnLW?= =?us-ascii?Q?buOBS8xnl1aNJHvtz73IsC3POYRgOAElHGd9op/G0Oq5sFLqjVRtz01YUIIP?= =?us-ascii?Q?vXIkSYWLMbWyTB2hEVeANt7Mg3ZAKNARkeZOCkoGtfGBMcyvYkXRG2+uacQn?= =?us-ascii?Q?4ChG+2jisMHjqny3zvzTzsX2W9kfAIBzltdS0j1mtNB+NsZhz6zup9mrvw+o?= =?us-ascii?Q?yQ6Nrur+gYEjgEFBANwV4x9TYvZBtvlFTgRtlfSvLNKKNSEi3ik1KhieMRpk?= =?us-ascii?Q?+voQZAJqPwGQGXlqD4ZS1QJYuNB05B2FfWl51oXCnUvsf+p4nfZtL5UhZrIq?= =?us-ascii?Q?GHF+9b0n2HvTi0WbwgY=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 10d0d07f-2d20-46b7-aa27-08dbdc2b26bb X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2023 05:10:09.4452 (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: hQjrSRjYybdIEehpJEPoQ2MpSjuC9eps/aqvlgXzma674cnfyxDf7PrJfrScscnvb/ZCHFr6wClmpd8LekhNDg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR11MB8746 X-OriginatorOrg: intel.com Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,ray.ni@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: YFV8w7PIJtIrdABxF2C6neBlx7686176AA= Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_MN6PR11MB824416759900E6FABD3690028CA5AMN6PR11MB8244namp_" X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=gAKHMVO6; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io --_000_MN6PR11MB824416759900E6FABD3690028CA5AMN6PR11MB8244namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Chao, MpInitLib is to avoid code duplication between CpuMpPeim and CpuDxe. If you only need MP protocol but not MP PPI, do you still need to add MpIni= tLib? Can MpInitLib code be included in CpuDxe folder? Thanks, Ray ________________________________ From: Chao Li Sent: Friday, November 3, 2023 9:03 AM To: devel@edk2.groups.io Cc: Kinney, Michael D ; Gao, Liming ; Liu, Zhiguang ; Dong, Eric ; Ni, Ray ; Kumar, Rahul R ; Gerd Hoffmann ; Leif Lindholm ; Ard Biesheuvel ; Abner Chang ; Daniel Schaefer ; Sami Mujawar ; Yao, Jiewen ; Justen, Jordan L <= jordan.l.justen@intel.com> Subject: [PATCH v1 00/29] Enable LoongArch virtual machine in edk2 This patch set will enable LoongArch virtual machine in edk2, the new LoongArch virtual machine is located in OvmfPkg/LoongArchVirt/, it is a generic platform that dose not require any actual hardware. Patch1-Patch14: Submit the common library and driver for LoongArch virtual machine and real hardware. Such as base help functions, exception handel, MMU library, multiprocessor library etc. Patch15-Patch16: Add PrePiCpuIoSize for LoongArch64. and move ArmVirtPkg two PCDs into OvmfPkg for easier use by other architectures. Patch17-Patch29: LoongArch virtual machine private code, include SEC and PEI phase code, some library and drivers. Modfied modues: MdePkg, UefiCpuPkg, EmbeddedPkg, ArmVirtPkg, OvmfPkg. BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4584 Cc: Michael D Kinney Cc: Liming Gao Cc: Zhiguang Liu Cc: Eric Dong Cc: Ray Ni Cc: Rahul Kumar Cc: Gerd Hoffmann Cc: Leif Lindholm Cc: Ard Biesheuvel Cc: Abner Chang Cc: Daniel Schaefer Cc: Sami Mujawar Cc: Jiewen Yao Cc: Jordan Justen Chao Li (29): MdePkg: Add the header file named Csr.h for LoongArch64 MdePkg: Add LoongArch64 FPU function set into BaseCpuLib MdePkg: Add LoongArch64 exception function set into BaseLib MdePkg: Add LoongArch64 local interrupt function set into BaseLib MdePkg: Add LoongArch Cpucfg function MdePkg: Add read stable counter operation for LoongArch MdePkg: Add CSR operation for LoongArch MdePkg: Add IOCSR operation for LoongArch UefiCpuPkg: Add LoongArch64 CPU Timer library UefiCpuPkg: Add CPU exception library for LoongArch UefiCpuPkg: Add CpuMmuLib.h to UefiCpuPkg UefiCpuPkg: Add LoongArch64CpuMmuLib to UefiCpuPkg UefiCpuPkg: Add multiprocessor library for LoongArch64 UefiCpuPkg: Add CpuDxe driver for LoongArch64 EmbeddedPkg: Add PcdPrePiCpuIoSize width for LOONGARCH64 ArmVirtPkg: Move PCD of FDT base address and FDT padding to OvmfPkg OvmfPkg/LoongArchVirt: Add PciCpuIo2Dxe module OvmfPkg/LoongArchVirt: Add stable timer driver OvmfPkg/LoongArchVirt: Add a NULL library named CollectApResouceLibNull OvmfPkg/LoongArchVirt: Add serial port library OvmfPkg/LoongArchVirt: Add real time clock library OvmfPkg/LoongArchVirt: Add NorFlashQemuLib OvmfPkg/LoongArchVirt: Add PeiServiceTablePointerLib OvmfPkg/LoongArchVirt: Add platform boot manager library OvmfPkg/LoongArchVirt: Add FdtQemuFwCfgLib OvmfPkg/LoongArchVirt: Add reset system library OvmfPkg/LoongArchVirt: Support SEC phase OvmfPkg/LoongArchVirt: Support PEI phase OvmfPkg/LoongArchVirt: Add build file ArmVirtPkg/ArmVirtCloudHv.dsc | 2 +- ArmVirtPkg/ArmVirtKvmTool.dsc | 2 +- ArmVirtPkg/ArmVirtPkg.dec | 14 - ArmVirtPkg/ArmVirtQemu.dsc | 2 +- ArmVirtPkg/ArmVirtQemuKernel.dsc | 2 +- ArmVirtPkg/ArmVirtXen.dsc | 2 +- .../ArmVirtPsciResetSystemPeiLib.inf | 3 +- .../CloudHvVirtMemInfoPeiLib.inf | 3 +- .../DebugLibFdtPL011UartFlash.inf | 3 +- .../EarlyFdt16550SerialPortHookLib.inf | 3 +- .../EarlyFdtPL011SerialPortLib.inf | 3 +- .../KvmtoolPlatformPeiLib.inf | 5 +- .../Library/PlatformPeiLib/PlatformPeiLib.inf | 10 +- .../QemuVirtMemInfoPeiLib.inf | 3 +- .../PrePi/ArmVirtPrePiUniCoreRelocatable.inf | 3 +- EmbeddedPkg/EmbeddedPkg.dec | 3 + MdePkg/Include/Library/BaseLib.h | 221 +++ MdePkg/Include/Library/CpuLib.h | 37 +- MdePkg/Include/Protocol/DebugSupport.h | 76 +- MdePkg/Include/Register/LoongArch64/Cpucfg.h | 565 ++++++ MdePkg/Include/Register/LoongArch64/Csr.h | 221 +++ MdePkg/Library/BaseCpuLib/BaseCpuLib.inf | 7 +- .../Library/BaseCpuLib/LoongArch/DisableFpu.S | 17 + .../Library/BaseCpuLib/LoongArch/EnableFpu.S | 17 + .../BaseCpuLib/LoongArch/InitializeFpu.S | 51 + MdePkg/Library/BaseLib/BaseLib.inf | 6 + MdePkg/Library/BaseLib/LoongArch64/AsmCsr.S | 422 +++++ MdePkg/Library/BaseLib/LoongArch64/Cpucfg.S | 26 + MdePkg/Library/BaseLib/LoongArch64/Csr.c | 81 + .../BaseLib/LoongArch64/DisableInterrupts.S | 22 +- .../BaseLib/LoongArch64/EnableInterrupts.S | 22 +- .../BaseLib/LoongArch64/ExceptionBase.S | 41 + MdePkg/Library/BaseLib/LoongArch64/IoCsr.S | 120 ++ .../BaseLib/LoongArch64/ReadStableCounter.S | 24 + MdePkg/MdePkg.ci.yaml | 3 +- .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c | 547 ++++++ .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf | 45 + .../Drivers/StableTimerDxe/Timer.c | 381 ++++ .../Drivers/StableTimerDxe/Timer.h | 127 ++ .../Drivers/StableTimerDxe/TimerDxe.inf | 41 + .../CollectApResourceLibNull.c | 35 + .../CollectApResourceLibNull.inf | 32 + .../CollectApResourceLibNull.uni | 9 + .../EarlyFdtSerialPortLib16550.c | 824 +++++++++ .../EarlyFdtSerialPortLib16550.inf | 47 + .../EarlyFdt16550SerialPortHookLib.c | 136 ++ .../EarlyFdt16550SerialPortHookLib.inf | 36 + .../Fdt16550SerialPortHookLib.c | 41 + .../Fdt16550SerialPortHookLib.inf | 33 + .../Fdt16550SerialPortHookLib.uni | 13 + .../FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.c | 505 ++++++ .../FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.inf | 42 + .../FdtQemuFwCfgLib/QemuFwCfgLibInternal.h | 73 + .../Library/FdtQemuFwCfgLib/QemuFwCfgPei.c | 117 ++ .../DxeLsRealTimeClockLib.c | 333 ++++ .../DxeLsRealTimeClockLib.inf | 42 + .../LsRealTimeClockLib/LsRealTimeClock.h | 47 + .../PeiLsRealTimeClockLib.c | 31 + .../PeiLsRealTimeClockLib.inf | 29 + .../Library/NorFlashQemuLib/NorFlashQemuLib.c | 140 ++ .../NorFlashQemuLib/NorFlashQemuLib.inf | 43 + .../PeiServicesTablePointer.c | 75 + .../PeiServicesTablePointerLib.inf | 31 + .../PlatformBootManagerLib/PlatformBm.c | 829 +++++++++ .../PlatformBootManagerLib/PlatformBm.h | 112 ++ .../PlatformBootManagerLib.inf | 73 + .../PlatformBootManagerLib/QemuKernel.c | 81 + .../BaseResetSystemAcpiGed.c | 148 ++ .../BaseResetSystemAcpiGedLib.inf | 37 + .../DxeResetSystemAcpiGed.c | 259 +++ .../DxeResetSystemAcpiGedLib.inf | 41 + .../ResetSystemAcpiLib/ResetSystemAcpiGed.c | 128 ++ .../ResetSystemAcpiLib/ResetSystemAcpiGed.h | 23 + OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc | 34 + OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc | 675 +++++++ OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf | 313 ++++ OvmfPkg/LoongArchVirt/PlatformPei/Fv.c | 40 + OvmfPkg/LoongArchVirt/PlatformPei/MemDetect.c | 203 +++ OvmfPkg/LoongArchVirt/PlatformPei/Platform.c | 393 ++++ OvmfPkg/LoongArchVirt/PlatformPei/Platform.h | 128 ++ .../LoongArchVirt/PlatformPei/PlatformPei.inf | 72 + OvmfPkg/LoongArchVirt/Sec/LoongArch64/Start.S | 176 ++ OvmfPkg/LoongArchVirt/Sec/SecMain.c | 507 ++++++ OvmfPkg/LoongArchVirt/Sec/SecMain.inf | 53 + OvmfPkg/LoongArchVirt/VarStore.fdf.inc | 67 + OvmfPkg/OvmfPkg.dec | 15 + UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c | 440 +++++ UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h | 261 +++ UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf | 60 + UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.uni | 15 + UefiCpuPkg/CpuDxeLoongArch64/CpuMp.c | 544 ++++++ UefiCpuPkg/CpuDxeLoongArch64/CpuMp.h | 471 +++++ UefiCpuPkg/CpuDxeLoongArch64/Exception.c | 150 ++ UefiCpuPkg/Include/Library/CpuMmuLib.h | 194 ++ .../BaseLoongArch64CpuTimerLib.inf | 30 + .../BaseLoongArch64CpuTimerLib.uni | 15 + .../BaseLoongArch64CpuTimerLib/CpuTimerLib.c | 226 +++ .../DxeCpuExceptionHandlerLib.inf | 45 + .../DxeCpuExceptionHandlerLib.uni | 15 + .../DxeExceptionLib.c | 202 +++ .../ExceptionCommon.c | 170 ++ .../ExceptionCommon.h | 111 ++ .../LoongArch64/ArchExceptionHandler.c | 214 +++ .../LoongArch64/ExceptionHandlerAsm.S | 320 ++++ .../SecPeiCpuExceptionHandlerLib.inf | 45 + .../SecPeiCpuExceptionHandlerLib.uni | 15 + .../SecPeiExceptionLib.c | 90 + .../LoongArch64CpuMmuLib/CommonMmuLib.c | 963 ++++++++++ .../LoongArch64CpuMmuLib/CommonMmuLib.h | 43 + .../LoongArch64CpuMmuLib/DxeCpuMmuLib.inf | 37 + .../LoongArch64CpuMmuLib/DxeCpuMmuLib.uni | 14 + .../Library/LoongArch64CpuMmuLib/Page.h | 279 +++ .../LoongArch64CpuMmuLib/PeiCpuMmuLib.c | 165 ++ .../LoongArch64CpuMmuLib/PeiCpuMmuLib.inf | 44 + .../LoongArch64CpuMmuLib/PeiCpuMmuLib.uni | 14 + UefiCpuPkg/Library/LoongArch64CpuMmuLib/Tlb.h | 48 + .../LoongArch64CpuMmuLib/TlbOperation.S | 44 + .../LoongArch64MpInitLib/DxeMpInitLib.inf | 45 + .../LoongArch64MpInitLib/DxeMpInitLib.uni | 15 + .../Library/LoongArch64MpInitLib/DxeMpLib.c | 481 +++++ .../Library/LoongArch64MpInitLib/MpLib.c | 1596 +++++++++++++++++ .../Library/LoongArch64MpInitLib/MpLib.h | 361 ++++ .../LoongArch64MpInitLib/PeiMpInitLib.inf | 37 + .../LoongArch64MpInitLib/PeiMpInitLib.uni | 15 + .../Library/LoongArch64MpInitLib/PeiMpLib.c | 404 +++++ UefiCpuPkg/UefiCpuPkg.dec | 10 + UefiCpuPkg/UefiCpuPkg.dsc | 10 + 127 files changed, 18478 insertions(+), 84 deletions(-) create mode 100644 MdePkg/Include/Register/LoongArch64/Cpucfg.h create mode 100644 MdePkg/Include/Register/LoongArch64/Csr.h create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/DisableFpu.S create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/EnableFpu.S create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/InitializeFpu.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/AsmCsr.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/Cpucfg.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/Csr.c create mode 100644 MdePkg/Library/BaseLib/LoongArch64/ExceptionBase.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/IoCsr.S create mode 100644 MdePkg/Library/BaseLib/LoongArch64/ReadStableCounter.S create mode 100644 OvmfPkg/LoongArchVirt/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe= .c create mode 100644 OvmfPkg/LoongArchVirt/Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe= .inf create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/Timer.c create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/Timer.h create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/TimerDxe.i= nf create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/C= ollectApResourceLibNull.c create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/C= ollectApResourceLibNull.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibNull/C= ollectApResourceLibNull.uni create mode 100644 OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib1655= 0/EarlyFdtSerialPortLib16550.c create mode 100644 OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLib1655= 0/EarlyFdtSerialPortLib16550.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib= /EarlyFdt16550SerialPortHookLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib= /EarlyFdt16550SerialPortHookLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib= /Fdt16550SerialPortHookLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib= /Fdt16550SerialPortHookLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHookLib= /Fdt16550SerialPortHookLib.uni create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQemuFw= CfgPeiLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQemuFw= CfgPeiLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/QemuFwCfg= LibInternal.h create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/QemuFwCfg= Pei.c create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/DxeLsR= ealTimeClockLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/DxeLsR= ealTimeClockLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/LsReal= TimeClock.h create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/PeiLsR= ealTimeClockLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/PeiLsR= ealTimeClockLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/NorFlashQemuLib/NorFlashQ= emuLib.c create mode 100644 OvmfPkg/LoongArchVirt/Library/NorFlashQemuLib/NorFlashQ= emuLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/PeiServicesTablePointerLi= b/PeiServicesTablePointer.c create mode 100644 OvmfPkg/LoongArchVirt/Library/PeiServicesTablePointerLi= b/PeiServicesTablePointerLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/Pl= atformBm.c create mode 100644 OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/Pl= atformBm.h create mode 100644 OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/Pl= atformBootManagerLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/PlatformBootManagerLib/Qe= muKernel.c create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseRe= setSystemAcpiGed.c create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/BaseRe= setSystemAcpiGedLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeRes= etSystemAcpiGed.c create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/DxeRes= etSystemAcpiGedLib.inf create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/ResetS= ystemAcpiGed.c create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/ResetS= ystemAcpiGed.h create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Fv.c create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/MemDetect.c create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Platform.c create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Platform.h create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/PlatformPei.inf create mode 100644 OvmfPkg/LoongArchVirt/Sec/LoongArch64/Start.S create mode 100644 OvmfPkg/LoongArchVirt/Sec/SecMain.c create mode 100644 OvmfPkg/LoongArchVirt/Sec/SecMain.inf create mode 100644 OvmfPkg/LoongArchVirt/VarStore.fdf.inc create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.uni create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.c create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.h create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/Exception.c create mode 100644 UefiCpuPkg/Include/Library/CpuMmuLib.h create mode 100644 UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/BaseLoong= Arch64CpuTimerLib.inf create mode 100644 UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/BaseLoong= Arch64CpuTimerLib.uni create mode 100644 UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/CpuTimerL= ib.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/Dx= eCpuExceptionHandlerLib.inf create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/Dx= eCpuExceptionHandlerLib.uni create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/Dx= eExceptionLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/Ex= ceptionCommon.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/Ex= ceptionCommon.h create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/Lo= ongArch64/ArchExceptionHandler.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/Lo= ongArch64/ExceptionHandlerAsm.S create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/Se= cPeiCpuExceptionHandlerLib.inf create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/Se= cPeiCpuExceptionHandlerLib.uni create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerLib/Se= cPeiExceptionLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/CommonMmuLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/CommonMmuLib.h create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/DxeCpuMmuLib.in= f create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/DxeCpuMmuLib.un= i create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/Page.h create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuLib.in= f create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuLib.un= i create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/Tlb.h create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/TlbOperation.S create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpInitLib.in= f create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpInitLib.un= i create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/MpLib.c create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/MpLib.h create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpInitLib.in= f create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpInitLib.un= i create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpLib.c -- 2.27.0 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110604): https://edk2.groups.io/g/devel/message/110604 Mute This Topic: https://groups.io/mt/102355705/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/19134562= 12/xyzzy [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- --_000_MN6PR11MB824416759900E6FABD3690028CA5AMN6PR11MB8244namp_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
Chao,
MpInitLib is to avoid code duplication between CpuMpPeim and CpuDxe.
If you only need MP protocol but not MP PPI, do you still need to add MpIni= tLib?
Can MpInitLib code be included in CpuDxe folder?

Thanks,
Ray

From: Chao Li <lichao@lo= ongson.cn>
Sent: Friday, November 3, 2023 9:03 AM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Limin= g <gaoliming@byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu@intel.co= m>; Dong, Eric <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com= >; Kumar, Rahul R <rahul.r.kumar@intel.com>; Gerd Hoffmann <kraxel@redhat.com>; Leif Lindholm <quic_llindhol@quicinc.com>= ; Ard Biesheuvel <ardb+tianocore@kernel.org>; Abner Chang <abner.c= hang@amd.com>; Daniel Schaefer <git@danielschaefer.me>; Sami Mujaw= ar <sami.mujawar@arm.com>; Yao, Jiewen <jiewen.yao@intel.com>; Justen, Jordan L <jordan.l.justen@intel.com>
Subject: [PATCH v1 00/29] Enable LoongArch virtual machine in edk2
 
This patch set will enable LoongArch virtual machi= ne in edk2, the new
LoongArch virtual machine is located in OvmfPkg/LoongArchVirt/, it is a
generic platform that dose not require any actual hardware.

Patch1-Patch14: Submit the common library and driver for LoongArch
virtual machine and real hardware. Such as base help functions,
exception handel, MMU library, multiprocessor library etc.

Patch15-Patch16: Add PrePiCpuIoSize for LoongArch64. and move ArmVirtPkg two PCDs into OvmfPkg for easier use by other architectures.

Patch17-Patch29: LoongArch virtual machine private code, include SEC and PEI phase code, some library and drivers.

Modfied modues: MdePkg, UefiCpuPkg, EmbeddedPkg, ArmVirtPkg, OvmfPkg.

BZ: https= ://bugzilla.tianocore.org/show_bug.cgi?id=3D4584

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Leif Lindholm <quic_llindhol@quicinc.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Abner Chang <abner.chang@amd.com>
Cc: Daniel Schaefer <git@danielschaefer.me>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>

Chao Li (29):
  MdePkg: Add the header file named Csr.h for LoongArch64
  MdePkg: Add LoongArch64 FPU function set into BaseCpuLib
  MdePkg: Add LoongArch64 exception function set into BaseLib
  MdePkg: Add LoongArch64 local interrupt function set into BaseLib   MdePkg: Add LoongArch Cpucfg function
  MdePkg: Add read stable counter operation for LoongArch
  MdePkg: Add CSR operation for LoongArch
  MdePkg: Add IOCSR operation for LoongArch
  UefiCpuPkg: Add LoongArch64 CPU Timer library
  UefiCpuPkg: Add CPU exception library for LoongArch
  UefiCpuPkg: Add CpuMmuLib.h to UefiCpuPkg
  UefiCpuPkg: Add LoongArch64CpuMmuLib to UefiCpuPkg
  UefiCpuPkg: Add multiprocessor library for LoongArch64
  UefiCpuPkg: Add CpuDxe driver for LoongArch64
  EmbeddedPkg: Add PcdPrePiCpuIoSize width for LOONGARCH64
  ArmVirtPkg: Move PCD of FDT base address and FDT padding to OvmfPkg<= br>   OvmfPkg/LoongArchVirt: Add PciCpuIo2Dxe module
  OvmfPkg/LoongArchVirt: Add stable timer driver
  OvmfPkg/LoongArchVirt: Add a NULL library named
    CollectApResouceLibNull
  OvmfPkg/LoongArchVirt: Add serial port library
  OvmfPkg/LoongArchVirt: Add real time clock library
  OvmfPkg/LoongArchVirt: Add NorFlashQemuLib
  OvmfPkg/LoongArchVirt: Add PeiServiceTablePointerLib
  OvmfPkg/LoongArchVirt: Add platform boot manager library
  OvmfPkg/LoongArchVirt: Add FdtQemuFwCfgLib
  OvmfPkg/LoongArchVirt: Add reset system library
  OvmfPkg/LoongArchVirt: Support SEC phase
  OvmfPkg/LoongArchVirt: Support PEI phase
  OvmfPkg/LoongArchVirt: Add build file

 ArmVirtPkg/ArmVirtCloudHv.dsc      &nbs= p;          |   = ; 2 +-
 ArmVirtPkg/ArmVirtKvmTool.dsc      &nbs= p;          |   = ; 2 +-
 ArmVirtPkg/ArmVirtPkg.dec       &n= bsp;            = ; |   14 -
 ArmVirtPkg/ArmVirtQemu.dsc       &= nbsp;            |&n= bsp;   2 +-
 ArmVirtPkg/ArmVirtQemuKernel.dsc      &= nbsp;       |    2 +-
 ArmVirtPkg/ArmVirtXen.dsc       &n= bsp;            = ; |    2 +-
 .../ArmVirtPsciResetSystemPeiLib.inf     &nb= sp;    |    3 +-
 .../CloudHvVirtMemInfoPeiLib.inf      &= nbsp;       |    3 +-
 .../DebugLibFdtPL011UartFlash.inf      =        |    3 +-
 .../EarlyFdt16550SerialPortHookLib.inf     &= nbsp;  |    3 +-
 .../EarlyFdtPL011SerialPortLib.inf      = ;      |    3 +-
 .../KvmtoolPlatformPeiLib.inf      &nbs= p;          |   = ; 5 +-
 .../Library/PlatformPeiLib/PlatformPeiLib.inf |   10 +-
 .../QemuVirtMemInfoPeiLib.inf      &nbs= p;          |   = ; 3 +-
 .../PrePi/ArmVirtPrePiUniCoreRelocatable.inf  |   = ; 3 +-
 EmbeddedPkg/EmbeddedPkg.dec       =             | &= nbsp;  3 +
 MdePkg/Include/Library/BaseLib.h      &= nbsp;       |  221 +++
 MdePkg/Include/Library/CpuLib.h      &n= bsp;        |   37 +-
 MdePkg/Include/Protocol/DebugSupport.h     &= nbsp;  |   76 +-
 MdePkg/Include/Register/LoongArch64/Cpucfg.h  |  565 ++++++=
 MdePkg/Include/Register/LoongArch64/Csr.h     |&n= bsp; 221 +++
 MdePkg/Library/BaseCpuLib/BaseCpuLib.inf     = ; |    7 +-
 .../Library/BaseCpuLib/LoongArch/DisableFpu.S |   17 +
 .../Library/BaseCpuLib/LoongArch/EnableFpu.S  |   17 +=
 .../BaseCpuLib/LoongArch/InitializeFpu.S     = ; |   51 +
 MdePkg/Library/BaseLib/BaseLib.inf      = ;      |    6 +
 MdePkg/Library/BaseLib/LoongArch64/AsmCsr.S   |  422 += ++++
 MdePkg/Library/BaseLib/LoongArch64/Cpucfg.S   |  = 26 +
 MdePkg/Library/BaseLib/LoongArch64/Csr.c     = ; |   81 +
 .../BaseLib/LoongArch64/DisableInterrupts.S   |  = 22 +-
 .../BaseLib/LoongArch64/EnableInterrupts.S    | &= nbsp; 22 +-
 .../BaseLib/LoongArch64/ExceptionBase.S     =   |   41 +
 MdePkg/Library/BaseLib/LoongArch64/IoCsr.S    |  = 120 ++
 .../BaseLib/LoongArch64/ReadStableCounter.S   |  = 24 +
 MdePkg/MdePkg.ci.yaml        =             &nb= sp;    |    3 +-
 .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.c     =   |  547 ++++++
 .../Drivers/PciCpuIo2Dxe/PciCpuIo2Dxe.inf     |&n= bsp;  45 +
 .../Drivers/StableTimerDxe/Timer.c      = ;      |  381 ++++
 .../Drivers/StableTimerDxe/Timer.h      = ;      |  127 ++
 .../Drivers/StableTimerDxe/TimerDxe.inf     =   |   41 +
 .../CollectApResourceLibNull.c      &nb= sp;         |   35 +
 .../CollectApResourceLibNull.inf      &= nbsp;       |   32 +
 .../CollectApResourceLibNull.uni      &= nbsp;       |    9 +
 .../EarlyFdtSerialPortLib16550.c      &= nbsp;       |  824 +++++++++
 .../EarlyFdtSerialPortLib16550.inf      = ;      |   47 +
 .../EarlyFdt16550SerialPortHookLib.c     &nb= sp;    |  136 ++
 .../EarlyFdt16550SerialPortHookLib.inf     &= nbsp;  |   36 +
 .../Fdt16550SerialPortHookLib.c      &n= bsp;        |   41 +
 .../Fdt16550SerialPortHookLib.inf      =        |   33 +
 .../Fdt16550SerialPortHookLib.uni      =        |   13 +
 .../FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.c     = ; |  505 ++++++
 .../FdtQemuFwCfgLib/FdtQemuFwCfgPeiLib.inf    | &= nbsp; 42 +
 .../FdtQemuFwCfgLib/QemuFwCfgLibInternal.h    | &= nbsp; 73 +
 .../Library/FdtQemuFwCfgLib/QemuFwCfgPei.c    |  = 117 ++
 .../DxeLsRealTimeClockLib.c       =             |  = 333 ++++
 .../DxeLsRealTimeClockLib.inf      &nbs= p;          |   42 +=
 .../LsRealTimeClockLib/LsRealTimeClock.h     = ; |   47 +
 .../PeiLsRealTimeClockLib.c       =             | &= nbsp; 31 +
 .../PeiLsRealTimeClockLib.inf      &nbs= p;          |   29 +=
 .../Library/NorFlashQemuLib/NorFlashQemuLib.c |  140 ++
 .../NorFlashQemuLib/NorFlashQemuLib.inf     =   |   43 +
 .../PeiServicesTablePointer.c      &nbs= p;          |   75 +=
 .../PeiServicesTablePointerLib.inf      = ;      |   31 +
 .../PlatformBootManagerLib/PlatformBm.c     =   |  829 +++++++++
 .../PlatformBootManagerLib/PlatformBm.h     =   |  112 ++
 .../PlatformBootManagerLib.inf      &nb= sp;         |   73 +
 .../PlatformBootManagerLib/QemuKernel.c     =   |   81 +
 .../BaseResetSystemAcpiGed.c       = ;           |  148 += +
 .../BaseResetSystemAcpiGedLib.inf      =        |   37 +
 .../DxeResetSystemAcpiGed.c       =             |  = 259 +++
 .../DxeResetSystemAcpiGedLib.inf      &= nbsp;       |   41 +
 .../ResetSystemAcpiLib/ResetSystemAcpiGed.c   |  128 += +
 .../ResetSystemAcpiLib/ResetSystemAcpiGed.h   |  = 23 +
 OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc   |  = 34 +
 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc   |  675 += ++++++
 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf   |  313 += +++
 OvmfPkg/LoongArchVirt/PlatformPei/Fv.c     &= nbsp;  |   40 +
 OvmfPkg/LoongArchVirt/PlatformPei/MemDetect.c |  203 +++
 OvmfPkg/LoongArchVirt/PlatformPei/Platform.c  |  393 ++++  OvmfPkg/LoongArchVirt/PlatformPei/Platform.h  |  128 ++
 .../LoongArchVirt/PlatformPei/PlatformPei.inf |   72 +
 OvmfPkg/LoongArchVirt/Sec/LoongArch64/Start.S |  176 ++
 OvmfPkg/LoongArchVirt/Sec/SecMain.c     &nbs= p;     |  507 ++++++
 OvmfPkg/LoongArchVirt/Sec/SecMain.inf     &n= bsp;   |   53 +
 OvmfPkg/LoongArchVirt/VarStore.fdf.inc     &= nbsp;  |   67 +
 OvmfPkg/OvmfPkg.dec        &n= bsp;            = ;      |   15 +
 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c     &n= bsp;   |  440 +++++
 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h     &n= bsp;   |  261 +++
 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf     =   |   60 +
 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.uni     =   |   15 +
 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.c     &nb= sp;    |  544 ++++++
 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.h     &nb= sp;    |  471 +++++
 UefiCpuPkg/CpuDxeLoongArch64/Exception.c     = ; |  150 ++
 UefiCpuPkg/Include/Library/CpuMmuLib.h     &= nbsp;  |  194 ++
 .../BaseLoongArch64CpuTimerLib.inf      = ;      |   30 +
 .../BaseLoongArch64CpuTimerLib.uni      = ;      |   15 +
 .../BaseLoongArch64CpuTimerLib/CpuTimerLib.c  |  226 +++  .../DxeCpuExceptionHandlerLib.inf      =        |   45 +
 .../DxeCpuExceptionHandlerLib.uni      =        |   15 +
 .../DxeExceptionLib.c        =             &nb= sp;    |  202 +++
 .../ExceptionCommon.c        =             &nb= sp;    |  170 ++
 .../ExceptionCommon.h        =             &nb= sp;    |  111 ++
 .../LoongArch64/ArchExceptionHandler.c     &= nbsp;  |  214 +++
 .../LoongArch64/ExceptionHandlerAsm.S     &n= bsp;   |  320 ++++
 .../SecPeiCpuExceptionHandlerLib.inf     &nb= sp;    |   45 +
 .../SecPeiCpuExceptionHandlerLib.uni     &nb= sp;    |   15 +
 .../SecPeiExceptionLib.c       &nb= sp;            =   |   90 +
 .../LoongArch64CpuMmuLib/CommonMmuLib.c     =   |  963 ++++++++++
 .../LoongArch64CpuMmuLib/CommonMmuLib.h     =   |   43 +
 .../LoongArch64CpuMmuLib/DxeCpuMmuLib.inf     |&n= bsp;  37 +
 .../LoongArch64CpuMmuLib/DxeCpuMmuLib.uni     |&n= bsp;  14 +
 .../Library/LoongArch64CpuMmuLib/Page.h     =   |  279 +++
 .../LoongArch64CpuMmuLib/PeiCpuMmuLib.c     =   |  165 ++
 .../LoongArch64CpuMmuLib/PeiCpuMmuLib.inf     |&n= bsp;  44 +
 .../LoongArch64CpuMmuLib/PeiCpuMmuLib.uni     |&n= bsp;  14 +
 UefiCpuPkg/Library/LoongArch64CpuMmuLib/Tlb.h |   48 +
 .../LoongArch64CpuMmuLib/TlbOperation.S     =   |   44 +
 .../LoongArch64MpInitLib/DxeMpInitLib.inf     |&n= bsp;  45 +
 .../LoongArch64MpInitLib/DxeMpInitLib.uni     |&n= bsp;  15 +
 .../Library/LoongArch64MpInitLib/DxeMpLib.c   |  481 += ++++
 .../Library/LoongArch64MpInitLib/MpLib.c     = ; | 1596 +++++++++++++++++
 .../Library/LoongArch64MpInitLib/MpLib.h     = ; |  361 ++++
 .../LoongArch64MpInitLib/PeiMpInitLib.inf     |&n= bsp;  37 +
 .../LoongArch64MpInitLib/PeiMpInitLib.uni     |&n= bsp;  15 +
 .../Library/LoongArch64MpInitLib/PeiMpLib.c   |  404 += ++++
 UefiCpuPkg/UefiCpuPkg.dec       &n= bsp;            = ; |   10 +
 UefiCpuPkg/UefiCpuPkg.dsc       &n= bsp;            = ; |   10 +
 127 files changed, 18478 insertions(+), 84 deletions(-)
 create mode 100644 MdePkg/Include/Register/LoongArch64/Cpucfg.h
 create mode 100644 MdePkg/Include/Register/LoongArch64/Csr.h
 create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/DisableFpu.S  create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/EnableFpu.S  create mode 100644 MdePkg/Library/BaseCpuLib/LoongArch/InitializeFpu.= S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/AsmCsr.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/Cpucfg.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/Csr.c
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/ExceptionBase.S=
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/IoCsr.S
 create mode 100644 MdePkg/Library/BaseLib/LoongArch64/ReadStableCount= er.S
 create mode 100644 OvmfPkg/LoongArchVirt/Drivers/PciCpuIo2Dxe/PciCpuI= o2Dxe.c
 create mode 100644 OvmfPkg/LoongArchVirt/Drivers/PciCpuIo2Dxe/PciCpuI= o2Dxe.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/Timer= .c
 create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/Timer= .h
 create mode 100644 OvmfPkg/LoongArchVirt/Drivers/StableTimerDxe/Timer= Dxe.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibN= ull/CollectApResourceLibNull.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibN= ull/CollectApResourceLibNull.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/CollectApResouceLibN= ull/CollectApResourceLibNull.uni
 create mode 100644 OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLi= b16550/EarlyFdtSerialPortLib16550.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/EarlyFdtSerialPortLi= b16550/EarlyFdtSerialPortLib16550.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHo= okLib/EarlyFdt16550SerialPortHookLib.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHo= okLib/EarlyFdt16550SerialPortHookLib.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHo= okLib/Fdt16550SerialPortHookLib.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHo= okLib/Fdt16550SerialPortHookLib.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/Fdt16550SerialPortHo= okLib/Fdt16550SerialPortHookLib.uni
 create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQ= emuFwCfgPeiLib.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/FdtQ= emuFwCfgPeiLib.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/Qemu= FwCfgLibInternal.h
 create mode 100644 OvmfPkg/LoongArchVirt/Library/FdtQemuFwCfgLib/Qemu= FwCfgPei.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/D= xeLsRealTimeClockLib.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/D= xeLsRealTimeClockLib.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/L= sRealTimeClock.h
 create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/P= eiLsRealTimeClockLib.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/LsRealTimeClockLib/P= eiLsRealTimeClockLib.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/NorFlashQemuLib/NorF= lashQemuLib.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/NorFlashQemuLib/NorF= lashQemuLib.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/PeiServicesTablePoin= terLib/PeiServicesTablePointer.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/PeiServicesTablePoin= terLib/PeiServicesTablePointerLib.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/PlatformBootManagerL= ib/PlatformBm.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/PlatformBootManagerL= ib/PlatformBm.h
 create mode 100644 OvmfPkg/LoongArchVirt/Library/PlatformBootManagerL= ib/PlatformBootManagerLib.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/PlatformBootManagerL= ib/QemuKernel.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/B= aseResetSystemAcpiGed.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/B= aseResetSystemAcpiGedLib.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/D= xeResetSystemAcpiGed.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/D= xeResetSystemAcpiGedLib.inf
 create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/R= esetSystemAcpiGed.c
 create mode 100644 OvmfPkg/LoongArchVirt/Library/ResetSystemAcpiLib/R= esetSystemAcpiGed.h
 create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirt.fdf.inc
 create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc
 create mode 100644 OvmfPkg/LoongArchVirt/LoongArchVirtQemu.fdf
 create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Fv.c
 create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/MemDetect.c
 create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Platform.c
 create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/Platform.h
 create mode 100644 OvmfPkg/LoongArchVirt/PlatformPei/PlatformPei.inf<= br>  create mode 100644 OvmfPkg/LoongArchVirt/Sec/LoongArch64/Start.S
 create mode 100644 OvmfPkg/LoongArchVirt/Sec/SecMain.c
 create mode 100644 OvmfPkg/LoongArchVirt/Sec/SecMain.inf
 create mode 100644 OvmfPkg/LoongArchVirt/VarStore.fdf.inc
 create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.c
 create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.h
 create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.inf
 create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuDxe.uni
 create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.c
 create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/CpuMp.h
 create mode 100644 UefiCpuPkg/CpuDxeLoongArch64/Exception.c
 create mode 100644 UefiCpuPkg/Include/Library/CpuMmuLib.h
 create mode 100644 UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/Base= LoongArch64CpuTimerLib.inf
 create mode 100644 UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/Base= LoongArch64CpuTimerLib.uni
 create mode 100644 UefiCpuPkg/Library/BaseLoongArch64CpuTimerLib/CpuT= imerLib.c
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerL= ib/DxeCpuExceptionHandlerLib.inf
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerL= ib/DxeCpuExceptionHandlerLib.uni
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerL= ib/DxeExceptionLib.c
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerL= ib/ExceptionCommon.c
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerL= ib/ExceptionCommon.h
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerL= ib/LoongArch64/ArchExceptionHandler.c
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerL= ib/LoongArch64/ExceptionHandlerAsm.S
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerL= ib/SecPeiCpuExceptionHandlerLib.inf
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerL= ib/SecPeiCpuExceptionHandlerLib.uni
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuExceptionHandlerL= ib/SecPeiExceptionLib.c
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/CommonMmuL= ib.c
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/CommonMmuL= ib.h
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/DxeCpuMmuL= ib.inf
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/DxeCpuMmuL= ib.uni
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/Page.h
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuL= ib.c
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuL= ib.inf
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/PeiCpuMmuL= ib.uni
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/Tlb.h
 create mode 100644 UefiCpuPkg/Library/LoongArch64CpuMmuLib/TlbOperati= on.S
 create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpInitL= ib.inf
 create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpInitL= ib.uni
 create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/DxeMpLib.c=
 create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/MpLib.c  create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/MpLib.h  create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpInitL= ib.inf
 create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpInitL= ib.uni
 create mode 100644 UefiCpuPkg/Library/LoongArch64MpInitLib/PeiMpLib.c=

--
2.27.0

_._,_._,_

Groups.io Links:

=20 You receive all messages sent to this group. =20 =20

View/Reply Online (#110604) | =20 | Mute= This Topic | New Topic
Your Subscriptio= n | Contact Group Owner | Unsubscribe [rebecca@openfw.io]

_._,_._,_
--_000_MN6PR11MB824416759900E6FABD3690028CA5AMN6PR11MB8244namp_--