On Mon, 10 Oct 2022 at 19:20, Sunil V L <suni...@ventanamicro.com> wrote:
>
> On Mon, Oct 10, 2022 at 06:16:28PM +0200, Ard Biesheuvel wrote:
> > On Mon, 10 Oct 2022 at 18:05, Sunil V L <suni...@ventanamicro.com> wrote:
> > >
> > > On Mon, Oct 10, 2022 at 05:29:15PM +0200, Ard Biesheuvel wrote:
> > > > On Mon, 10 Oct 2022 at 17:19, Sunil V L <suni...@ventanamicro.com> 
> > > > wrote:
> > > > >
> > > > > On Mon, Oct 10, 2022 at 12:39:21PM +0200, Ard Biesheuvel wrote:
> > > > > > On Mon, 10 Oct 2022 at 12:13, Sunil V L <suni...@ventanamicro.com> 
> > > > > > wrote:
> > > > > > >
> > > > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4076
> > > > > > >
> > > > > > > RISC-V needs NorFlashDxe driver for qemu virt machine. The
> > > > > > > ArmPlatformPkg has this driver but migrating it to generic
> > > > > > > package like MdeModulePkg introduces circular dependencies.
> > > > > > > So, add a simplified version of the NorFlashDxe driver in
> > > > > > > OvmfPkg.
> > > > > > >
> > > > > >
> > > > > > So what is the difference between this simplified version and the 
> > > > > > old
> > > > > > version? And it is backed in QEMU by the same NOR flash emulation,
> > > > > > shouldn't we use this driver for ArmVirtQemu as well?
> > > > >
> > > > > I agree. If we can break the dependency on EmbeddedPkg due to
> > > > > NvVarStoreFormattedLib, then we can migrate to MdeModulePkg and all
> > > > > consumers can use the same driver which would be the best solution 
> > > > > IMO.
> > > > >
> > > > > Could you please let me know  why NvVarStoreFormattedLib is added
> > > > > in EmbeddedPkg instead of MdePkg or MdeModulePkg? Is it only for
> > > > > non-server class platforms? I don't see it doing much so not sure
> > > > > its use case.
> > > > >
> > > >
> > > > I think that library as well as the definition of
> > > > gEdkiiNvVarStoreFormattedGuid should be moved to MdeModulePkg.
> > > >
> > > > Then, we can look at moving NorFlashDxe in there as well.
> > >
> > > Great. Let me rework these patches then.
> > > >
> > > > But you haven't answered my question regarding how your version was 
> > > > simplified.
> > > >
> > >
> > > Oh sorry. I forgot to modify the commit message but what I really meant
> > > was removing the code which depends upon PcdNorFlashCheckBlockLocked for
> > > virtual platforms. I thought it is useful only for real platforms and
> > > qemu doesn't emulate it. Let me know if I am wrong.
> > > Since the driver is copied for OVMF, I didn't want to add the PCD 
> > > unnecessarily.
> > >
> >
> > What I would like to do is the following:
> >
> > - move NvVarstoreFormattedLib into MdeModulePkg (as you proposed already)
> > - create a new NorFlashDxe in Ovmf that is cleaned up, drops the
> > handling of locked blocks (as you suggest) and minimizes the number of
> > transitions between array mode and programming mode (i have some
> > patches i can share as a starting point)
> > - move ArmPlatformPkg's NorFlashDxe into its only remaining user,
> > which is is Platform/ARM in edk2-platforms (there are two more users
> > in edk2-platforms, but both are QEMU based on so they can switch to
> > the OVMF one)
>
> Interesting. In that case, we can continue with current approach of copy in 
> Ovmf
> and add the optimization. I was assuming you want the same driver for
> real and virtual platforms in MdeModulePkg :-).
>

On the one hand, I agree with Leif that having a single 'industry
standard' driver in MdeModulePkg is the optimal approach. But otoh, we
shouldn't kid ourselves and pretend that this driver can fulfil that
role without some drastic changes. And given that nobody (including
myself) seems to have time for that anyway, let's just be pragmatic
here, and adopt the approach I suggested above.


> Sure, please share those optimization changes. I will create patches as
> you have outlined here.
>

There are two patches here. They seem to work but haven't seen any
rigorous testing (or review).

https://github.com/ardbiesheuvel/edk2/tree/norflash-for-ovmf

> >
> >
> > > > Note that there is some room for improvement in that driver in
> > > > relation to execution under KVM: switching between programming mode
> > > > and array mode involves setting up/tearing down the KVM memslot, and
> > > > currently, the driver is far from optimized when it comes to
> > > > minimizing the number of transitions between read mode and write mode.
> > >
> > > I was not looking at optimizing it at this point of time.
> > >
> >
> > I understand. And yet you are already proposing a different version of
> > NorFlashDxe, and I don't want to clone the existing NorFlashDxe
> > without cleaning it up first.
>
> Understood. Thanks for your help.
>
> Thanks
> Sunil


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#94988): https://edk2.groups.io/g/devel/message/94988
Mute This Topic: https://groups.io/mt/94233050/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to