Re: [edk2-devel] [PATCH v3 00/13] Part 2 patch set to add LoongArch support into UefiCpuPkg
Chao, I've replied all of your patches. Only for patch "[edk2-devel] [PATCH v3 10/13] UefiCpuPkg: Add a new GUID to store the processors resource", I have one comment. Others look good to me. Thanks, Ray From: Chao Li Sent: Friday, April 12, 2024 15:32 To: devel@edk2.groups.io Cc: Ni, Ray ; Kumar, Rahul R ; Gerd Hoffmann ; Sami Mujawar ; Sunil V L ; Bibo Mao ; Dongyan Qian Subject: [PATCH v3 00/13] Part 2 patch set to add LoongArch support into UefiCpuPkg This patch set adjusted some order in UefiCpuPig alphabetically, added LoongArch libraries and drivers into UefiCpuPkg, it is a continuation of the first patch series v8 submitted at https://edk2.groups.io/g/devel/message/114526. And also separated from https://edk2.groups.io/g/devel/message/116583. This series only contents the changes for UefiCpuPkg. Patch1-Patch4: Reorder some INF files located in UefiCpuPkg alphabetically. Patch5-Patch13: Added Timer, CpuMmuLib, CpuMmuInitLib, MpInitLib, CpuDxe for LoongArch, and added some PCD and header files requested by the above libraries and drivers. Modfied modules: UefiCpuPkg BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4726 BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4734 PR: https://github.com/tianocore/edk2/pull/5483 V1 -> V2: 1. Removed PcdCpuMmuIsEnabled. 2. Removed API GetMemoryRegionAttributes API as it is no longer needed. 3. Patch3, added two empty line in DXE and PEI INF files. 4. Patch5, added the Status check in GetTimeInnanoSecond function. 5. Separated into two series, this is series one, and the second one is OvmfPkg. V2 -> V3: 1. Remove CpuMmuInitLib. 2. Added a new GUID HOB named PROCESSOR_RESOURCE_HOG_GUID. 3. Following Ray suggest, adjust CpuMmuLib API, rename the API name. 4. Rename the PcdCpuExceptionVectorBaseAddress to PcdLoongArch64ExceptionVectorBaseAddress. 5. Enable CpuMmio2Dxe in LoongArch. Cc: Ray Ni Cc: Rahul Kumar Cc: Gerd Hoffmann Cc: Sami Mujawar Cc: Sunil V L Cc: Bibo Mao Cc: Dongyan Qian Chao Li (13): UefiCpuPkg/CpuTimerLib: Reorder the INF file alphabetically UefiCpuPkg/CpuExceptionHandlerLib: Reorder the INF files alphabetically UefiCpuPkg/MpInitLib: Reorder the INF files alphabetically UefiCpuPkg/CpuDxe: Reorder the INF file alphabetically UefiCpuPkg: Add LoongArch64 CPU Timer instance UefiCpuPkg: Add CPU exception library for LoongArch UefiCpuPkg: Add CpuMmuLib.h to UefiCpuPkg UefiCpuPkg: Added a new PCD named PcdLoongArchExceptionVectorBaseAddress UefiCpuPkg: Add CpuMmuLib to UefiCpuPkg UefiCpuPkg: Add a new GUID to store the processors resource UefiCpuPkg: Add multiprocessor library for LoongArch64 UefiCpuPkg: Add CpuDxe driver for LoongArch64 UefiCpuPkg/UefiCpuPkg.dsc: Add CpuMmio2Dxe.inf to LoongArch64 field UefiCpuPkg/CpuDxe/CpuDxe.inf | 39 +- UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.c| 439 + UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.h| 288 +++ UefiCpuPkg/CpuDxe/LoongArch64/CpuMp.c | 544 ++ UefiCpuPkg/CpuDxe/LoongArch64/Exception.c | 159 ++ .../Include/Guid/ProcessorResourceHob.h | 29 + UefiCpuPkg/Include/Library/CpuMmuLib.h| 41 + .../DxeCpuExceptionHandlerLib.inf | 37 +- .../LoongArch/DxeExceptionLib.c | 198 ++ .../LoongArch/ExceptionCommon.c | 171 ++ .../LoongArch/ExceptionCommon.h | 131 ++ .../LoongArch64/ArchExceptionHandler.c| 268 +++ .../LoongArch64/ExceptionHandlerAsm.S | 366 .../LoongArch/SecPeiExceptionLib.c| 102 ++ .../PeiCpuExceptionHandlerLib.inf | 16 +- .../SecPeiCpuExceptionHandlerLib.inf | 31 +- .../SmmCpuExceptionHandlerLib.inf | 16 +- UefiCpuPkg/Library/CpuMmuLib/CpuMmuLib.inf| 39 + UefiCpuPkg/Library/CpuMmuLib/CpuMmuLib.uni| 14 + .../Library/CpuMmuLib/LoongArch64/CpuMmu.c| 785 .../Library/CpuMmuLib/LoongArch64/Page.h | 33 + .../LoongArch64/TlbExceptionHandle.S | 51 + .../LoongArch64/TlbExceptionHandle.h | 36 + .../CpuMmuLib/LoongArch64/TlbInvalid.S| 24 + .../CpuMmuLib/LoongArch64/TlbInvalid.h| 24 + .../Library/CpuTimerLib/BaseCpuTimerLib.inf | 17 +- .../CpuTimerLib/LoongArch64/CpuTimerLib.c | 250 +++ UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 42 +- .../Library/MpInitLib/LoongArch64/DxeMpLib.c | 480 + .../Library/MpInitLib/LoongArch64/MpLib.c | 1626 + .../Library/MpInitLib/LoongArch64/MpLib.h | 350 .../Library/MpInitLib/LoongArch64/PeiMpLib.c | 381 UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 40 +- UefiCpuPkg/UefiCpuPkg.dec | 13 + UefiCpuPkg/UefiCpuPkg.dsc |7 + 35 files changed, 7008 insertions(+), 79 deletions(-) create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.c create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.
[edk2-devel] [PATCH v3 00/13] Part 2 patch set to add LoongArch support into UefiCpuPkg
This patch set adjusted some order in UefiCpuPig alphabetically, added LoongArch libraries and drivers into UefiCpuPkg, it is a continuation of the first patch series v8 submitted at https://edk2.groups.io/g/devel/message/114526. And also separated from https://edk2.groups.io/g/devel/message/116583. This series only contents the changes for UefiCpuPkg. Patch1-Patch4: Reorder some INF files located in UefiCpuPkg alphabetically. Patch5-Patch13: Added Timer, CpuMmuLib, CpuMmuInitLib, MpInitLib, CpuDxe for LoongArch, and added some PCD and header files requested by the above libraries and drivers. Modfied modules: UefiCpuPkg BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4726 BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4734 PR: https://github.com/tianocore/edk2/pull/5483 V1 -> V2: 1. Removed PcdCpuMmuIsEnabled. 2. Removed API GetMemoryRegionAttributes API as it is no longer needed. 3. Patch3, added two empty line in DXE and PEI INF files. 4. Patch5, added the Status check in GetTimeInnanoSecond function. 5. Separated into two series, this is series one, and the second one is OvmfPkg. V2 -> V3: 1. Remove CpuMmuInitLib. 2. Added a new GUID HOB named PROCESSOR_RESOURCE_HOG_GUID. 3. Following Ray suggest, adjust CpuMmuLib API, rename the API name. 4. Rename the PcdCpuExceptionVectorBaseAddress to PcdLoongArch64ExceptionVectorBaseAddress. 5. Enable CpuMmio2Dxe in LoongArch. Cc: Ray Ni Cc: Rahul Kumar Cc: Gerd Hoffmann Cc: Sami Mujawar Cc: Sunil V L Cc: Bibo Mao Cc: Dongyan Qian Chao Li (13): UefiCpuPkg/CpuTimerLib: Reorder the INF file alphabetically UefiCpuPkg/CpuExceptionHandlerLib: Reorder the INF files alphabetically UefiCpuPkg/MpInitLib: Reorder the INF files alphabetically UefiCpuPkg/CpuDxe: Reorder the INF file alphabetically UefiCpuPkg: Add LoongArch64 CPU Timer instance UefiCpuPkg: Add CPU exception library for LoongArch UefiCpuPkg: Add CpuMmuLib.h to UefiCpuPkg UefiCpuPkg: Added a new PCD named PcdLoongArchExceptionVectorBaseAddress UefiCpuPkg: Add CpuMmuLib to UefiCpuPkg UefiCpuPkg: Add a new GUID to store the processors resource UefiCpuPkg: Add multiprocessor library for LoongArch64 UefiCpuPkg: Add CpuDxe driver for LoongArch64 UefiCpuPkg/UefiCpuPkg.dsc: Add CpuMmio2Dxe.inf to LoongArch64 field UefiCpuPkg/CpuDxe/CpuDxe.inf | 39 +- UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.c| 439 + UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.h| 288 +++ UefiCpuPkg/CpuDxe/LoongArch64/CpuMp.c | 544 ++ UefiCpuPkg/CpuDxe/LoongArch64/Exception.c | 159 ++ .../Include/Guid/ProcessorResourceHob.h | 29 + UefiCpuPkg/Include/Library/CpuMmuLib.h| 41 + .../DxeCpuExceptionHandlerLib.inf | 37 +- .../LoongArch/DxeExceptionLib.c | 198 ++ .../LoongArch/ExceptionCommon.c | 171 ++ .../LoongArch/ExceptionCommon.h | 131 ++ .../LoongArch64/ArchExceptionHandler.c| 268 +++ .../LoongArch64/ExceptionHandlerAsm.S | 366 .../LoongArch/SecPeiExceptionLib.c| 102 ++ .../PeiCpuExceptionHandlerLib.inf | 16 +- .../SecPeiCpuExceptionHandlerLib.inf | 31 +- .../SmmCpuExceptionHandlerLib.inf | 16 +- UefiCpuPkg/Library/CpuMmuLib/CpuMmuLib.inf| 39 + UefiCpuPkg/Library/CpuMmuLib/CpuMmuLib.uni| 14 + .../Library/CpuMmuLib/LoongArch64/CpuMmu.c| 785 .../Library/CpuMmuLib/LoongArch64/Page.h | 33 + .../LoongArch64/TlbExceptionHandle.S | 51 + .../LoongArch64/TlbExceptionHandle.h | 36 + .../CpuMmuLib/LoongArch64/TlbInvalid.S| 24 + .../CpuMmuLib/LoongArch64/TlbInvalid.h| 24 + .../Library/CpuTimerLib/BaseCpuTimerLib.inf | 17 +- .../CpuTimerLib/LoongArch64/CpuTimerLib.c | 250 +++ UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 42 +- .../Library/MpInitLib/LoongArch64/DxeMpLib.c | 480 + .../Library/MpInitLib/LoongArch64/MpLib.c | 1626 + .../Library/MpInitLib/LoongArch64/MpLib.h | 350 .../Library/MpInitLib/LoongArch64/PeiMpLib.c | 381 UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 40 +- UefiCpuPkg/UefiCpuPkg.dec | 13 + UefiCpuPkg/UefiCpuPkg.dsc |7 + 35 files changed, 7008 insertions(+), 79 deletions(-) create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.c create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.h create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/CpuMp.c create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/Exception.c create mode 100644 UefiCpuPkg/Include/Guid/ProcessorResourceHob.h create mode 100644 UefiCpuPkg/Include/Library/CpuMmuLib.h create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/DxeExceptionLib.c create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/ExceptionCommon.c create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/
[edk2-devel] [PATCH v3 00/13] Part 2 patch set to add LoongArch support into UefiCpuPkg
This patch set adjusted some order in UefiCpuPig alphabetically, added LoongArch libraries and drivers into UefiCpuPkg, it is a continuation of the first patch series v8 submitted at https://edk2.groups.io/g/devel/message/114526. And also separated from https://edk2.groups.io/g/devel/message/116583. This series only contents the changes for UefiCpuPkg. Patch1-Patch4: Reorder some INF files located in UefiCpuPkg alphabetically. Patch5-Patch13: Added Timer, CpuMmuLib, CpuMmuInitLib, MpInitLib, CpuDxe for LoongArch, and added some PCD and header files requested by the above libraries and drivers. Modfied modules: UefiCpuPkg BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4726 BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4734 PR: https://github.com/tianocore/edk2/pull/5483 V1 -> V2: 1. Removed PcdCpuMmuIsEnabled. 2. Removed API GetMemoryRegionAttributes API as it is no longer needed. 3. Patch3, added two empty line in DXE and PEI INF files. 4. Patch5, added the Status check in GetTimeInnanoSecond function. 5. Separated into two series, this is series one, and the second one is OvmfPkg. V2 -> V3: 1. Remove CpuMmuInitLib. 2. Added a new GUID HOB named PROCESSOR_RESOURCE_HOG_GUID. 3. Following Ray suggest, adjust CpuMmuLib API, rename the API name. 4. Rename the PcdCpuExceptionVectorBaseAddress to PcdLoongArch64ExceptionVectorBaseAddress. 5. Enable CpuMmio2Dxe in LoongArch. Chao Li (13): UefiCpuPkg/CpuTimerLib: Reorder the INF file alphabetically UefiCpuPkg/CpuExceptionHandlerLib: Reorder the INF files alphabetically UefiCpuPkg/MpInitLib: Reorder the INF files alphabetically UefiCpuPkg/CpuDxe: Reorder the INF file alphabetically UefiCpuPkg: Add LoongArch64 CPU Timer instance UefiCpuPkg: Add CPU exception library for LoongArch UefiCpuPkg: Add CpuMmuLib.h to UefiCpuPkg UefiCpuPkg: Added a new PCD named PcdLoongArchExceptionVectorBaseAddress UefiCpuPkg: Add CpuMmuLib to UefiCpuPkg UefiCpuPkg: Add a new GUID to store the processors resource UefiCpuPkg: Add multiprocessor library for LoongArch64 UefiCpuPkg: Add CpuDxe driver for LoongArch64 UefiCpuPkg/UefiCpuPkg.dsc: Add CpuMmio2Dxe.inf to LoongArch64 field UefiCpuPkg/CpuDxe/CpuDxe.inf | 39 +- UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.c| 439 + UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.h| 288 +++ UefiCpuPkg/CpuDxe/LoongArch64/CpuMp.c | 544 ++ UefiCpuPkg/CpuDxe/LoongArch64/Exception.c | 159 ++ .../Include/Guid/ProcessorResourceHob.h | 29 + UefiCpuPkg/Include/Library/CpuMmuLib.h| 41 + .../DxeCpuExceptionHandlerLib.inf | 37 +- .../LoongArch/DxeExceptionLib.c | 198 ++ .../LoongArch/ExceptionCommon.c | 171 ++ .../LoongArch/ExceptionCommon.h | 131 ++ .../LoongArch64/ArchExceptionHandler.c| 268 +++ .../LoongArch64/ExceptionHandlerAsm.S | 366 .../LoongArch/SecPeiExceptionLib.c| 102 ++ .../PeiCpuExceptionHandlerLib.inf | 16 +- .../SecPeiCpuExceptionHandlerLib.inf | 31 +- .../SmmCpuExceptionHandlerLib.inf | 16 +- UefiCpuPkg/Library/CpuMmuLib/CpuMmuLib.inf| 39 + UefiCpuPkg/Library/CpuMmuLib/CpuMmuLib.uni| 14 + .../Library/CpuMmuLib/LoongArch64/CpuMmu.c| 785 .../Library/CpuMmuLib/LoongArch64/Page.h | 33 + .../LoongArch64/TlbExceptionHandle.S | 51 + .../LoongArch64/TlbExceptionHandle.h | 36 + .../CpuMmuLib/LoongArch64/TlbInvalid.S| 24 + .../CpuMmuLib/LoongArch64/TlbInvalid.h| 24 + .../Library/CpuTimerLib/BaseCpuTimerLib.inf | 17 +- .../CpuTimerLib/LoongArch64/CpuTimerLib.c | 250 +++ UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 42 +- .../Library/MpInitLib/LoongArch64/DxeMpLib.c | 480 + .../Library/MpInitLib/LoongArch64/MpLib.c | 1626 + .../Library/MpInitLib/LoongArch64/MpLib.h | 350 .../Library/MpInitLib/LoongArch64/PeiMpLib.c | 381 UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 40 +- UefiCpuPkg/UefiCpuPkg.dec | 13 + UefiCpuPkg/UefiCpuPkg.dsc |7 + 35 files changed, 7008 insertions(+), 79 deletions(-) create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.c create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/CpuDxe.h create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/CpuMp.c create mode 100644 UefiCpuPkg/CpuDxe/LoongArch64/Exception.c create mode 100644 UefiCpuPkg/Include/Guid/ProcessorResourceHob.h create mode 100644 UefiCpuPkg/Include/Library/CpuMmuLib.h create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/DxeExceptionLib.c create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/ExceptionCommon.c create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/ExceptionCommon.h create mode 100644 UefiCpuPkg/Library/CpuExceptionHandlerLib/LoongArch/LoongArch64/ArchExcepti