As i said, VirtNorFlashDxe needed to be loaded before VariableRuntimeDxe so your suggestion will not work. On Mon, Jul 3, 2023 at 10:07 PM Sunil V L wrote: > On Wed, Jun 28, 2023 at 02:27:10PM -0700, Tuan Phan wrote: > > On Wed, Jun 28, 2023 at 9:47 AM Sunil V L > wrote: > > > > > On Fri, Jun 23, 2023 at 11:39:32AM -0700, Tuan Phan wrote: > > > > Make sure VirtNorFlashDxe loaded before VariableRuntimeDxe as it > > > > is the backend flash driver. > > > > > > > > Signed-off-by: Tuan Phan > > > > --- > > > > OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf | 10 ++++++++++ > > > > 1 file changed, 10 insertions(+) > > > > > > > > diff --git a/OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf > > > b/OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf > > > > index 21e4ba67379f..9ab8eb3ba7d8 100644 > > > > --- a/OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf > > > > +++ b/OvmfPkg/RiscVVirt/RiscVVirtQemu.fdf > > > > @@ -53,6 +53,16 @@ READ_STATUS = TRUE > > > > READ_LOCK_CAP = TRUE > > > > READ_LOCK_STATUS = TRUE > > > > > > > > +APRIORI DXE { > > > > + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf > > > > + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf > > > > + INF > > > > MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf > > > > + INF > > > > MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/StatusCodeHandlerRuntimeDxe.inf > > > > + INF EmbeddedPkg/Drivers/FdtClientDxe/FdtClientDxe.inf > > > > + INF UefiCpuPkg/CpuDxeRiscV64/CpuDxeRiscV64.inf > > > > + INF OvmfPkg/VirtNorFlashDxe/VirtNorFlashDxe.inf > > > > +} > > > > + > > > Hi Tuan, > > > > > > Actually, Ard had recommended not to use APRIORI and hence we avoided > > > it when we upstreamed RiscVVirt. So, I am wondering whether this can be > > > avoided by using depex in CpuDxe on gEfiVariableArchProtocolGuid? > > > > > > Hi Sunil, > > Not sure what the reason behind avoiding APRIORI besides it is a > workaround > > for broken DEPEX. BTW, what we need is to put VirtNorFlashDxe loaded > before > > VariableRuntimeDxe which doesn't depend on any modules. I don't see any > > other clearer way than modifying VirNorFlashDxe as shown in the first > > version of this series. > > > > The CpuDxeRiscV64 in the aprioriy list as VirNorFlashDxe depends on it. > > > Hi Tuan, > > I couldn't locate old mail from Ard recommending to remove APRIORI in > RISC-V. But here is the recent mail on different context but those > reasons are still valid in any case. > https://edk2.groups.io/g/devel/message/104543 > > IMO, there is no dependency between VirtNorFlashDxe and > VariableRuntimeDxe. I think what we need is CpuDxeRiscV64 loaded after > VariableRuntimeDxe and before VirtNorFlashDxe. A simple depex like I > suggested in previous mail should work. I still prefer this than > introducing APRIORI unless there are other issues I am now aware of. > What do you think? > > Thanks! > Sunil >