On Wed, Jun 28, 2023 at 9:47 AM Sunil V L <sunilvl@ventanamicro.com> 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 <tphan@ventanamicro.com>
> ---
>  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.

Thanks,
Sunil