From: "Chao Li" <lichao@loongson.cn>
To: Gerd Hoffmann <kraxel@redhat.com>, lixianglai <lixianglai@loongson.cn>
Cc: devel@edk2.groups.io, Ard Biesheuvel <ardb+tianocore@kernel.org>,
Jiewen Yao <jiewen.yao@intel.com>,
Jordan Justen <jordan.l.justen@intel.com>,
Bibo Mao <maobibo@loongson.cn>,
Dongyan Qian <qiandongyan@loongson.cn>
Subject: Re: [edk2-devel] [PATCH v1 20/26] OvmfPkg/LoongArchVirt: Add NorFlashQemuLib
Date: Tue, 19 Mar 2024 10:04:01 +0800 [thread overview]
Message-ID: <efaf0d66-529f-45b2-93e5-753f6c183f0f@loongson.cn> (raw)
In-Reply-To: <ewvdei3qyvtmkaadcjtx3g5jyhfm3xdhsanbw2odxgld3yxsvb@aleibomlcufz>
[-- Attachment #1: Type: text/plain, Size: 3556 bytes --]
Hi Gerd,
Thanks,
Chao
On 2024/3/18 23:21, Gerd Hoffmann wrote:
> On Sat, Mar 16, 2024 at 06:19:00PM +0800, lixianglai wrote:
>> Hi Gerd:
>>> On Mon, Mar 11, 2024 at 02:39:24AM -0700, Chao Li wrote:
>>>> Add NorFlashQemuLib for LoongArch, it is referenced from ArmVirtPkg.
>>> What are the differences to the ArmVirtPkg version?
>> In this lib we have assigned the following three pcd variables:
>> PcdFlashNvStorageVariableBase
>> PcdFlashNvStorageFtwWorkingBase
>> PcdFlashNvStorageFtwSpareBase
>> Instead of hardcoding these three variables in the VarStore.fdf.inc file as arm does,
>> the benefit is that when the flash base address changes in the qemu implementation,
>> there is no need to re-adapt and compile UEFI.
> The flash memory layout (address + size) for the aarch64 virt machine
> has never changed. So while it sounds nice in theory to have that
> option it could very well be that this will never ever needed in
> practice.
>
> Having sayed that I'd also note that I think it should also be possible
> to switch the aarch64 builds to set the PCDs at runtime instead of
> compile time.
>
>> When I tried to implement the current patch scheme on aarch64,
>> I found that the FaultTolerantWriteDxe driver loaded earlier than VirtNorFlashDxe.
>> And It requires the PcdFlashNvStorageFtwWorkingSize and PcdFlashNvStorageFtwSpareSize variables for initialization,
>> However the initialization of these two variables is completed in VirtNorFlashDxe,
>> The fdf file specifies that VirtNorFlashDxe is loaded first and then FaultTolerantWriteDxe is loaded in loongarch64.
>> So this is going to be a problem if we want to apply the current solution to aarch64 or risc-v.
> There is a non-obvious twist:
>
> VirtNorFlashDxe registers the gEdkiiNvVarStoreFormattedGuid protocol.
>
> There is the
> EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
> library, which only purpose is to add a dependency to
> gEdkiiNvVarStoreFormattedGuid to depex.
>
> NvVarStoreFormattedLib.inf is used this way ...
>
> MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
> <LibraryClasses>A
> [ ... ]
> NULL|EmbeddedPkg/Library/NvVarStoreFormattedLib/NvVarStoreFormattedLib.inf
> [ ... ]
> }
>
> ... to make sure VariableRuntimeDxe is scheduled after VirtNorFlashDxe.
>
> I think you can apply the same idea to FaultTolerantWriteDxe.
>
>> I can't tell the implementation scheme of the current lib and existing
>> lib implementation scheme which one is better, Could you give we some
>> advice?
> I'd suggest to merge your code as OvmfPkg/Library/FdtNorFlashQemuLib as
> it is not really loongarch-specific.
>
> If you want try switch aarch64 to use the same code that'll be great,
> but sorting that out later is also fine with me.
If you think this design is looks better, then I'm prepare to commit
this change under the OvmfPkg/Library as a public library. And I will
enable it in aarch64 after merging this change, because I think it may
be tweaked and validated in aarch64 for many platforms. Do you think
that is good?
>
> take care,
> Gerd
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116875): https://edk2.groups.io/g/devel/message/116875
Mute This Topic: https://groups.io/mt/104859896/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2: Type: text/html, Size: 5541 bytes --]
next prev parent reply other threads:[~2024-03-19 2:04 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-03-11 9:36 [edk2-devel] [PATCH v1 00/26] Part 2 patch set to enable LoongArch virtual machine in edk2 Chao Li
2024-03-11 9:37 ` [edk2-devel] [PATCH v1 01/26] UefiCpuPkg/CpuTimerLib: Reorder the INF file alphabetically Chao Li
2024-03-14 10:48 ` Gerd Hoffmann
2024-03-11 9:37 ` [edk2-devel] [PATCH v1 02/26] UefiCpuPkg/CpuExceptionHandlerLib: Reorder the INF files alphabetically Chao Li
2024-03-14 10:49 ` Gerd Hoffmann
2024-03-11 9:37 ` [edk2-devel] [PATCH v1 03/26] UefiCpuPkg/MpInitLib: " Chao Li
2024-03-14 10:52 ` Gerd Hoffmann
2024-03-15 6:16 ` Chao Li
2024-03-11 9:37 ` [edk2-devel] [PATCH v1 04/26] UefiCpuPkg/CpuDxe: Reorder the INF file alphabetically Chao Li
2024-03-14 10:59 ` Gerd Hoffmann
2024-03-11 9:38 ` [edk2-devel] [PATCH v1 05/26] UefiCpuPkg: Add LoongArch64 CPU Timer instance Chao Li
2024-03-14 10:59 ` Gerd Hoffmann
2024-03-15 6:37 ` Chao Li
2024-03-11 9:38 ` [edk2-devel] [PATCH v1 06/26] UefiCpuPkg: Add CPU exception library for LoongArch Chao Li
2024-03-14 11:22 ` Gerd Hoffmann
2024-03-15 6:20 ` Chao Li
2024-03-11 9:38 ` [edk2-devel] [PATCH v1 07/26] UefiCpuPkg: Add CpuMmuLib.h to UefiCpuPkg Chao Li
2024-03-14 11:28 ` Gerd Hoffmann
2024-03-15 6:29 ` Chao Li
2024-03-11 9:38 ` [edk2-devel] [PATCH v1 08/26] UefiCpuPkg: Added a new PCD named PcdCpuExceptionVectorBaseAddress Chao Li
2024-03-14 11:44 ` Gerd Hoffmann
2024-03-11 9:38 ` [edk2-devel] [PATCH v1 09/26] UefiCpuPkg: Added a new PCD named PcdCpuMmuIsEnabled Chao Li
2024-03-15 9:09 ` Gerd Hoffmann
2024-03-15 9:30 ` Chao Li
2024-03-15 10:21 ` Gerd Hoffmann
2024-03-11 9:38 ` [edk2-devel] [PATCH v1 10/26] UefiCpuPkg: Add CpuMmuLib to UefiCpuPkg Chao Li
2024-03-11 9:38 ` [edk2-devel] [PATCH v1 11/26] UefiCpuPkg: Add CpuMmuInitLib.h " Chao Li
2024-03-11 9:38 ` [edk2-devel] [PATCH v1 12/26] UefiCpuPkg: Add CpuMmuInitLib " Chao Li
2024-03-11 9:38 ` [edk2-devel] [PATCH v1 13/26] UefiCpuPkg: Add multiprocessor library for LoongArch64 Chao Li
2024-03-11 9:38 ` [edk2-devel] [PATCH v1 14/26] UefiCpuPkg: Add CpuDxe driver " Chao Li
2024-03-11 9:38 ` [edk2-devel] [PATCH v1 15/26] OvmfPkg/LoongArchVirt: Add stable timer driver Chao Li
2024-03-11 9:39 ` [edk2-devel] [PATCH v1 16/26] OvmfPkg/LoongArchVirt: Add a NULL library named CollectApResouceLibNull Chao Li
2024-03-15 9:22 ` Gerd Hoffmann
2024-04-12 8:34 ` Chao Li
2024-03-11 9:39 ` [edk2-devel] [PATCH v1 17/26] OvmfPkg/LoongArchVirt: Add serial port hook library Chao Li
2024-03-15 9:24 ` Gerd Hoffmann
2024-03-15 9:33 ` Gerd Hoffmann
2024-03-15 9:46 ` Chao Li
2024-03-15 9:51 ` Ard Biesheuvel
2024-03-15 9:54 ` Chao Li
[not found] ` <17BCE78056888EC1.6435@groups.io>
2024-03-20 9:36 ` Chao Li
2024-03-11 9:39 ` [edk2-devel] [PATCH v1 18/26] OvmfPkg/LoongArchVirt: Add the early serial port output library Chao Li
2024-03-15 9:36 ` Gerd Hoffmann
2024-03-15 10:19 ` Chao Li
2024-03-15 10:34 ` Gerd Hoffmann
2024-03-15 11:07 ` Chao Li
2024-03-11 9:39 ` [edk2-devel] [PATCH v1 19/26] OvmfPkg/LoongArchVirt: Add real time clock library Chao Li
2024-03-11 9:39 ` [edk2-devel] [PATCH v1 20/26] OvmfPkg/LoongArchVirt: Add NorFlashQemuLib Chao Li
2024-03-15 9:40 ` Gerd Hoffmann
2024-03-16 10:19 ` xianglai
2024-03-18 15:21 ` Gerd Hoffmann
2024-03-19 2:04 ` Chao Li [this message]
2024-03-19 8:03 ` Gerd Hoffmann
2024-03-19 9:10 ` Chao Li
2024-03-19 9:29 ` Gerd Hoffmann
2024-05-06 10:02 ` Chao Li
2024-05-06 10:24 ` Ard Biesheuvel
2024-05-07 2:25 ` Chao Li
2024-03-11 9:39 ` [edk2-devel] [PATCH v1 21/26] OvmfPkg/LoongArchVirt: Add FdtQemuFwCfgLib Chao Li
2024-03-15 9:53 ` Gerd Hoffmann
[not found] ` <01d94c67-de3d-7709-84d4-ec97dc7a01ec@loongson.cn>
2024-03-18 15:28 ` Gerd Hoffmann
2024-03-19 2:10 ` Chao Li
2024-03-20 10:16 ` Gerd Hoffmann
2024-03-21 1:38 ` Chao Li
2024-03-21 11:39 ` Gerd Hoffmann
2024-03-21 12:27 ` Chao Li
[not found] ` <17BEC74BB37915EC.2828@groups.io>
2024-04-17 2:53 ` Chao Li
2024-04-17 6:59 ` Gerd Hoffmann
2024-04-17 7:43 ` Chao Li
2024-04-17 8:01 ` Gerd Hoffmann
2024-03-11 9:39 ` [edk2-devel] [PATCH v1 22/26] OvmfPkg/LoongArchVirt: Add reset system library Chao Li
2024-03-11 9:39 ` [edk2-devel] [PATCH v1 23/26] OvmfPkg/LoongArchVirt: Support SEC phase Chao Li
2024-03-11 9:39 ` [edk2-devel] [PATCH v1 24/26] OvmfPkg/LoongArchVirt: Support PEI phase Chao Li
2024-03-11 9:39 ` [edk2-devel] [PATCH v1 25/26] OvmfPkg/LoongArchVirt: Add build file Chao Li
2024-03-11 9:40 ` [edk2-devel] [PATCH v1 26/26] OvmfPkg/LoongArchVirt: Add self introduction file Chao Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=efaf0d66-529f-45b2-93e5-753f6c183f0f@loongson.cn \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox