Well, let's discuss the ARM version name once moved.
I have two plans:
Plan A:
Merge the ARM version into PlatformBootmanagerLib and modify the inf file to separate X64 and other ARCH, like be:
[Sources.Common]
QemuKernel.c
BdsPlatform.h
[Sources.X64, Sources.IA32]
BdsPlatform.c
PaltformData.c
[Sources.ARM, Sources.AARCH64, Sources.RISCV64, Source.LOONGARCH64]
PlatformBm.c
[LibraryClasses.Common]
BaseLib
BaseMemoryLib
BootLogoLib
DebugLib
DevicePathLib
MemoryAllocationLib
PcdLib
...
[LibraryClasses.X64, LibraryClasses.IA32]
QemuFwCfgLib
QemuFwCfgS3Lib
...
[LibraryClasses.ARM, LibraryClasses.AARCH64, LibraryClasses.RISCV, LibraryClasses.LOONGARCH64]
TpmPlatformHierarchyLib
...
The above pseudocode are unverified and will definitely be subject to modification.
Plan B:
Moved the ARM version into OvmfPkg and got a new name. In my opinion, the X86 version takes into account the STR, Tcg2 and Xen platform, so it look like more complete(only for X86, just my opinion). In this case, I think what about the X86 version still being named PlatformBootManagerLib and the ARM version being named PlatformBootManagerLibLight?
Both of the above plans can achieve the goal. I prefer Plan A. I want to know your opinions, so hope hear back from you!
On 11/10/23 10:46, Gerd Hoffmann wrote:On Fri, Nov 10, 2023 at 03:09:47PM +0800, Chao Li wrote:Hi Laszlo, Sorry, I'm not check carefully, it is really **copied**, and we not think the ARM version is not good enough. So, can I move this library to OvmfPkg so other ARCH use it easily?Moving code from ArmVirtPkg to OvmfPkg is fine. OvmfPkg is the home for both x86 virtual machine bits and shared code. The later used to be mostly virtio drivers, but with the arrival of riscv some fdt support code has already moved from ArmVirtPkg to OvmfPkg so arm and riscv can share it. Doing the same for loongarch is perfectly fine.Agreed! The naming of course remains tricky. :) It's not easy to come up with good names for distinguishing various instances of the same library class. I suggest renaming "OvmfPkg/PlatformBootManagerLib" to "PlatformBootManagerLibX86", and calling ArmVirtPkg's instance (once moved) PlatformBootManagerLibGeneric or just PlatformBootManagerLib. Laszlo