From: "Laszlo Ersek" <lersek@redhat.com>
To: Dhaval Sharma <dhaval@rivosinc.com>
Cc: devel@edk2.groups.io
Subject: Re: [edk2-devel] [PATCH v5 2/2] OvmfPkg/RiscVVirt: Override for RV CPU Features
Date: Thu, 19 Oct 2023 11:22:26 +0200 [thread overview]
Message-ID: <5466efed-8dd4-1b8a-2bce-d0f324532f27@redhat.com> (raw)
In-Reply-To: <CAAxYnhQf5kRY7aVLGRGhWtqBffzSBex9hqrH7zBa8vL-xT=LEQ@mail.gmail.com>
On 10/19/23 08:48, Dhaval Sharma wrote:
> Hi Laszlo,
> Thanks a lot for your feedback. I have modified my next patchset
> addressing most of the comments. Summary below. But *before I submit the
> final version* I wanted to seek clarification on a few things mentioned
> below with [Dhaval]. Current PR I am planning to
> submit: https://github.com/tianocore/edk2/pull/4928
> <https://github.com/tianocore/edk2/pull/4928>
>
> I am summarizing all comments for better readability:
> (1) Split into four separate patches, in v6.
> *Done*.- with some comments below
> 1a. Fix previous error from earlier patch that had declaration
> outside baselib.h
> 1b. Renaming RiscVInvalidateDataCacheAsm() to
> RiscVInvalidateDataCacheAsmFence() etc.
> 1c. Adding the new cache maintenance operations to BaseLib,
> including the
> new assembly instruction encodings.
> 1d. Updating BaseCacheMaintenanceLib (utilizing the new BaseLib
> primitives).
> 1e. I have added another one for RiscvVirt platform kind of an
> override as 5th patch.
> (2) This belongs to v6 patch#4, because only BaseCacheMaintenanceLib
> needs the PCD. *Done*
> (3) "CMO" should be expanded as "cache management operations". *Done*
> (4) The whole PCD is insufficiently documented. *Done*
> (5) Accordingly, the default value of the PCD should be
> 0xFFFFFFFFFFFFFFFF. *Done*
> (6) The "MdePkg/MdePkg.uni" file should be kept in sync with dec.
> *Done*. [Dhaval] Is this used beyond setup options? For some PCDs I do
> not find an entry in uni.
This is best cleared with the MdePkg maintainers. Some packages don't
include *.uni files at all, but in those that do, my memories are that
we always keep the PCDs in sync between *.dec and *.uni. If I remember
correctly, the *.uni files are also used by the UEFI Packaging Tool
(UPT). I recommend modifying the UNI as well.
> (7) Belongs to v6 patch#4. *Done*
> (8) Please consider appending the "## CONSUMES" hint. *Done*
> (9) Belongs to v6 patch#3. *Done*
> (10) Belongs to v6 patch#3. *Done*
> (11) I agree that we should use symbolic names rather than
> magic constants, but raw encodings of machine instructions don't belong
> into a
> C header file. [Dhaval] This bytecode was introduced thinking what
> if all compilers do not support it. but given the default compiler in
> edk2 GCC 12 supports it
> we can eliminate this byte encoding completely to make it easy and
> simple to consume for others.
To be honest, I can't determine the minimum expected gcc version for
edk2. "BaseTools/Conf/tools_def.template" states a minimum version for
NASM, for example, but I can't find a similar gcc requirement there.
gcc-12 does work for me personally, because my riscv cross-compiler is
"riscv64-linux-gnu-gcc (GCC) 12.1.1 20220507 (Red Hat Cross 12.1.1-1)".
If the CI environment that builds these patches also provides gcc-12+,
then I figure you should be set.
> (12) Also, filing a feature request (about these instructions). As per
> (11) it is already available.
> (13) As stated above, these two interfaces don't belong here. *Done*
> (14) As stated above, these function declarations don't belong here. *Done*
> (15) I believe this un-indented comment will not pass ECC Check /
> uncrustify. [Dhaval] I attach my stuart_build logs. I do not see
> specific errors.https://github.com/tianocore/edk2/pull/4928
> <https://github.com/tianocore/edk2/pull/4928> Pull request all passed.
> Am I missing something?
Probably not.
We usually indent the function-top comment bodies by two spaces, but if
neither uncrustify nor ECC complain, then I won't insist.
Thanks
Laszlo
> (16-17-18) The name of the function suggests the return type should be
> BOOLEAN. *Done*
> (19) Should be STATIC, and should *not* be EFIAPI. (Not a public
> interface.) *Done*
> (20) This will definitely not pass uncrustify. If you are talking about
> bad indent seen on Ops and Length- it is fixed. *Done*
> (21) Logging this error for every cache line of the requested range does
> not seem useful. I suggest checking Op before the loop. *Done*
> (22) As stated above, the API renames -- together with the updated
> leading comments -- belong in v6 patch#2. *Done*
> (23) As stated above, the API renames -- together with the updated
> leading comments -- belong in v6 patch#2. *Done*
> (24) The DEBUG message seems bogus; invalidating the whole I-Cache *is*
> what is being requested here. *Done*
> (25-26) The *API* renames belong to v6 patch#2. & The new APIs, plus the
> *file* rename, belong to v6 patch#3. *Done*
> (27) Please use the assembler macros from point (11). Please see (11)
> (28-29-30-31) Please do not abbreviate RISC-V as "RV". It's incredibly
> confusing. Inconsistent spelling in the patch subject: "RISCV CMO".
> ditto; should be RISC-V.ditto, should be PcdRiscVFeatureOverride *Done*
> (32-33) Total inconsistency, RV64_ versus RV_. Should be
> RiscVIsCMOEnabled (upper case V). *Done*
>
> On Tue, Oct 17, 2023 at 8:09 PM Laszlo Ersek <lersek@redhat.com
> <mailto:lersek@redhat.com>> wrote:
>
> On 10/17/23 14:17, Dhaval Sharma wrote:
> > This PCD provides a way for platform to override any
> > HW features that are default enabled by previous stages
> > of FW (like OpenSBI). For the case where previous/prev
> > stage has disabled the feature, this override is not
> > useful and its usage should be avoided.
> >
> > Ard Biesheuvel <ardb+tianocore@kernel.org
> <mailto:ardb%2Btianocore@kernel.org>>
> > Jiewen Yao <jiewen.yao@intel.com <mailto:jiewen.yao@intel.com>>
> > Jordan Justen <jordan.l.justen@intel.com
> <mailto:jordan.l.justen@intel.com>>
> > Gerd Hoffmann <kraxel@redhat.com <mailto:kraxel@redhat.com>>
> > Sunil V L <sunilvl@ventanamicro.com <mailto:sunilvl@ventanamicro.com>>
> > Andrei Warkentin <andrei.warkentin@intel.com
> <mailto:andrei.warkentin@intel.com>>
>
> (4) You forgot to prepend "Cc:".
>
> (5) The cover letter (0/2 email here) should contain all the Cc: tags
> from the patches' commit messages, so that whoever gets at least one
> patch CC'd from the series also get the cover letter for the series.
>
> Thanks
> Laszlo
>
> >
> > Signed-off-by: Dhaval Sharma <dhaval@rivosinc.com
> <mailto:dhaval@rivosinc.com>>
> > ---
> > OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc
> b/OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc
> > index fe320525153f..8b5e010316ba 100644
> > --- a/OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc
> > +++ b/OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc
> > @@ -203,6 +203,8 @@ [PcdsFeatureFlag]
> > gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE
> >
> > [PcdsFixedAtBuild.common]
> > + gEfiMdePkgTokenSpaceGuid.PcdRVFeatureOverride|0
> > +
> > gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
> > gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
> > gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|0
>
>
>
> --
> Thanks!
> =D
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#109797): https://edk2.groups.io/g/devel/message/109797
Mute This Topic: https://groups.io/mt/102016149/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2023-10-19 9:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-17 12:17 [edk2-devel] [PATCH v5 0/2] MdePkg:Implement RISCV CMO Dhaval Sharma
2023-10-17 12:17 ` [edk2-devel] [PATCH v5 1/2] " Dhaval Sharma
2023-10-17 14:22 ` Laszlo Ersek
2023-10-17 14:32 ` Laszlo Ersek
2023-10-17 12:17 ` [edk2-devel] [PATCH v5 2/2] OvmfPkg/RiscVVirt: Override for RV CPU Features Dhaval Sharma
2023-10-17 14:25 ` Laszlo Ersek
2023-10-17 14:39 ` Laszlo Ersek
2023-10-19 6:48 ` Dhaval Sharma
2023-10-19 9:22 ` Laszlo Ersek [this message]
2023-10-19 12:17 ` Laszlo Ersek
2023-10-19 14:37 ` Dhaval Sharma
2023-10-19 15:51 ` Laszlo Ersek
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=5466efed-8dd4-1b8a-2bce-d0f324532f27@redhat.com \
--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