Hi Gerd,
OK, I'm going to do the plan B next and commit it with the next version, which will probably be called "Part 3 patch set, enable LoongArchVirtQemu in OvmfPkg".Hi,QemuFwCfgLibMmio.inf is looks like a DXE stage library, while this patch is the PEI stage library we are dicussing. I have tow plans: *Plan A:* Keep this library under LoongArchQemuVirt. *PlanĀ B:* Create a new INF named QemuFwCfgPeiLibMmio.inf under OvmfPkg/Library/QemuFwCfgLib/, which will obtain the resources from FDT, and store them in the HOB or dynamic PCD. Which one do you like? I'm leaning toward B because more people will be served if it's under OvmfPkg/Library.Yes, Plan (b) is better. Also try avoid code duplication. The existing code can be splitted into two files. Move the code which works in DXE only (i.e. the bits using FdtClientProtocol to find the fw_cfg mmio address, maybe more) to QemuFwCfgLibMmioDxe.c, keep the code which can work for both PEI and DXE in QemuFwCfgLibMmio.c. Add QemuFwCfgLibMmioPei.c for the PEI-specific code. The ioport version of the library uses the same approach with QemuFwCfgLib.c + QemuFwCfgDxe.c + QemuFwCfgPei.c
take care, Gerd