Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Michael D Kinney
There is a very good discussion here on the roles and responsibility
and potential suggestions for changes to the Wiki page that document
those roles and responsibilities.

May I suggest that someone start a new thread that discusses
the proposed changes to the Wiki page and leave this thread for the
review of the changes to Maintainers.txt?

Thanks,

Mike

> -Original Message-
> From: Yao, Jiewen 
> Sent: Sunday, October 29, 2023 7:54 PM
> To: devel@edk2.groups.io; ler...@redhat.com; pedro.falc...@gmail.com;
> Kinney, Michael D 
> Cc: Andrew Fish ; Leif Lindholm
> ; Warkentin, Andrei
> ; West, Catharine
> ; Bi, Dandan ; Daniel
> Schaefer ; David Woodhouse
> ; De, Debkumar ; Dong,
> Eric ; Jiang, Guomin ;
> Wu, Hao A ; James Bottomley ;
> Wang, Jian J ; Justen, Jordan L
> ; Julien Grall ; Peter
> Grehan ; Zhang, Qi1 ; Ng, Ray
> Han Lim ; Stefan Berger
> ; Hou, Wenxing ; Lu,
> Xiaoyu1 
> Subject: RE: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on
> active community members
> 
> > I'll re-raise my point about relaxing the contribution conditions
> too --
> > given this state, I'd propose a "merge by default" approach, with a
> > reasonable timeout.
> 
> [Jiewen] Yes. I agree this approach.
> A reasonable timeout seems enough to allow people to think and
> feedback.
> 
> 
> 
> Also, I would like to propose another the contribution condition
> relax.
> 
> Currently, our agreed condition to merge is:
> 1) Reviewed-by from Maintainer.
> 2) Acked-by from Maintainer + Reviewed-by from Reviewer
> 
> I propose to change the second condition:
> 2) Acked-by from Maintainer + Reviewed-by from anyone who can be
> trusted by the maintainer.
> 
> 
> That is based upon the current situation - anyone can be a reviewer
> just because they want to be CCed and has no expectation to review the
> code.
> Restricting R-B from a reviewer does not make sense to me.
> 
> Thank you
> Yao, Jiewen
> 
> 
> 
> > -Original Message-
> > From: devel@edk2.groups.io  On Behalf Of
> Laszlo Ersek
> > Sent: Sunday, October 29, 2023 9:30 PM
> > To: devel@edk2.groups.io; pedro.falc...@gmail.com; Kinney, Michael D
> > 
> > Cc: Andrew Fish ; Leif Lindholm
> ;
> > Warkentin, Andrei ; West, Catharine
> > ; Bi, Dandan ; Daniel
> > Schaefer ; David Woodhouse
> ;
> > De, Debkumar ; Dong, Eric
> ;
> > Jiang, Guomin ; Wu, Hao A
> ;
> > James Bottomley ; Wang, Jian J
> ;
> > Justen, Jordan L ; Julien Grall
> ;
> > Peter Grehan ; Zhang, Qi1 ;
> Ng,
> > Ray Han Lim ; Stefan Berger
> > ; Hou, Wenxing ; Lu,
> Xiaoyu1
> > 
> > Subject: Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based
> on active
> > community members
> >
> > On 10/29/23 03:16, Pedro Falcato wrote:
> > > On Sat, Oct 28, 2023 at 8:23 PM Michael D Kinney
> > >  wrote:
> > >>
> > >> Over the past few months, all the of the Maintainers and
> > >> Reviewers listed in Maintainers.txt have been contacted to make
> > >> sure Maintainers.txt accurately represents the TianoCore
> > >> community members that are actively participating in their
> > >> roles.  Based on specific feedback, bounced emails, and no
> > >> responses, updates have been made.
> > >>
> > >> * RISCV64: Daniel Schaefer replaced with Andrei Warkentin
> > >> * ArmVirtPkg Xen has no remaining reviewers and review
> > >>   responsibility defaults to ArmVirtPkg Maintainers/Reviewers.
> > >> * ACPI modules related to S3 has no remaining reviewers and
> > >>   review responsibility defaults to MdeModulePkg Maintainers/
> > >>   Reviewers.
> > >> * OVMF CSM modules has no remaining reviewers and review
> > >>   responsibility defaults to OvmfPkg Maintainers/Reviewers.
> > >> * Bounce: Chan Laura 
> > >> * Many smaller updates removing individuals that are no
> > >>   longer involved or have replacement coverage.
> > >
> > > Mike,
> > >
> > > Thank you so much for doing this thankless task. Some comments:
> > >
> > >> diff --git a/Maintainers.txt b/Maintainers.txt
> > >> index 3f40cdeb5554..2b03ccbe54aa 100644
> > >> --- a/Maintainers.txt
> > >> +++ b/Maintainers.txt
> > >> @@ -93,7 +93,7 @@ M: Sami Mujawar 
> > [samimujawar]
> > >>  RISCV64
> > >>  F: */RiscV64/
> > >>  M: Sunil V L  [vlsunil]
> > >> -R: Daniel Schaefer  [JohnAZoidberg]
> > >> +R: Andrei Warkentin  [andreiw]
> > >>
> > >>  LOONGARCH64
> > >>  F: */LoongArch64/
> > >> @@ -157,16 +157,6 @@ R: Leif Lindholm 
> > [leiflindholm]
> > >>  R: Sami Mujawar  [samimujawar]
> > >>  R: Gerd Hoffmann  [kraxel]
> > >>
> > >> -ArmVirtPkg: modules used on Xen
> > >> -F: ArmVirtPkg/ArmVirtXen.*
> > >> -F: ArmVirtPkg/Library/XenArmGenericTimerVirtCounterLib/
> > >> -F: ArmVirtPkg/Library/XenVirtMemInfoLib/
> > >> -F: ArmVirtPkg/PrePi/
> > >> -F: ArmVirtPkg/XenAcpiPlatformDxe/
> > >> -F: ArmVirtPkg/XenPlatformHasAcpiDtDxe/
> > >> -F: ArmVirtPkg/XenioFdtDxe/
> > >> -R: Julien Grall  [jgrall]
> > >
> > > ArmVirtPkg Xen modules seize to have a dedicated maintainer. Can
> the
> > > generic ArmVirtPkg maintainers handle *more code* (particularly,
> > > 

Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Peter Grehan

On 10/29/23 5:23 AM, Michael D Kinney wrote:

Over the past few months, all the of the Maintainers and
Reviewers listed in Maintainers.txt have been contacted to make
sure Maintainers.txt accurately represents the TianoCore
community members that are actively participating in their
roles.  Based on specific feedback, bounced emails, and no
responses, updates have been made.

* RISCV64: Daniel Schaefer replaced with Andrei Warkentin
* ArmVirtPkg Xen has no remaining reviewers and review
   responsibility defaults to ArmVirtPkg Maintainers/Reviewers.
* ACPI modules related to S3 has no remaining reviewers and
   review responsibility defaults to MdeModulePkg Maintainers/
   Reviewers.
* OVMF CSM modules has no remaining reviewers and review
   responsibility defaults to OvmfPkg Maintainers/Reviewers.
* Bounce: Chan Laura 
* Many smaller updates removing individuals that are no
   longer involved or have replacement coverage.

Cc: Andrew Fish 
Cc: Leif Lindholm 
Cc: Andrei Warkentin 
Cc: Catharine West 
Cc: Dandan Bi 
Cc: Daniel Schaefer 
Cc: David Woodhouse 
Cc: Debkumar De 
Cc: Eric Dong 
Cc: Guomin Jiang 
Cc: Hao A Wu 
Cc: James Bottomley 
Cc: Jian J Wang 
Cc: Jordan Justen 
Cc: Julien Grall 
Cc: Peter Grehan 
Cc: Qi Zhang 
Cc: Ray Han Lim Ng 
Cc: Stefan Berger 
Cc: Wenxing Hou 
Cc: Xiaoyu Lu 
Signed-off-by: Michael D Kinney 

...
 Reviewed-by: Peter Grehan 



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




Re: [edk2-devel] [PATCH 1/1] Maintainers.txt: Update maintainers list

2023-10-29 Thread Ni, Ray
For UefiCpuPkg part,

Reviewed-by: Ray Ni 

Thanks,
Ray

From: Attar, AbdulLateef (Abdul Lateef) 
Sent: Thursday, October 19, 2023 2:14 PM
To: Chang, Abner ; devel@edk2.groups.io 

Cc: Andrew Fish ; Leif Lindholm ; 
Kinney, Michael D ; Nickle Wang 
; Wang, Jian J ; Gao, Liming 
; Liu, Zhiguang ; Dong, Eric 
; Ni, Ray ; Kumar, Rahul R 
; Gerd Hoffmann 
Subject: RE: [PATCH 1/1] Maintainers.txt: Update maintainers list

[AMD Official Use Only - General]

Acked-by: Abdul Lateef Attar 

-Original Message-
From: Chang, Abner 
Sent: Thursday, October 19, 2023 11:13 AM
To: devel@edk2.groups.io
Cc: Andrew Fish ; Leif Lindholm ; 
Michael D Kinney ; Attar, AbdulLateef (Abdul 
Lateef) ; Nickle Wang ; Jian J 
Wang ; Liming Gao ; Zhiguang 
Liu ; Eric Dong ; Ray Ni 
; Rahul Kumar ; Gerd Hoffmann 

Subject: [PATCH 1/1] Maintainers.txt: Update maintainers list

From: Abner Chang 

- Add two entries of MdePkg and MdeModulePkg for
  manageability modules and files.
- Add one entry of UefiCpuPkg AMD related files.

Signed-off-by: Abner Chang 
Cc: Andrew Fish 
Cc: Leif Lindholm 
Cc: Michael D Kinney 
Cc: Abdul Lateef Attar 
Cc: Nickle Wang 
Cc: Jian J Wang 
Cc: Liming Gao 
Cc: Zhiguang Liu 
Cc: Eric Dong 
Cc: Ray Ni 
Cc: Rahul Kumar 
Cc: Gerd Hoffmann 
---
 Maintainers.txt | 21 +
 1 file changed, 21 insertions(+)

diff --git a/Maintainers.txt b/Maintainers.txt index 1a7525b1b4c..4bec19832f4 
100644
--- a/Maintainers.txt
+++ b/Maintainers.txt
@@ -443,6 +443,13 @@ F: MdeModulePkg/Include/Protocol/UsbEthernetProtocol.h
 M: Richard Ho  [richardho]
 R: Rebecca Cran  [bcran]

+MdeModulePkg: Manageability modules
+F: MdeModulePkg/Include/*Ipmi*.*
+F: MdeModulePkg/Library/*Ipmi*.*
+M: Abner Chang  [changab]
+R: Abdul Lateef Attar  [abdattar]
+R: Nickle Wang  [nicklela]
+
 MdePkg
 F: MdePkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/MdePkg
@@ -468,6 +475,14 @@ R: Gua Guo  [gguo11837463]
 R: Chasel Chiu  [ChaselChiu]
 R: James Lu  [jameslu8]

+MdePkg: Manageability industryStandard standard C header files
+F: MdePkg/Include/IndustryStandard/*Ipmi*.h
+F: MdePkg/Include/IndustryStandard/*Mctp*.h
+F: MdePkg/Include/IndustryStandard/*Pldm*.h
+M: Abner Chang  [changab]
+R: Abdul Lateef Attar  [abdattar]
+R: Nickle Wang  [nicklela]
+
 NetworkPkg
 F: NetworkPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/NetworkPkg
@@ -657,6 +672,12 @@ F: UefiCpuPkg/ResetVector/
 R: Debkumar De  [dde01]
 R: Catharine West  [catharine-intl]

+UefiCpuPkg: AMD related files
+F: UefiCpuPkg/Library/MmSaveStateLib/*Amd*.*
+F: UefiCpuPkg/Library/SmmCpuFeaturesLib/*Amd*.*
+M: Abdul Lateef Attar  [abdattar]
+R: Abner Chang  [changab]
+
 UefiPayloadPkg
 F: UefiPayloadPkg/
 W: https://github.com/tianocore/tianocore.github.io/wiki/UefiPayloadPkg
--
2.37.1.windows.1



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




Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Yao, Jiewen
> I'll re-raise my point about relaxing the contribution conditions too --
> given this state, I'd propose a "merge by default" approach, with a
> reasonable timeout.

[Jiewen] Yes. I agree this approach.
A reasonable timeout seems enough to allow people to think and feedback.



Also, I would like to propose another the contribution condition relax.

Currently, our agreed condition to merge is:
1) Reviewed-by from Maintainer.
2) Acked-by from Maintainer + Reviewed-by from Reviewer

I propose to change the second condition:
2) Acked-by from Maintainer + Reviewed-by from anyone who can be trusted by the 
maintainer.


That is based upon the current situation - anyone can be a reviewer just 
because they want to be CCed and has no expectation to review the code.
Restricting R-B from a reviewer does not make sense to me.

Thank you
Yao, Jiewen



> -Original Message-
> From: devel@edk2.groups.io  On Behalf Of Laszlo Ersek
> Sent: Sunday, October 29, 2023 9:30 PM
> To: devel@edk2.groups.io; pedro.falc...@gmail.com; Kinney, Michael D
> 
> Cc: Andrew Fish ; Leif Lindholm ;
> Warkentin, Andrei ; West, Catharine
> ; Bi, Dandan ; Daniel
> Schaefer ; David Woodhouse ;
> De, Debkumar ; Dong, Eric ;
> Jiang, Guomin ; Wu, Hao A ;
> James Bottomley ; Wang, Jian J ;
> Justen, Jordan L ; Julien Grall ;
> Peter Grehan ; Zhang, Qi1 ; Ng,
> Ray Han Lim ; Stefan Berger
> ; Hou, Wenxing ; Lu, Xiaoyu1
> 
> Subject: Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active
> community members
> 
> On 10/29/23 03:16, Pedro Falcato wrote:
> > On Sat, Oct 28, 2023 at 8:23 PM Michael D Kinney
> >  wrote:
> >>
> >> Over the past few months, all the of the Maintainers and
> >> Reviewers listed in Maintainers.txt have been contacted to make
> >> sure Maintainers.txt accurately represents the TianoCore
> >> community members that are actively participating in their
> >> roles.  Based on specific feedback, bounced emails, and no
> >> responses, updates have been made.
> >>
> >> * RISCV64: Daniel Schaefer replaced with Andrei Warkentin
> >> * ArmVirtPkg Xen has no remaining reviewers and review
> >>   responsibility defaults to ArmVirtPkg Maintainers/Reviewers.
> >> * ACPI modules related to S3 has no remaining reviewers and
> >>   review responsibility defaults to MdeModulePkg Maintainers/
> >>   Reviewers.
> >> * OVMF CSM modules has no remaining reviewers and review
> >>   responsibility defaults to OvmfPkg Maintainers/Reviewers.
> >> * Bounce: Chan Laura 
> >> * Many smaller updates removing individuals that are no
> >>   longer involved or have replacement coverage.
> >
> > Mike,
> >
> > Thank you so much for doing this thankless task. Some comments:
> >
> >> diff --git a/Maintainers.txt b/Maintainers.txt
> >> index 3f40cdeb5554..2b03ccbe54aa 100644
> >> --- a/Maintainers.txt
> >> +++ b/Maintainers.txt
> >> @@ -93,7 +93,7 @@ M: Sami Mujawar 
> [samimujawar]
> >>  RISCV64
> >>  F: */RiscV64/
> >>  M: Sunil V L  [vlsunil]
> >> -R: Daniel Schaefer  [JohnAZoidberg]
> >> +R: Andrei Warkentin  [andreiw]
> >>
> >>  LOONGARCH64
> >>  F: */LoongArch64/
> >> @@ -157,16 +157,6 @@ R: Leif Lindholm 
> [leiflindholm]
> >>  R: Sami Mujawar  [samimujawar]
> >>  R: Gerd Hoffmann  [kraxel]
> >>
> >> -ArmVirtPkg: modules used on Xen
> >> -F: ArmVirtPkg/ArmVirtXen.*
> >> -F: ArmVirtPkg/Library/XenArmGenericTimerVirtCounterLib/
> >> -F: ArmVirtPkg/Library/XenVirtMemInfoLib/
> >> -F: ArmVirtPkg/PrePi/
> >> -F: ArmVirtPkg/XenAcpiPlatformDxe/
> >> -F: ArmVirtPkg/XenPlatformHasAcpiDtDxe/
> >> -F: ArmVirtPkg/XenioFdtDxe/
> >> -R: Julien Grall  [jgrall]
> >
> > ArmVirtPkg Xen modules seize to have a dedicated maintainer. Can the
> > generic ArmVirtPkg maintainers handle *more code* (particularly,
> > functionality that's not trivial to test, unless you actively use
> > Xen)?
> 
> An alternative to removing this entire section is to replace Julien's
> line with the following status line:
> 
> S: Orphan
> 
> The definition in Maintainers.txt is:
> 
>  Orphan: No current maintainer [but maybe you could take the
>  role as you write your new code].
> 
> I think this might be clearer for all three of: contributors, consumers,
> and existent maintainers.
> 
> - Contributors: An ArmVirtPkg maintainer may techincally merge your
> code, but you won't get substantive feedback
> 
> - Consumers: you can build and run this code, but if it breaks, you get
> to keep both parts
> 
> - Existent ArmVirtPkg maintainers: you can rest assured in the knowledge
> that you are not saddled with deep technical reviews for this subsystem
> that you can't even boot in your environment. You're only responsible
> for the technical act of merging patches.
> 
> >
> >>  BaseTools
> >>  F: BaseTools/
> >>  W: https://github.com/tianocore/tianocore.github.io/wiki/BaseTools
> >> @@ -187,8 +177,7 @@ F: CryptoPkg/
> >>  W: https://github.com/tianocore/tianocore.github.io/wiki/CryptoPkg
> >>  M: Jiewen Yao  [jyao1]
> >>  M: Yi Li  [liyi77]
> >> -R: Xiaoyu 

Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Yao, Jiewen
Thanks Mike. I am reading the WIKI page.


> and/or provides testing or regression testing for the Package (or some 
> modules thereof), in certain platforms and environments.

[Jiewen] Are we expecting Reviewer to provide testing or regression testing for 
the package?
Is that what the reviewer *commits* to do?
For example, Maintainer may ask the reviewer to do some testing, right?


> Reviewer is responsible for timely responses on emails addressed to them 
> (preferably less than calendar week).

[Jiewen]
Is that what the reviewer *commits* to do?
For example, Maintainer may ask the reviewer to provide feedback, right?


Those are more than just CCed.


Thank you
Yao, Jiewen


> -Original Message-
> From: Kinney, Michael D 
> Sent: Monday, October 30, 2023 1:23 AM
> To: Yao, Jiewen ; j...@linux.ibm.com; Laszlo Ersek
> ; devel@edk2.groups.io; pedro.falc...@gmail.com
> Cc: Andrew Fish ; Leif Lindholm ;
> Warkentin, Andrei ; West, Catharine
> ; Bi, Dandan ; Daniel
> Schaefer ; David Woodhouse ;
> De, Debkumar ; Dong, Eric ;
> Jiang, Guomin ; Wu, Hao A ;
> Wang, Jian J ; Justen, Jordan L
> ; Julien Grall ; Peter Grehan
> ; Zhang, Qi1 ; Ng, Ray Han Lim
> ; Stefan Berger ; Hou,
> Wenxing ; Lu, Xiaoyu1 ;
> Kinney, Michael D 
> Subject: RE: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active
> community members
> 
> This is the Wiki page where TianoCore documents the TianoCore community
> member roles.
> 
> https://github.com/tianocore/tianocore.github.io/wiki/TianoCore-Who-we-are
> 
> We can update/edit as needed to accurately reflect what all the Maintainers
> and Reviewers agree are their roles and responsibilities as assigned in
> Maintainers.txt.
> 
> Thanks,
> 
> Mike
> 
> 
> > -Original Message-
> > From: Yao, Jiewen 
> > Sent: Sunday, October 29, 2023 9:26 AM
> > To: j...@linux.ibm.com; Laszlo Ersek ;
> > devel@edk2.groups.io; pedro.falc...@gmail.com; Kinney, Michael D
> > 
> > Cc: Andrew Fish ; Leif Lindholm
> > ; Warkentin, Andrei
> > ; West, Catharine
> > ; Bi, Dandan ; Daniel
> > Schaefer ; David Woodhouse
> > ; De, Debkumar ; Dong,
> > Eric ; Jiang, Guomin ;
> > Wu, Hao A ; Wang, Jian J ;
> > Justen, Jordan L ; Julien Grall
> > ; Peter Grehan ; Zhang, Qi1
> > ; Ng, Ray Han Lim ;
> > Stefan Berger ; Hou, Wenxing
> > ; Lu, Xiaoyu1 
> > Subject: RE: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on
> > active community members
> >
> > OK. Maintainer should do code review. I have no doubt on that.
> >
> > My confusion is about "reviewer" role. What is criteria and what is
> > responsibility?
> >
> > Are you saying that "reviewer" just means that someone raised the hand
> > and said: "I want to be notified", and there is no expectation that
> > he/she would review the patch?
> >
> > I would like to understand more on how that works and what that means.
> > Would you please give a URL for the reviewer definition in Linux
> > Kernel?
> >
> > Thank you
> > Yao, Jiewen
> >
> >
> >
> > > -Original Message-
> > > From: James Bottomley 
> > > Sent: Monday, October 30, 2023 12:02 AM
> > > To: Yao, Jiewen ; Laszlo Ersek
> > ;
> > > devel@edk2.groups.io; pedro.falc...@gmail.com; Kinney, Michael D
> > > 
> > > Cc: Andrew Fish ; Leif Lindholm
> > ;
> > > Warkentin, Andrei ; West, Catharine
> > > ; Bi, Dandan ; Daniel
> > > Schaefer ; David Woodhouse
> > ;
> > > De, Debkumar ; Dong, Eric
> > ;
> > > Jiang, Guomin ; Wu, Hao A
> > ;
> > > Wang, Jian J ; Justen, Jordan L
> > > ; Julien Grall ; Peter
> > Grehan
> > > ; Zhang, Qi1 ; Ng, Ray Han
> > Lim
> > > ; Stefan Berger ;
> > Hou,
> > > Wenxing ; Lu, Xiaoyu1 
> > > Subject: Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based
> > on active
> > > community members
> > >
> > > On Sun, 2023-10-29 at 15:42 +, Yao, Jiewen wrote:
> > > > > I'd say that's pretty close. A reviewer role is a request for
> > > > > keeping
> > > > > the reviewer in the loop.
> > > >
> > > > [Jiewen] I am disappointed on that.
> > > > To me, that is NOT a real reviewer. See below description on what
> > is
> > > > "code review".
> > > > https://google.github.io/eng-practices/review/
> > > > https://about.gitlab.com/topics/version-control/what-is-code-
> > review/
> > >
> > > Well, that's what someone's view of what a patch review should
> > consist
> > > of, not what a reviewer's role in MAINTAINERS should be.
> > >
> > > In general, you really don't want to force people to review patches,
> > > because you'd like a reviewer to be familiar with the area and
> > > comfortable with the patch.  So are you saying that anyone listed as
> > a
> > > reviewer in a particular area should be capable of reviewing any
> > patch?
> > > and further that they should be expected to review every patch?
> > > Because that's definitely not what the R role in the Linux Kernel
> > would
> > > mean.
> > >
> > > I know that's not what happened to me in Confidential Computing,
> > > because I had a very specific area around SEV and SEV-ES secret
> > > injection 

Re: [edk2-devel] [PATCH V1 2/2] OvmfPkg/BaseMemEncryptTdxLib: Handle retry result of MapGPA

2023-10-29 Thread sunceping
On Friday, October 27, 2023 7:05 PM, Gerd Hoffmann wrote:
> > +  while (RetryCount < MAX_RETRIES_PER_PAGE) {
> > +TdStatus = TdVmCallMapGPA (PhysicalAddress, Length,
> );
> > +if (TdStatus != TDVMCALL_STATUS_RETRY) {
> > +  break;
> > +}
> > +
> > +DEBUG ((DEBUG_VERBOSE, "%a: TdVmcall(MAPGPA) Retry
> > + PhysicalAddress is %llx, MapGpaRetryaddr is %llx\n", __func__,
> > + PhysicalAddress, MapGpaRetryaddr));
> > +
> > +EndAddress = PhysicalAddress + Length;
> 
> The end address doesn't change, you can move that out of the loop.
It would be updated in next version.

> 
> > +if ((MapGpaRetryaddr < PhysicalAddress) || (MapGpaRetryaddr >
> EndAddress)) {
> > +  DEBUG ((DEBUG_ERROR, "%a: TdVmcall(MAPGPA) failed Retry
> PhysicalAddress is %llx, MapGpaRetryaddr is %llx\n", __func__,
> PhysicalAddress, MapGpaRetryaddr));
> > +  break;
> > +}
> 
> The error message is misleading.  The actual problem is that the
> 'PhysicalAddress <= MapGpaRetryaddr <= EndAddress' sanity check failed.
The error message would be updated in next version.

> 

Thanks 
Ceping


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




Re: [edk2-devel] [PATCH v2 1/1] IpmiFeaturePkg/GenericIpmi: Support Standalone MM

2023-10-29 Thread Chang, Abner via groups.io
[AMD Official Use Only - General]

Hi Lisa, please check the comments in line.

> -Original Message-
> From: Lixia Huang 
> Sent: Monday, October 30, 2023 9:20 AM
> To: devel@edk2.groups.io
> Cc: Chang, Abner ; Nate DeSimone
> 
> Subject: [PATCH v2 1/1] IpmiFeaturePkg/GenericIpmi: Support Standalone
> MM
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> Add Standalone Mm Generic Impi driver. And add type 'PcdsFixedAtBuild'
> for PcdIpmiSmmIoBaseAddress to access in StandaloneMm driver
>
> Cc: Abner Chang 
> Cc: Nate DeSimone 
> Signed-off-by: Lixia Huang 
> ---
>
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Standa
> loneMm/StandaloneMmGenericIpmi.c   | 148 
>
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Standa
> loneMm/StandaloneMmGenericIpmi.inf |  52 +++
>
> Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dec
> |   2 +
>  3 files changed, 202 insertions(+)
>
> diff --git
> a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Stan
> daloneMm/StandaloneMmGenericIpmi.c
> b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Stan
> daloneMm/StandaloneMmGenericIpmi.c
> new file mode 100644
> index ..a8751f5b1a1d
> --- /dev/null
> +++
> b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Stan
> daloneMm/StandaloneMmGenericIpmi.c
> @@ -0,0 +1,148 @@
> +/** @file
> +  Generic StandaloneMm IPMI stack driver
> +
> +  @copyright
We don't usually have @copyright tag in file header. Is this a new requirement 
for the patch?

> +  Copyright 2023 Intel Corporation. 
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +**/
> +
> +//
> +// Statements that include other files
> +//
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include "IpmiHooks.h"
> +#include "IpmiBmcCommon.h"
> +#include "IpmiBmc.h"
Could you please move above three include statement below #include 
?



> +#include 
> +
> +IPMI_BMC_INSTANCE_DATA *mIpmiInstance;
> +EFI_HANDLE mHandle;
> +
> +EFI_STATUS
> +SmmInitializeIpmiKcsPhysicalLayer (
> +  VOID
> +  )
> +/*++
> +
> +Routine Description:
> +  Setup and initialize the BMC for the SMM phase.  In order to verify the BMC
> is functioning
> +  as expected, the BMC Selftest is performed.  The results are then checked
> and any errors are
> +  reported to the error manager.  Errors are collected throughout this 
> routine
> and reported
> +  just prior to installing the driver.  If there are more errors than
> MAX_SOFT_COUNT, then they
> +  will be ignored.
> +
> +Arguments:
> +  ImageHandle - Handle of this driver image
> +  SystemTable - Table containing standard EFI services
> +
> +Returns:
> +  EFI_SUCCESS - Successful driver initialization
> +
> +--*/
You still follow the old Intel coding style? I think we should have function 
header above the function. Could we relocate the function header?


> +{
> +  EFI_STATUS   Status;
> +
> +  DEBUG ((DEBUG_INFO,"SmmInitializeIpmiKcsPhysicalLayer entry \n"));
> +
> +  Status = gMmst->MmAllocatePool (
> +EfiRuntimeServicesData,
> +sizeof (IPMI_BMC_INSTANCE_DATA),
> +(VOID **));
> +
> +  if (EFI_ERROR (Status)) {
> +DEBUG ((DEBUG_ERROR, "mIpmiInstance mem alloc failed - 0x%x\n",
> Status));
> +return Status;
> +  } else {
> +
> +//
> +// Initialize the KCS transaction timeout. Assume delay unit is 1000 us.
> +//
> +mIpmiInstance->KcsTimeoutPeriod = (BMC_KCS_TIMEOUT * 1000*1000) /
> KCS_DELAY_UNIT;
> +
> +//
> +// Initialize IPMI IO Base, we still use SMS IO base to get device ID and
> Seltest result since SMM IF may have different cmds supported
> +//
> +mIpmiInstance->IpmiIoBase   = FixedPcdGet16
> (PcdIpmiSmmIoBaseAddress);
> +mIpmiInstance->Signature= SM_IPMI_BMC_SIGNATURE;
> +mIpmiInstance->SlaveAddress = BMC_SLAVE_ADDRESS;
> +mIpmiInstance->BmcStatus= BMC_NOTREADY;
> +mIpmiInstance->IpmiTransport.IpmiSubmitCommand  =
> IpmiSendCommand;
> +mIpmiInstance->IpmiTransport.GetBmcStatus   = IpmiGetBmcStatus;
> +
> +mHandle = NULL;
> +Status = gMmst->MmInstallProtocolInterface (
> +  ,
> +  ,
> +  EFI_NATIVE_INTERFACE,
> +  >IpmiTransport
> +  );
> +ASSERT_EFI_ERROR (Status);
> +
> +DEBUG ((DEBUG_INFO,"SmmInitializeIpmiKcsPhysicalLayer exit \n"));
> +
> +return EFI_SUCCESS;
> +  }
> +}
> +
> +/**
> +  The module Entry Point of driver.
> +
> +  @param  ImageHandleThe firmware allocated handle for the EFI image.
> +  @param  SystemTableA pointer to the MM 

[edk2-devel] [PATCH v2 1/1] IpmiFeaturePkg/GenericIpmi: Support Standalone MM

2023-10-29 Thread Huang, Li-Xia
Add Standalone Mm Generic Impi driver. And add type 'PcdsFixedAtBuild'
for PcdIpmiSmmIoBaseAddress to access in StandaloneMm driver

Cc: Abner Chang 
Cc: Nate DeSimone 
Signed-off-by: Lixia Huang 
---
 
Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/StandaloneMm/StandaloneMmGenericIpmi.c
   | 148 
 
Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/StandaloneMm/StandaloneMmGenericIpmi.inf
 |  52 +++
 Features/Intel/OutOfBandManagement/IpmiFeaturePkg/IpmiFeaturePkg.dec   
|   2 +
 3 files changed, 202 insertions(+)

diff --git 
a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/StandaloneMm/StandaloneMmGenericIpmi.c
 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/StandaloneMm/StandaloneMmGenericIpmi.c
new file mode 100644
index ..a8751f5b1a1d
--- /dev/null
+++ 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/StandaloneMm/StandaloneMmGenericIpmi.c
@@ -0,0 +1,148 @@
+/** @file
+  Generic StandaloneMm IPMI stack driver
+
+  @copyright
+  Copyright 2023 Intel Corporation. 
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+//
+// Statements that include other files
+//
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include "IpmiHooks.h"
+#include "IpmiBmcCommon.h"
+#include "IpmiBmc.h"
+#include 
+
+IPMI_BMC_INSTANCE_DATA *mIpmiInstance;
+EFI_HANDLE mHandle;
+
+EFI_STATUS
+SmmInitializeIpmiKcsPhysicalLayer (
+  VOID
+  )
+/*++
+
+Routine Description:
+  Setup and initialize the BMC for the SMM phase.  In order to verify the BMC 
is functioning
+  as expected, the BMC Selftest is performed.  The results are then checked 
and any errors are
+  reported to the error manager.  Errors are collected throughout this routine 
and reported
+  just prior to installing the driver.  If there are more errors than 
MAX_SOFT_COUNT, then they
+  will be ignored.
+
+Arguments:
+  ImageHandle - Handle of this driver image
+  SystemTable - Table containing standard EFI services
+
+Returns:
+  EFI_SUCCESS - Successful driver initialization
+
+--*/
+{
+  EFI_STATUS   Status;
+
+  DEBUG ((DEBUG_INFO,"SmmInitializeIpmiKcsPhysicalLayer entry \n"));
+
+  Status = gMmst->MmAllocatePool (
+EfiRuntimeServicesData,
+sizeof (IPMI_BMC_INSTANCE_DATA),
+(VOID **));
+
+  if (EFI_ERROR (Status)) {
+DEBUG ((DEBUG_ERROR, "mIpmiInstance mem alloc failed - 0x%x\n", Status));
+return Status;
+  } else {
+
+//
+// Initialize the KCS transaction timeout. Assume delay unit is 1000 us.
+//
+mIpmiInstance->KcsTimeoutPeriod = (BMC_KCS_TIMEOUT * 1000*1000) / 
KCS_DELAY_UNIT;
+
+//
+// Initialize IPMI IO Base, we still use SMS IO base to get device ID and 
Seltest result since SMM IF may have different cmds supported
+//
+mIpmiInstance->IpmiIoBase   = FixedPcdGet16 
(PcdIpmiSmmIoBaseAddress);
+mIpmiInstance->Signature= SM_IPMI_BMC_SIGNATURE;
+mIpmiInstance->SlaveAddress = BMC_SLAVE_ADDRESS;
+mIpmiInstance->BmcStatus= BMC_NOTREADY;
+mIpmiInstance->IpmiTransport.IpmiSubmitCommand  = IpmiSendCommand;
+mIpmiInstance->IpmiTransport.GetBmcStatus   = IpmiGetBmcStatus;
+
+mHandle = NULL;
+Status = gMmst->MmInstallProtocolInterface (
+  ,
+  ,
+  EFI_NATIVE_INTERFACE,
+  >IpmiTransport
+  );
+ASSERT_EFI_ERROR (Status);
+
+DEBUG ((DEBUG_INFO,"SmmInitializeIpmiKcsPhysicalLayer exit \n"));
+
+return EFI_SUCCESS;
+  }
+}
+
+/**
+  The module Entry Point of driver.
+
+  @param  ImageHandleThe firmware allocated handle for the EFI image.
+  @param  SystemTableA pointer to the MM System Table.
+
+  @retval EFI_SUCCESSThe entry point is executed successfully.
+  @retval Other  Some error occurs when executing this entry point.
+
+**/
+EFI_STATUS
+InitializeGenericIpmiStandaloneMm (
+  IN EFI_HANDLE ImageHandle,
+  IN EFI_MM_SYSTEM_TABLE*SystemTable
+  )
+{
+  SmmInitializeIpmiKcsPhysicalLayer ();
+  return EFI_SUCCESS;
+}
+
+/**
+  Unloads an image.
+
+  @param[in] ImageHandleHandle that identifies the image to be 
unloaded.
+
+  @retval EFI_SUCCESS   The image has been unloaded.
+  @retval EFI_INVALID_PARAMETER ImageHandle is not a valid image handle.
+
+**/
+EFI_STATUS
+EFIAPI
+GenericIpmiStandaloneMmUnload (
+  IN EFI_HANDLE ImageHandle
+  )
+{
+  EFI_STATUSStatus;
+
+  Status = EFI_SUCCESS;
+  if (mIpmiInstance != NULL) {
+if (mHandle != NULL) {
+  Status = gMmst->MmUninstallProtocolInterface (
+mHandle,
+,
+

Re: [edk2-devel] [PATCH 0/2] Add Platform Hook Lib into StandaloneMmCore

2023-10-29 Thread Xu, Wei6
Thanks Laszlo and Michael. As I synced with Ray, the platform hook is un 
necessary, we can implement in another way. So, let's drop this patch.
Thanks again for the kind review.

BR,
Wei


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




[edk2-devel] Event: Tools, CI, Code base construction meeting series - Monday, October 30, 2023 #cal-reminder

2023-10-29 Thread Group Notification
*Reminder: Tools, CI, Code base construction meeting series*

*When:*
Monday, October 30, 2023
4:30pm to 5:30pm
(UTC-07:00) America/Los Angeles

*Where:*
https://teams.microsoft.com/l/meetup-join/19%3ameeting_ZDI2ZDg4NmMtMjI1My00MzI5LWFmYjAtMGQyNjUzNTBjZGYw%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%2223af6561-6e1c-450d-b917-d9d674eb3cb6%22%7d

View Event ( https://edk2.groups.io/g/devel/viewevent?eventid=2072476 )

*Description:*

TianoCore community,

Microsoft and Intel will be hosting a series of open meetings to discuss build, 
CI, tools, and other related topics. If you are interested, have ideas/opinions 
please join us. These meetings will be Monday 4:30pm Pacific Time on Microsoft 
Teams.

MS Teams Link in following discussion: * 
https://github.com/tianocore/edk2/discussions/2614

Anyone is welcome to join.

* tianocore/edk2: EDK II (github.com)
* tianocore/edk2-basetools: EDK II BaseTools Python tools as a PIP module 
(github.com) https://github.com/tianocore/edk2-basetools
* tianocore/edk2-pytool-extensions: Extensions to the edk2 build system 
allowing for a more robust and plugin based build system and tool execution 
environment (github.com) https://github.com/tianocore/edk2-pytool-extensions
* tianocore/edk2-pytool-library: Python library package that supports UEFI 
development (github.com) https://github.com/tianocore/edk2-pytool-library

MS Teams Browser Clients * 
https://docs.microsoft.com/en-us/microsoftteams/get-clients?tabs=Windows#browser-client


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




Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Stefan Berger



On 10/28/23 15:23, Michael D Kinney wrote:

Over the past few months, all the of the Maintainers and
Reviewers listed in Maintainers.txt have been contacted to make
sure Maintainers.txt accurately represents the TianoCore
community members that are actively participating in their
roles.  Based on specific feedback, bounced emails, and no
responses, updates have been made.

* RISCV64: Daniel Schaefer replaced with Andrei Warkentin
* ArmVirtPkg Xen has no remaining reviewers and review
   responsibility defaults to ArmVirtPkg Maintainers/Reviewers.
* ACPI modules related to S3 has no remaining reviewers and
   review responsibility defaults to MdeModulePkg Maintainers/
   Reviewers.
* OVMF CSM modules has no remaining reviewers and review
   responsibility defaults to OvmfPkg Maintainers/Reviewers.
* Bounce: Chan Laura 
* Many smaller updates removing individuals that are no
   longer involved or have replacement coverage.

Cc: Andrew Fish 
Cc: Leif Lindholm 
Cc: Andrei Warkentin 
Cc: Catharine West 
Cc: Dandan Bi 
Cc: Daniel Schaefer 
Cc: David Woodhouse 
Cc: Debkumar De 
Cc: Eric Dong 
Cc: Guomin Jiang 
Cc: Hao A Wu 
Cc: James Bottomley 
Cc: Jian J Wang 
Cc: Jordan Justen 
Cc: Julien Grall 
Cc: Peter Grehan 
Cc: Qi Zhang 
Cc: Ray Han Lim Ng 
Cc: Stefan Berger 
Cc: Wenxing Hou 
Cc: Xiaoyu Lu 
Signed-off-by: Michael D Kinney 


Reviewed-by: Stefan Berger 




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




Re: [edk2-devel] [PATCH v7 0/5] Cache Management Operations Support For RISC-V

2023-10-29 Thread Pedro Falcato
On Sun, Oct 29, 2023 at 2:46 PM Dhaval Sharma  wrote:
>
> Implementing code to support Cache Management Operations (CMO) defined by
> RISC-V CMO instructions.https://github.com/riscv/riscv-CMOs
> This is a re-write of original series v5.
> The patchset contains 5 patches- created based on V5 feedback.
> 1. Restructuring of existing code and move instruction declarations into 
> BaseLib
> 2. Renaming existing functions to denote type of instruction used to maanage 
> cache.
>This is useful for further patches where more cache management 
> instructions are added.
> 3. Add the new cache maintenance operations to BaseLib, including the
>  new assembly instruction encodings.
> 4. Update BaseCacheMaintenanceLib (utilizing the new BaseLib primitives)
> 5. Add platform level PCD to allow overriding of RISC-V features.
>

With or without nits fixed:

Reviewed-by: Pedro Falcato 

But I would *really* prefer it if you could test this on a real board
with this extension.

-- 
Pedro


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




Re: [edk2-devel] [PATCH v7 3/5] MdePkg: Implement RISC-V Cache Management Operations

2023-10-29 Thread Pedro Falcato
On Sun, Oct 29, 2023 at 2:46 PM Dhaval Sharma  wrote:
>
> Implement Cache Management Operations (CMO) defined by
> RISC-V spec https://github.com/riscv/riscv-CMOs.
>
> Notes:
> 1. CMO only supports block based Operations. Meaning cache
>flush/invd/clean Operations are not available for the entire
>range. In that case we fallback on fence.i instructions.
> 2. Operations are implemented using Opcodes to make them compiler
>independent. binutils 2.39+ compilers support CMO instructions.
>
> Test:
> 1. Ensured correct instructions are refelecting in asm

nit: reflecting

> 2. Not able to verify actual instruction in HW as Qemu ignores
>any actual cache operations.

Do you have no way to test this in hardware? Since Rivos is a RISCV
vendor and all ;)
I don't like inviting the idea of merging CPU architectural changes
without actually testing them in something resembling real silicon
(i.e QEMU KVM is _fine_, QEMU TCG really isn't).

-- 
Pedro


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




Re: [edk2-devel] [PATCH v7 4/5] MdePkg: Utilize Cache Management Operations Implementation For RISC-V

2023-10-29 Thread Pedro Falcato
On Sun, Oct 29, 2023 at 2:46 PM Dhaval Sharma  wrote:
>
> Use newly defined cache management operations for RISC-V where possible
> It builds up on the support added for RISC-V cache management
> instructions in BaseLib.
> Cc: Michael D Kinney 
> Cc: Liming Gao 
> Cc: Zhiguang Liu 
> Cc: Laszlo Ersek 
>
> Signed-off-by: Dhaval Sharma 
> Acked-by: Laszlo Ersek 
> ---
>
> Notes:
> V7:
> - Added PcdLib
> - Restructure DEBUG message based on feedback on V6
> - Make naming consistent to CMO, remove all CBO references
> - Add ASSERT for not supported functions instead of plain debug message
> - Added RB tag
> V6:
> - Utilize cache management instructions if HW supports it
>   This patch is part of restructuring on top of v5
>
>  MdePkg/MdePkg.dec  |   8 +
>  MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf |   5 +
>  MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c| 168 
> +---
>  MdePkg/MdePkg.uni  |   4 +
>  4 files changed, 165 insertions(+), 20 deletions(-)
>
> diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
> index ac54338089e8..fa92673ff633 100644
> --- a/MdePkg/MdePkg.dec
> +++ b/MdePkg/MdePkg.dec
> @@ -2399,6 +2399,14 @@ [PcdsFixedAtBuild.AARCH64, 
> PcdsPatchableInModule.AARCH64]
># @Prompt CPU Rng algorithm's GUID.
>
> gEfiMdePkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm|{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}|VOID*|0x0037
>
> +[PcdsFixedAtBuild.RISCV64, PcdsPatchableInModule.RISCV64]
> +  #
> +  # Configurability to override RISC-V CPU Features
> +  # BIT 0 = Cache Management Operations. This bit is relevant only if
> +  # previous stage has feature enabled and user wants to disable it.
> +  #
> +  
> gEfiMdePkgTokenSpaceGuid.PcdRiscVFeatureOverride|0x|UINT64|0x69
> +
>  [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
>## This value is used to set the base address of PCI express hierarchy.
># @Prompt PCI Express Base Address.
> diff --git 
> a/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf 
> b/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
> index 6fd9cbe5f6c9..601a38d6c109 100644
> --- a/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
> +++ b/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
> @@ -56,3 +56,8 @@ [LibraryClasses]
>BaseLib
>DebugLib
>
> +[LibraryClasses.RISCV64]
> +  PcdLib
> +
> +[Pcd.RISCV64]
> +  gEfiMdePkgTokenSpaceGuid.PcdRiscVFeatureOverride  ## CONSUMES
> diff --git a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c 
> b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
> index 4eb18edb9aa7..5b3104afb67e 100644
> --- a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
> +++ b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
> @@ -2,6 +2,7 @@
>RISC-V specific functionality for cache.
>
>Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights 
> reserved.
> +  Copyright (c) 2023, Rivos Inc. All rights reserved.
>
>SPDX-License-Identifier: BSD-2-Clause-Patent
>  **/
> @@ -9,10 +10,115 @@
>  #include 
>  #include 
>  #include 
> +#include 
> +
> +//
> +// TODO: Grab cache block size and make Cache Management Operation
> +// enabling decision based on RISC-V CPU HOB in
> +// future when it is available.
> +//
> +#define RISCV_CACHE_BLOCK_SIZE 64
> +#define RISCV_CPU_FEATURE_CMO_BITMASK  0x1
> +
> +typedef enum {
> +  Clean,
> +  Flush,
> +  Invld,
> +} CACHE_OP;

small nit: You may want to do something like CACHE_OP_{CLEAN, FLUSH,
INVID}. but since this is a file-local enum I don't consider this
merge-blocking.

-- 
Pedro


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




Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Pedro Falcato
On Sun, Oct 29, 2023 at 1:30 PM Laszlo Ersek  wrote:
>
> On 10/29/23 03:16, Pedro Falcato wrote:
> >> diff --git a/Maintainers.txt b/Maintainers.txt
> >> index 3f40cdeb5554..2b03ccbe54aa 100644
> >> --- a/Maintainers.txt
> >> +++ b/Maintainers.txt
> >> @@ -93,7 +93,7 @@ M: Sami Mujawar  [samimujawar]
> >>  RISCV64
> >>  F: */RiscV64/
> >>  M: Sunil V L  [vlsunil]
> >> -R: Daniel Schaefer  [JohnAZoidberg]
> >> +R: Andrei Warkentin  [andreiw]
> >>
> >>  LOONGARCH64
> >>  F: */LoongArch64/
> >> @@ -157,16 +157,6 @@ R: Leif Lindholm  
> >> [leiflindholm]
> >>  R: Sami Mujawar  [samimujawar]
> >>  R: Gerd Hoffmann  [kraxel]
> >>
> >> -ArmVirtPkg: modules used on Xen
> >> -F: ArmVirtPkg/ArmVirtXen.*
> >> -F: ArmVirtPkg/Library/XenArmGenericTimerVirtCounterLib/
> >> -F: ArmVirtPkg/Library/XenVirtMemInfoLib/
> >> -F: ArmVirtPkg/PrePi/
> >> -F: ArmVirtPkg/XenAcpiPlatformDxe/
> >> -F: ArmVirtPkg/XenPlatformHasAcpiDtDxe/
> >> -F: ArmVirtPkg/XenioFdtDxe/
> >> -R: Julien Grall  [jgrall]
> >
> > ArmVirtPkg Xen modules seize to have a dedicated maintainer. Can the
> > generic ArmVirtPkg maintainers handle *more code* (particularly,
> > functionality that's not trivial to test, unless you actively use
> > Xen)?
>
> An alternative to removing this entire section is to replace Julien's
> line with the following status line:
>
> S: Orphan
>
> The definition in Maintainers.txt is:
>
>  Orphan: No current maintainer [but maybe you could take the
>  role as you write your new code].
>
> I think this might be clearer for all three of: contributors, consumers,
> and existent maintainers.
>
> - Contributors: An ArmVirtPkg maintainer may techincally merge your
> code, but you won't get substantive feedback
>
> - Consumers: you can build and run this code, but if it breaks, you get
> to keep both parts
>
> - Existent ArmVirtPkg maintainers: you can rest assured in the knowledge
> that you are not saddled with deep technical reviews for this subsystem
> that you can't even boot in your environment. You're only responsible
> for the technical act of merging patches.

I agree with this solution, but I do think there should be a "time
limit" for orphaned code. You don't want to keep orphaned code for too
long, this is not a practice we should support (which may lead to
corporate code dumps where corps just dump a bunch of patches on the
mailing list, fire and forget, and they're still "supported").

>
> >
> >>  BaseTools
> >>  F: BaseTools/
> >>  W: https://github.com/tianocore/tianocore.github.io/wiki/BaseTools
> >> @@ -187,8 +177,7 @@ F: CryptoPkg/
> >>  W: https://github.com/tianocore/tianocore.github.io/wiki/CryptoPkg
> >>  M: Jiewen Yao  [jyao1]
> >>  M: Yi Li  [liyi77]
> >> -R: Xiaoyu Lu  [xiaoyuxlu]
> >> -R: Guomin Jiang  [guominjia]
> >> +R: Wenxing Hou  [Wenxing-hou]
> >>
> >>  DynamicTablesPkg
> >>  F: DynamicTablesPkg/
> >> @@ -202,7 +191,6 @@ W: 
> >> https://github.com/tianocore/tianocore.github.io/wiki/EmbeddedPkg
> >>  M: Leif Lindholm  [leiflindholm]
> >>  M: Ard Biesheuvel  [ardbiesheuvel]
> >>  M: Abner Chang  [changab]
> >> -R: Daniel Schaefer  [JohnAZoidberg]
> >>
> >>  EmulatorPkg
> >>  F: EmulatorPkg/
> >> @@ -228,7 +216,6 @@ F: FmpDevicePkg/
> >>  W: https://github.com/tianocore/tianocore.github.io/wiki/FmpDevicePkg
> >>  M: Liming Gao  [lgao4]
> >>  M: Michael D Kinney  [mdkinney]
> >> -R: Guomin Jiang  [guominjia]
> >>  R: Wei6 Xu  [xuweiintel]
> >>
> >>  IntelFsp2Pkg
> >> @@ -237,7 +224,6 @@ W: 
> >> https://github.com/tianocore/tianocore.github.io/wiki/IntelFsp2Pkg
> >>  M: Chasel Chiu  [ChaselChiu]
> >>  M: Nate DeSimone  [nate-desimone]
> >>  M: Duggapu Chinni B  [cbduggap]
> >> -M: Ray Han Lim Ng  [rayhanlimng]
> >>  R: Star Zeng  [lzeng14]
> >>  R: Ted Kuo  [tedkuo1]
> >>  R: Ashraf Ali S  [AshrafAliS]
> >> @@ -258,7 +244,6 @@ R: Susovan Mohapatra  
> >> [susovanmohapatra]
> >>  MdeModulePkg
> >>  F: MdeModulePkg/
> >>  W: https://github.com/tianocore/tianocore.github.io/wiki/MdeModulePkg
> >> -M: Jian J Wang  [jwang36]
> >>  M: Liming Gao  [lgao4]
> >
> > MdeModulePkg now only has a single maintainer (Liming, who also
> > handles a myriad of other tasks and packages)
>
> This leads me to my main point: it may be time for edk2 to adopt a
> leaner contribution process.
>
> We can insist on no patch going in without maintainer approval, but that
> -- i.e., maintainer authority -- only works as long as it goes hand in
> hand with maintainer responsibility: timely reviews. If the community
> cannot offer enough working hours for reviewing patches for a subsystem,
> then the requirements to contribute to that subsystem should be relaxed.
> The other alternative is that the subsystem goes into stasis, where it
> becomes effectively impossible to contribute to a subsystem.
>
> (NB this "relaxation of contribution rules" is entirely orthogonal to
> using a mailing list vs. github pull requests. I still strongly prefer
> the mailing list.)
>
> So maybe we could say, if there is no patch 

Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Pedro Falcato
On Sun, Oct 29, 2023 at 4:25 PM Yao, Jiewen  wrote:
>
> OK. Maintainer should do code review. I have no doubt on that.
>
> My confusion is about "reviewer" role. What is criteria and what is 
> responsibility?
>
> Are you saying that "reviewer" just means that someone raised the hand and 
> said: "I want to be notified", and there is no expectation that he/she would 
> review the patch?
>
> I would like to understand more on how that works and what that means.

The Linux development process, as I understand it (it may be a bit
imprecise, AFAIK lots of it isn't written):

Maintainers are the primary caretakers of the code. They'll review and
merge patches (in linux, they usually add their own Signed-off-by,
they don't do Reviewed-by). Sometimes, they'll post a patch on the
mailing list, and if there's no poor feedback, they just merge it to
their trees, unilaterally (for Linux, Linus usually pulls from
maintainer trees, and if he doesn't like something he *will* tell
you).

Reviewers are people that want to be CC'd and want to review patches,
but they're not expected to always do so. There's of course an
expectation that reviewers are relatively competent in the area
they're reviewing.
There's an expectation that you will help out and participate in code
review from time to time.

As an example:

SLAB ALLOCATOR
M: Christoph Lameter 
M: Pekka Enberg 
M: David Rientjes 
M: Joonsoo Kim 
M: Andrew Morton 
M: Vlastimil Babka 
R: Roman Gushchin 
R: Hyeonggon Yoo <42.hye...@gmail.com>
L: linux...@kvack.org
S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git
F: include/linux/sl?b*.h
F: mm/sl?b*

For a patch for mm/slab.c, you CC all M's and R's. Maintainers are the
one with the 'power' to merge it, and should give you feedback.
Reviewers sometimes help out (but are secondary in the patch review
role), but they cannot merge patches.
You only merge a patch if there's an understanding that most people
and stakeholders are ok with it; for example, you may want feedback
from people that are not M's and R's. If everyone is ok with your
patch, a maintainer will apply it (in this case, it's vbabka's tree so
he usually takes care of it), and it will eventually trickle up to
Linus (who manages the 'master' git tree) who gives the final seal of
approval when pulling changes.

For a smaller example, we can look at EFI, which has a sole maintainer
(Ard) and no reviewers; this is ok (EFI is a lot less central to the
kernel than SLAB, there are a lot less patches), but stakeholders in
the various changes should still test and review.

This is a nice rough description of the whole development process:
https://docs.kernel.org/process/2.Process.html
Note that EDK2 is considerably smaller than the kernel in scope and
patch volume, so it probably doesn't make much sense to be as
distributed as Linux.

PS: It's worth noting that the Linux equivalent to GetMaintainers.py
takes into account the git blame of the files you're touching, terms
you mention in the commit message; that is, it will automatically pick
up people that have touched the code before or are responsible for
features you're interacting with.

-- 
Pedro


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




Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Michael D Kinney
This is the Wiki page where TianoCore documents the TianoCore community
member roles.

https://github.com/tianocore/tianocore.github.io/wiki/TianoCore-Who-we-are

We can update/edit as needed to accurately reflect what all the Maintainers
and Reviewers agree are their roles and responsibilities as assigned in
Maintainers.txt.

Thanks,

Mike


> -Original Message-
> From: Yao, Jiewen 
> Sent: Sunday, October 29, 2023 9:26 AM
> To: j...@linux.ibm.com; Laszlo Ersek ;
> devel@edk2.groups.io; pedro.falc...@gmail.com; Kinney, Michael D
> 
> Cc: Andrew Fish ; Leif Lindholm
> ; Warkentin, Andrei
> ; West, Catharine
> ; Bi, Dandan ; Daniel
> Schaefer ; David Woodhouse
> ; De, Debkumar ; Dong,
> Eric ; Jiang, Guomin ;
> Wu, Hao A ; Wang, Jian J ;
> Justen, Jordan L ; Julien Grall
> ; Peter Grehan ; Zhang, Qi1
> ; Ng, Ray Han Lim ;
> Stefan Berger ; Hou, Wenxing
> ; Lu, Xiaoyu1 
> Subject: RE: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on
> active community members
> 
> OK. Maintainer should do code review. I have no doubt on that.
> 
> My confusion is about "reviewer" role. What is criteria and what is
> responsibility?
> 
> Are you saying that "reviewer" just means that someone raised the hand
> and said: "I want to be notified", and there is no expectation that
> he/she would review the patch?
> 
> I would like to understand more on how that works and what that means.
> Would you please give a URL for the reviewer definition in Linux
> Kernel?
> 
> Thank you
> Yao, Jiewen
> 
> 
> 
> > -Original Message-
> > From: James Bottomley 
> > Sent: Monday, October 30, 2023 12:02 AM
> > To: Yao, Jiewen ; Laszlo Ersek
> ;
> > devel@edk2.groups.io; pedro.falc...@gmail.com; Kinney, Michael D
> > 
> > Cc: Andrew Fish ; Leif Lindholm
> ;
> > Warkentin, Andrei ; West, Catharine
> > ; Bi, Dandan ; Daniel
> > Schaefer ; David Woodhouse
> ;
> > De, Debkumar ; Dong, Eric
> ;
> > Jiang, Guomin ; Wu, Hao A
> ;
> > Wang, Jian J ; Justen, Jordan L
> > ; Julien Grall ; Peter
> Grehan
> > ; Zhang, Qi1 ; Ng, Ray Han
> Lim
> > ; Stefan Berger ;
> Hou,
> > Wenxing ; Lu, Xiaoyu1 
> > Subject: Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based
> on active
> > community members
> >
> > On Sun, 2023-10-29 at 15:42 +, Yao, Jiewen wrote:
> > > > I'd say that's pretty close. A reviewer role is a request for
> > > > keeping
> > > > the reviewer in the loop.
> > >
> > > [Jiewen] I am disappointed on that.
> > > To me, that is NOT a real reviewer. See below description on what
> is
> > > "code review".
> > > https://google.github.io/eng-practices/review/
> > > https://about.gitlab.com/topics/version-control/what-is-code-
> review/
> >
> > Well, that's what someone's view of what a patch review should
> consist
> > of, not what a reviewer's role in MAINTAINERS should be.
> >
> > In general, you really don't want to force people to review patches,
> > because you'd like a reviewer to be familiar with the area and
> > comfortable with the patch.  So are you saying that anyone listed as
> a
> > reviewer in a particular area should be capable of reviewing any
> patch?
> > and further that they should be expected to review every patch?
> > Because that's definitely not what the R role in the Linux Kernel
> would
> > mean.
> >
> > I know that's not what happened to me in Confidential Computing,
> > because I had a very specific area around SEV and SEV-ES secret
> > injection and really had no familiarity at all with say the memory
> > acceptance patches.
> >
> > > Our definition seems more like *a notification receiver*, instead
> of
> > > a real code reviewer. I would say, it is a very misleading
> > > definition.
> >
> > Actually, I wouldn't, but then I'm more coming from a Linux Kernel
> > background.  To us, the reviewer list is simply a list of people git
> > blame might not find who might have the expertise to review the
> patch
> > but on whom there would be no expectation that they would review the
> > patch.
> >
> > James



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




Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Yao, Jiewen
OK. Maintainer should do code review. I have no doubt on that.

My confusion is about "reviewer" role. What is criteria and what is 
responsibility?

Are you saying that "reviewer" just means that someone raised the hand and 
said: "I want to be notified", and there is no expectation that he/she would 
review the patch?

I would like to understand more on how that works and what that means.
Would you please give a URL for the reviewer definition in Linux Kernel?

Thank you
Yao, Jiewen



> -Original Message-
> From: James Bottomley 
> Sent: Monday, October 30, 2023 12:02 AM
> To: Yao, Jiewen ; Laszlo Ersek ;
> devel@edk2.groups.io; pedro.falc...@gmail.com; Kinney, Michael D
> 
> Cc: Andrew Fish ; Leif Lindholm ;
> Warkentin, Andrei ; West, Catharine
> ; Bi, Dandan ; Daniel
> Schaefer ; David Woodhouse ;
> De, Debkumar ; Dong, Eric ;
> Jiang, Guomin ; Wu, Hao A ;
> Wang, Jian J ; Justen, Jordan L
> ; Julien Grall ; Peter Grehan
> ; Zhang, Qi1 ; Ng, Ray Han Lim
> ; Stefan Berger ; Hou,
> Wenxing ; Lu, Xiaoyu1 
> Subject: Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active
> community members
> 
> On Sun, 2023-10-29 at 15:42 +, Yao, Jiewen wrote:
> > > I'd say that's pretty close. A reviewer role is a request for
> > > keeping
> > > the reviewer in the loop.
> >
> > [Jiewen] I am disappointed on that.
> > To me, that is NOT a real reviewer. See below description on what is
> > "code review".
> > https://google.github.io/eng-practices/review/
> > https://about.gitlab.com/topics/version-control/what-is-code-review/
> 
> Well, that's what someone's view of what a patch review should consist
> of, not what a reviewer's role in MAINTAINERS should be.
> 
> In general, you really don't want to force people to review patches,
> because you'd like a reviewer to be familiar with the area and
> comfortable with the patch.  So are you saying that anyone listed as a
> reviewer in a particular area should be capable of reviewing any patch?
> and further that they should be expected to review every patch?
> Because that's definitely not what the R role in the Linux Kernel would
> mean.
> 
> I know that's not what happened to me in Confidential Computing,
> because I had a very specific area around SEV and SEV-ES secret
> injection and really had no familiarity at all with say the memory
> acceptance patches.
> 
> > Our definition seems more like *a notification receiver*, instead of
> > a real code reviewer. I would say, it is a very misleading
> > definition.
> 
> Actually, I wouldn't, but then I'm more coming from a Linux Kernel
> background.  To us, the reviewer list is simply a list of people git
> blame might not find who might have the expertise to review the patch
> but on whom there would be no expectation that they would review the
> patch.
> 
> James



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




Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread James Bottomley
On Sun, 2023-10-29 at 15:42 +, Yao, Jiewen wrote:
> > I'd say that's pretty close. A reviewer role is a request for
> > keeping
> > the reviewer in the loop.
> 
> [Jiewen] I am disappointed on that.
> To me, that is NOT a real reviewer. See below description on what is
> "code review".
> https://google.github.io/eng-practices/review/
> https://about.gitlab.com/topics/version-control/what-is-code-review/

Well, that's what someone's view of what a patch review should consist
of, not what a reviewer's role in MAINTAINERS should be.

In general, you really don't want to force people to review patches,
because you'd like a reviewer to be familiar with the area and
comfortable with the patch.  So are you saying that anyone listed as a
reviewer in a particular area should be capable of reviewing any patch?
and further that they should be expected to review every patch? 
Because that's definitely not what the R role in the Linux Kernel would
mean.

I know that's not what happened to me in Confidential Computing,
because I had a very specific area around SEV and SEV-ES secret
injection and really had no familiarity at all with say the memory
acceptance patches.

> Our definition seems more like *a notification receiver*, instead of
> a real code reviewer. I would say, it is a very misleading
> definition.

Actually, I wouldn't, but then I'm more coming from a Linux Kernel
background.  To us, the reviewer list is simply a list of people git
blame might not find who might have the expertise to review the patch
but on whom there would be no expectation that they would review the
patch.

James



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




Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Yao, Jiewen
> I'd say that's pretty close. A reviewer role is a request for keeping
> the reviewer in the loop.

[Jiewen] I am disappointed on that.
To me, that is NOT a real reviewer. See below description on what is "code 
review".
https://google.github.io/eng-practices/review/
https://about.gitlab.com/topics/version-control/what-is-code-review/

Our definition seems more like *a notification receiver*, instead of a real 
code reviewer.
I would say, it is a very misleading definition.

Thank you
Yao, Jiewen


> -Original Message-
> From: Laszlo Ersek 
> Sent: Sunday, October 29, 2023 9:48 PM
> To: devel@edk2.groups.io; Yao, Jiewen ;
> pedro.falc...@gmail.com; Kinney, Michael D 
> Cc: Andrew Fish ; Leif Lindholm ;
> Warkentin, Andrei ; West, Catharine
> ; Bi, Dandan ; Daniel
> Schaefer ; David Woodhouse ;
> De, Debkumar ; Dong, Eric ;
> Jiang, Guomin ; Wu, Hao A ;
> James Bottomley ; Wang, Jian J ;
> Justen, Jordan L ; Julien Grall ;
> Peter Grehan ; Zhang, Qi1 ; Ng,
> Ray Han Lim ; Stefan Berger
> ; Hou, Wenxing ; Lu, Xiaoyu1
> 
> Subject: Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active
> community members
> 
> On 10/29/23 09:05, Yao, Jiewen wrote:
> > Those are great questions. I also would like to understand:
> >
> > 1) What is definition of "actively participating in their roles"?
> 
> Here are the definitions of Maintainer and Reviewer, from
> "Maintainers.txt":
> 
>   M: Package Maintainer: Cc address for patches and questions. Responsible
>  for reviewing and pushing package changes to source control.
>   R: Package Reviewer: Cc address for patches and questions. Reviewers help
>  maintainers review code, but don't have push access. A designated Package
>  Reviewer is reasonably familiar with the Package (or some modules
>  thereof), and/or provides testing or regression testing for the Package
>  (or some modules thereof), in certain platforms and environments.
> 
> > Is there any enforcement or just volunteer work?
> 
> I see the Maintainer role as a service to the community, with some
> benefits granted in return. The "service" part should be clear. The
> benefit is that you are kept in the loop, and sometimes (when you must)
> you *can* say "no". (According to some seasoned reviewers, the one real
> power of a maintainer -- not to be abused! -- is "saying no".) A
> maintainer that's present helps set the focus, keep regressions out,
> gives advice when needed, and so on.
> 
> Enforcement would be nice (haha), but it never works. You can't force
> people to help, especially if their dayjob instructions oppose their
> upstream community responsibilities. That's fine; in such cases my
> request is always: if you can't help, then at least don't get in the
> way, step down. Don't block people from doing their work by having them
> wait for your feedback.
> 
> So volunteer work is fine, but as soon as the position grows "fangs" (=
> a capacity to make others wait), then it becomes a promise, a
> responsibility.
> 
> >
> > 2) What is role and *responsibility* of Reviewer role? Is it
> > documented somewhere?
> > Per my observation, some assigned reviewers have never reviewed any
> > patch in history or provided valuable feedback. To me, reviewer role
> > seems more like a notification instead of really review something. Is
> > that our purpose?
> 
> I'd say that's pretty close. A reviewer role is a request for keeping
> the reviewer in the loop. Maintainers tend to appreciate that, because a
> long-term reviewer may provide good insights, test results, and so on.
> Trust is super important; a maintainer may push a patch based solely on
> a reviewer's positive feedback, due to the latter's experience.
> 
> > While Laszlo contributed a lots in Tianocore community, he is really a
> > good "reviewer", although he has no such title.
> 
> Thanks for the acknowledgement, I appreciate it!
> 
> I don't like to hoard titles. I'm sure titles are good for one's career,
> but I always see the *promise* (the responsibility) to the community,
> first and foremost, that a title encapsulates. It weighs heavily on me.
> I loathe disappointing people. For me, not to bear a title is better
> than to bear it and not to deliver on it / not to live up to it.
> 
> Laszlo



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




Re: [edk2-devel] [PATCH v6 4/5] MdePkg: Utilize Cache Management Operations Implementation For RISC-V

2023-10-29 Thread Dhaval Sharma
Replied inline. Most of the cases I have addressed in the new patch I
submitted.

On Wed, Oct 25, 2023 at 1:39 AM Pedro Falcato 
wrote:

> On Sat, Oct 21, 2023 at 6:33 PM Dhaval Sharma  wrote:
> >
> > Use newly defined cache management operations for RISC-V where possible
> > It builds up on the support added for RISC-V cache management
> > instructions in BaseLib.
> > Cc: Michael D Kinney 
> > Cc: Liming Gao 
> > Cc: Zhiguang Liu 
> > Cc: Laszlo Ersek 
> >
> > Signed-off-by: Dhaval Sharma 
> > ---
> >
> > Notes:
> > V1:
> > - Utilize cache management instructions if HW supports it
> >   This patch is part of restructuring on top of v5
> >
> >  MdePkg/MdePkg.dec  |
>  8 +
> >  MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf |
>  2 +
> >  MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c|
> 159 +---
> >  MdePkg/MdePkg.uni  |
>  4 +
> >  4 files changed, 154 insertions(+), 19 deletions(-)
> >
> > diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
> > index ac54338089e8..fa92673ff633 100644
> > --- a/MdePkg/MdePkg.dec
> > +++ b/MdePkg/MdePkg.dec
> > @@ -2399,6 +2399,14 @@ [PcdsFixedAtBuild.AARCH64,
> PcdsPatchableInModule.AARCH64]
> ># @Prompt CPU Rng algorithm's GUID.
> >
> gEfiMdePkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm|{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}|VOID*|0x0037
> >
> > +[PcdsFixedAtBuild.RISCV64, PcdsPatchableInModule.RISCV64]
> > +  #
> > +  # Configurability to override RISC-V CPU Features
> > +  # BIT 0 = Cache Management Operations. This bit is relevant only if
> > +  # previous stage has feature enabled and user wants to disable it.
> > +  #
> > +
> gEfiMdePkgTokenSpaceGuid.PcdRiscVFeatureOverride|0x|UINT64|0x69
> > +
> >  [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
> >## This value is used to set the base address of PCI express
> hierarchy.
> ># @Prompt PCI Express Base Address.
> > diff --git
> a/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
> b/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
> > index 6fd9cbe5f6c9..39a7fb963b49 100644
> > --- a/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
> > +++ b/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
> > @@ -56,3 +56,5 @@ [LibraryClasses]
> >BaseLib
> >DebugLib
> >
> > +[Pcd.RISCV64]
> > +  gEfiMdePkgTokenSpaceGuid.PcdRiscVFeatureOverride  ## CONSUMES
> > diff --git a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
> b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
> > index 4eb18edb9aa7..6851970c9e16 100644
> > --- a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
> > +++ b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
> > @@ -1,7 +1,8 @@
> >  /** @file
> > -  RISC-V specific functionality for cache.
> > +  Implement Risc-V Cache Management Operations
>
> Why the change? You're effectively implementing cache management for
> riscv, you're not exclusively using any sort of extension (such as
> CMO).
>
Done. I believe you meant to keep it a generic description.

>
> >
> >Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All
> rights reserved.
> > +  Copyright (c) 2023, Rivos Inc. All rights reserved.
> >
> >SPDX-License-Identifier: BSD-2-Clause-Patent
> >  **/
> > @@ -9,10 +10,111 @@
> >  #include 
> >  #include 
> >  #include 
> > +#include 
> > +
> > +// TODO: This will be removed once RISC-V CPU HOB is available
> > +#define RISCV_CACHE_BLOCK_SIZE 64
> > +#define RISCV_CPU_FEATURE_CMO_BITMASK  0x1
> > +
> > +typedef enum {
> > +  Clean,
> > +  Flush,
> > +  Invld,
> > +} CACHE_OP;
> > +
> > +/**
> > +Verify CBOs are supported by this HW
> > +TODO: Use RISC-V CPU HOB once available.
> > +
> > +**/
> > +STATIC
> > +BOOLEAN
> > +RiscVIsCMOEnabled (
> > +  VOID
> > +  )
> > +{
> > +  // TODO: Add check for CMO from CPU HOB.
>
> Too many TODOs? One TODO at the top of the file (mentioning feature
> detection, cache line size detection) should be enough. There's no
> point in peppering these out throughout the file :)
>
> Done.

> > +  // If CMO is disabled in HW, skip Override check
> > +  // Otherwise this PCD can override settings
> > +  return ((PcdGet64 (PcdRiscVFeatureOverride) &
> RISCV_CPU_FEATURE_CMO_BITMASK) != 0);
> > +}
> > +
> > +/**
> > +  Performs required opeartion on cache lines in the cache coherency
> domain
> > +  of the calling CPU. If Address is not aligned on a cache line
> boundary,
> > +  then entire cache line containing Address is operated. If Address +
> Length
> > +  is not aligned on a cache line boundary, then the entire cache line
> > +  containing Address + Length -1 is operated.
> > +  If Length is greater than (MAX_ADDRESS - Address + 1), then ASSERT().
> > +  @param  Address The base address of the cache lines to
> > 

[edk2-devel] [PATCH v7 5/5] OvmfPkg/RiscVVirt: Override for RV CPU Features

2023-10-29 Thread Dhaval Sharma
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.

Cc: Ard Biesheuvel 
Cc: Jiewen Yao 
Cc: Jordan Justen 
Cc: Gerd Hoffmann 
Cc: Sunil V L 
Cc: Andrei Warkentin 
Cc: Laszlo Ersek 

Signed-off-by: Dhaval Sharma 
Acked-by: Laszlo Ersek 
---

Notes:
V7:
- Added RB tag
v6:
- Modify PCD name according to changes made in Baselib implementation
V5:
- Introduce PCD for platform

 OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc | 1 +
 1 file changed, 1 insertion(+)

diff --git a/OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc 
b/OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc
index fe320525153f..5d66f7fe6ae6 100644
--- a/OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc
+++ b/OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc
@@ -203,6 +203,7 @@ [PcdsFeatureFlag]
   gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE
 
 [PcdsFixedAtBuild.common]
+  gEfiMdePkgTokenSpaceGuid.PcdRiscVFeatureOverride|0
   gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|100
   gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|100
   gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|0
-- 
2.39.2



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




[edk2-devel] [PATCH v7 4/5] MdePkg: Utilize Cache Management Operations Implementation For RISC-V

2023-10-29 Thread Dhaval Sharma
Use newly defined cache management operations for RISC-V where possible
It builds up on the support added for RISC-V cache management
instructions in BaseLib.
Cc: Michael D Kinney 
Cc: Liming Gao 
Cc: Zhiguang Liu 
Cc: Laszlo Ersek 

Signed-off-by: Dhaval Sharma 
Acked-by: Laszlo Ersek 
---

Notes:
V7:
- Added PcdLib
- Restructure DEBUG message based on feedback on V6
- Make naming consistent to CMO, remove all CBO references
- Add ASSERT for not supported functions instead of plain debug message
- Added RB tag
V6:
- Utilize cache management instructions if HW supports it
  This patch is part of restructuring on top of v5

 MdePkg/MdePkg.dec  |   8 +
 MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf |   5 +
 MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c| 168 
+---
 MdePkg/MdePkg.uni  |   4 +
 4 files changed, 165 insertions(+), 20 deletions(-)

diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
index ac54338089e8..fa92673ff633 100644
--- a/MdePkg/MdePkg.dec
+++ b/MdePkg/MdePkg.dec
@@ -2399,6 +2399,14 @@ [PcdsFixedAtBuild.AARCH64, PcdsPatchableInModule.AARCH64]
   # @Prompt CPU Rng algorithm's GUID.
   
gEfiMdePkgTokenSpaceGuid.PcdCpuRngSupportedAlgorithm|{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}|VOID*|0x0037
 
+[PcdsFixedAtBuild.RISCV64, PcdsPatchableInModule.RISCV64]
+  #
+  # Configurability to override RISC-V CPU Features
+  # BIT 0 = Cache Management Operations. This bit is relevant only if
+  # previous stage has feature enabled and user wants to disable it.
+  #
+  
gEfiMdePkgTokenSpaceGuid.PcdRiscVFeatureOverride|0x|UINT64|0x69
+
 [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
   ## This value is used to set the base address of PCI express hierarchy.
   # @Prompt PCI Express Base Address.
diff --git a/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf 
b/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
index 6fd9cbe5f6c9..601a38d6c109 100644
--- a/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
+++ b/MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
@@ -56,3 +56,8 @@ [LibraryClasses]
   BaseLib
   DebugLib
 
+[LibraryClasses.RISCV64]
+  PcdLib
+
+[Pcd.RISCV64]
+  gEfiMdePkgTokenSpaceGuid.PcdRiscVFeatureOverride  ## CONSUMES
diff --git a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c 
b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
index 4eb18edb9aa7..5b3104afb67e 100644
--- a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
+++ b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
@@ -2,6 +2,7 @@
   RISC-V specific functionality for cache.
 
   Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights 
reserved.
+  Copyright (c) 2023, Rivos Inc. All rights reserved.
 
   SPDX-License-Identifier: BSD-2-Clause-Patent
 **/
@@ -9,10 +10,115 @@
 #include 
 #include 
 #include 
+#include 
+
+//
+// TODO: Grab cache block size and make Cache Management Operation
+// enabling decision based on RISC-V CPU HOB in
+// future when it is available.
+//
+#define RISCV_CACHE_BLOCK_SIZE 64
+#define RISCV_CPU_FEATURE_CMO_BITMASK  0x1
+
+typedef enum {
+  Clean,
+  Flush,
+  Invld,
+} CACHE_OP;
+
+/**
+Verify CBOs are supported by this HW
+TODO: Use RISC-V CPU HOB once available.
+
+**/
+STATIC
+BOOLEAN
+RiscVIsCMOEnabled (
+  VOID
+  )
+{
+  // If CMO is disabled in HW, skip Override check
+  // Otherwise this PCD can override settings
+  return ((PcdGet64 (PcdRiscVFeatureOverride) & RISCV_CPU_FEATURE_CMO_BITMASK) 
!= 0);
+}
+
+/**
+  Performs required opeartion on cache lines in the cache coherency domain
+  of the calling CPU. If Address is not aligned on a cache line boundary,
+  then entire cache line containing Address is operated. If Address + Length
+  is not aligned on a cache line boundary, then the entire cache line
+  containing Address + Length -1 is operated.
+  If Length is greater than (MAX_ADDRESS - Address + 1), then ASSERT().
+  @param  Address The base address of the cache lines to
+  invalidate.
+  @param  Length  The number of bytes to invalidate from the instruction
+  cache.
+  @param  Op  Type of CMO operation to be performed
+  @return Address.
+
+**/
+STATIC
+VOID
+CacheOpCacheRange (
+  IN VOID  *Address,
+  IN UINTN Length,
+  IN CACHE_OP  Op
+  )
+{
+  UINTN  CacheLineSize;
+  UINTN  Start;
+  UINTN  End;
+
+  if (Length == 0) {
+return;
+  }
+
+  if ((Op != Invld) && (Op != Flush) && (Op != Clean)) {
+return;
+  }
+
+  ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Address));
+
+  CacheLineSize = RISCV_CACHE_BLOCK_SIZE;
+
+  Start = (UINTN)Address;
+  //
+  // Calculate the cache line alignment
+  //
+  End= (Start + Length + (CacheLineSize - 1)) & ~(CacheLineSize - 1);
+  Start 

[edk2-devel] [PATCH v7 3/5] MdePkg: Implement RISC-V Cache Management Operations

2023-10-29 Thread Dhaval Sharma
Implement Cache Management Operations (CMO) defined by
RISC-V spec https://github.com/riscv/riscv-CMOs.

Notes:
1. CMO only supports block based Operations. Meaning cache
   flush/invd/clean Operations are not available for the entire
   range. In that case we fallback on fence.i instructions.
2. Operations are implemented using Opcodes to make them compiler
   independent. binutils 2.39+ compilers support CMO instructions.

Test:
1. Ensured correct instructions are refelecting in asm
2. Not able to verify actual instruction in HW as Qemu ignores
   any actual cache operations.

Cc: Michael D Kinney 
Cc: Liming Gao 
Cc: Zhiguang Liu 
Cc: Sunil V L 
Cc: Daniel Schaefer 
Cc: Laszlo Ersek 

Signed-off-by: Dhaval Sharma 
Reviewed-by: Laszlo Ersek 
---

Notes:
V7:
- Modify instruction names as per feedback from V6
- Added RB
V6:
- Implement Cache management instructions in Baselib

 MdePkg/Library/BaseLib/BaseLib.inf|  2 +-
 MdePkg/Include/Library/BaseLib.h  | 33 

 MdePkg/Include/RiscV64/RiscVasm.inc   | 19 
+++
 MdePkg/Library/BaseLib/RiscV64/{FlushCache.S => RiscVCacheMgmt.S} | 17 
++
 4 files changed, 70 insertions(+), 1 deletion(-)

diff --git a/MdePkg/Library/BaseLib/BaseLib.inf 
b/MdePkg/Library/BaseLib/BaseLib.inf
index 03c7b02e828b..53389389448c 100644
--- a/MdePkg/Library/BaseLib/BaseLib.inf
+++ b/MdePkg/Library/BaseLib/BaseLib.inf
@@ -400,7 +400,7 @@ [Sources.RISCV64]
   RiscV64/RiscVCpuBreakpoint.S  | GCC
   RiscV64/RiscVCpuPause.S   | GCC
   RiscV64/RiscVInterrupt.S  | GCC
-  RiscV64/FlushCache.S  | GCC
+  RiscV64/RiscVCacheMgmt.S  | GCC
   RiscV64/CpuScratch.S  | GCC
   RiscV64/ReadTimer.S   | GCC
   RiscV64/RiscVMmu.S| GCC
diff --git a/MdePkg/Include/Library/BaseLib.h b/MdePkg/Include/Library/BaseLib.h
index d4b56a9601da..c42cc165dc82 100644
--- a/MdePkg/Include/Library/BaseLib.h
+++ b/MdePkg/Include/Library/BaseLib.h
@@ -226,6 +226,39 @@ RiscVInvalidateDataCacheAsmFence (
   VOID
   );
 
+/**
+  RISC-V flush cache block. Atomically perform a clean operation
+  followed by an invalidate operation
+
+**/
+VOID
+EFIAPI
+RiscVCpuCacheFlushAsmCmo (
+  IN UINTN
+  );
+
+/**
+Perform a write transfer to another cache or to memory if the
+data in the copy of the cache block have been modified by a store
+operation
+
+**/
+VOID
+EFIAPI
+RiscVCpuCacheCleanAsmCmo (
+  IN UINTN
+  );
+
+/**
+Deallocate the copy of the cache block
+
+**/
+VOID
+EFIAPI
+RiscVCpuCacheInvalAsmCmo (
+  IN UINTN
+  );
+
 #endif // defined (MDE_CPU_RISCV64)
 
 #if defined (MDE_CPU_LOONGARCH64)
diff --git a/MdePkg/Include/RiscV64/RiscVasm.inc 
b/MdePkg/Include/RiscV64/RiscVasm.inc
new file mode 100644
index ..29de7358855c
--- /dev/null
+++ b/MdePkg/Include/RiscV64/RiscVasm.inc
@@ -0,0 +1,19 @@
+/*
+ *
+ * RISC-V cache operation encoding.
+ * Copyright (c) 2023, Rivos Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-2-Clause-Patent
+ *
+ */
+
+.macro RISCVCMOFLUSH
+.word 0x25200f
+.endm
+
+.macro RISCVCMOINVALIDATE
+.word 0x05200f
+.endm
+
+.macro RISCVCMOCLEAN
+.word 0x15200f
+.endm
diff --git a/MdePkg/Library/BaseLib/RiscV64/FlushCache.S 
b/MdePkg/Library/BaseLib/RiscV64/RiscVCacheMgmt.S
similarity index 56%
rename from MdePkg/Library/BaseLib/RiscV64/FlushCache.S
rename to MdePkg/Library/BaseLib/RiscV64/RiscVCacheMgmt.S
index e0eea0b5fb25..3c7be3229e3b 100644
--- a/MdePkg/Library/BaseLib/RiscV64/FlushCache.S
+++ b/MdePkg/Library/BaseLib/RiscV64/RiscVCacheMgmt.S
@@ -3,10 +3,12 @@
 // RISC-V cache operation.
 //
 // Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights 
reserved.
+// Copyright (c) 2023, Rivos Inc. All rights reserved.
 //
 // SPDX-License-Identifier: BSD-2-Clause-Patent
 //
 
//--
+.include "RiscVasm.inc"
 
 .align 3
 ASM_GLOBAL ASM_PFX(RiscVInvalidateInstCacheAsmFence)
@@ -19,3 +21,18 @@ ASM_PFX(RiscVInvalidateInstCacheAsmFence):
 ASM_PFX(RiscVInvalidateDataCacheAsmFence):
 fence
 ret
+
+ASM_GLOBAL ASM_PFX (RiscVCpuCacheFlushAsmCmo)
+ASM_PFX (RiscVCpuCacheFlushAsmCmo):
+RISCVCMOFLUSH
+ret
+
+ASM_GLOBAL ASM_PFX (RiscVCpuCacheCleanAsmCmo)
+ASM_PFX (RiscVCpuCacheCleanAsmCmo):
+RISCVCMOCLEAN
+ret
+
+ASM_GLOBAL ASM_PFX (RiscVCpuCacheInvalAsmCmo)
+ASM_PFX (RiscVCpuCacheInvalAsmCmo):
+RISCVCMOINVALIDATE
+ret
-- 
2.39.2



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




[edk2-devel] [PATCH v7 2/5] MdePkg: Rename Cache Management Function To Clarify Fence Based Op

2023-10-29 Thread Dhaval Sharma
There are different ways to manage cache on RISC-V Processors.
One way is to use fence instruction. Another way is to use CPU
specific cache management operation instructions ratified as
per RISC-V ISA specifications to be introduced in future
patches. Current method is fence instruction based, rename the
function accordingly to add that clarity.

Cc: Michael D Kinney 
Cc: Liming Gao 
Cc: Zhiguang Liu 
Cc: Sunil V L 
Cc: Daniel Schaefer 
Cc: Laszlo Ersek 

Signed-off-by: Dhaval Sharma 
Reviewed-by: Laszlo Ersek 
---

Notes:
V7:
- Add RB tag
V6:
- As part of restructuring, adding cache instruction differentiation
  in function naming

 MdePkg/Include/Library/BaseLib.h| 4 ++--
 MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c | 4 ++--
 MdePkg/Library/BaseLib/RiscV64/FlushCache.S | 8 
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/MdePkg/Include/Library/BaseLib.h b/MdePkg/Include/Library/BaseLib.h
index 7142bbfa42f2..d4b56a9601da 100644
--- a/MdePkg/Include/Library/BaseLib.h
+++ b/MdePkg/Include/Library/BaseLib.h
@@ -212,7 +212,7 @@ RiscVClearPendingTimerInterrupt (
 **/
 VOID
 EFIAPI
-RiscVInvalidateInstCacheAsm (
+RiscVInvalidateInstCacheAsmFence (
   VOID
   );
 
@@ -222,7 +222,7 @@ RiscVInvalidateInstCacheAsm (
 **/
 VOID
 EFIAPI
-RiscVInvalidateDataCacheAsm (
+RiscVInvalidateDataCacheAsmFence (
   VOID
   );
 
diff --git a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c 
b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
index d5efcf49a4bf..4eb18edb9aa7 100644
--- a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
+++ b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
@@ -21,7 +21,7 @@ InvalidateInstructionCache (
   VOID
   )
 {
-  RiscVInvalidateInstCacheAsm ();
+  RiscVInvalidateInstCacheAsmFence ();
 }
 
 /**
@@ -193,7 +193,7 @@ InvalidateDataCache (
   VOID
   )
 {
-  RiscVInvalidateDataCacheAsm ();
+  RiscVInvalidateDataCacheAsmFence ();
 }
 
 /**
diff --git a/MdePkg/Library/BaseLib/RiscV64/FlushCache.S 
b/MdePkg/Library/BaseLib/RiscV64/FlushCache.S
index 7c10fdd268af..e0eea0b5fb25 100644
--- a/MdePkg/Library/BaseLib/RiscV64/FlushCache.S
+++ b/MdePkg/Library/BaseLib/RiscV64/FlushCache.S
@@ -9,13 +9,13 @@
 
//--
 
 .align 3
-ASM_GLOBAL ASM_PFX(RiscVInvalidateInstCacheAsm)
-ASM_GLOBAL ASM_PFX(RiscVInvalidateDataCacheAsm)
+ASM_GLOBAL ASM_PFX(RiscVInvalidateInstCacheAsmFence)
+ASM_GLOBAL ASM_PFX(RiscVInvalidateDataCacheAsmFence)
 
-ASM_PFX(RiscVInvalidateInstCacheAsm):
+ASM_PFX(RiscVInvalidateInstCacheAsmFence):
 fence.i
 ret
 
-ASM_PFX(RiscVInvalidateDataCacheAsm):
+ASM_PFX(RiscVInvalidateDataCacheAsmFence):
 fence
 ret
-- 
2.39.2



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




[edk2-devel] [PATCH v7 1/5] MdePkg: Move RISC-V Cache Management Declarations Into BaseLib

2023-10-29 Thread Dhaval Sharma
The declarations for cache Management functions belong to BaseLib
instead of instance source file. This helps with further restructuring
of cache management code for RISC-V.

Cc: Michael D Kinney 
Cc: Liming Gao 
Cc: Zhiguang Liu 
Cc: Laszlo Ersek 

Signed-off-by: Dhaval Sharma 
Reviewed-by: Laszlo Ersek 
---

Notes:
V7:
- Added RB tag
V6:
- Move cache management function declaration in baselib where it belongs

 MdePkg/Include/Library/BaseLib.h| 20 
 MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c | 20 
 2 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/MdePkg/Include/Library/BaseLib.h b/MdePkg/Include/Library/BaseLib.h
index 5d7067ee854e..7142bbfa42f2 100644
--- a/MdePkg/Include/Library/BaseLib.h
+++ b/MdePkg/Include/Library/BaseLib.h
@@ -206,6 +206,26 @@ RiscVClearPendingTimerInterrupt (
   VOID
   );
 
+/**
+  RISC-V invalidate instruction cache.
+
+**/
+VOID
+EFIAPI
+RiscVInvalidateInstCacheAsm (
+  VOID
+  );
+
+/**
+  RISC-V invalidate data cache.
+
+**/
+VOID
+EFIAPI
+RiscVInvalidateDataCacheAsm (
+  VOID
+  );
+
 #endif // defined (MDE_CPU_RISCV64)
 
 #if defined (MDE_CPU_LOONGARCH64)
diff --git a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c 
b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
index d08fb9f193ca..d5efcf49a4bf 100644
--- a/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
+++ b/MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c
@@ -10,26 +10,6 @@
 #include 
 #include 
 
-/**
-  RISC-V invalidate instruction cache.
-
-**/
-VOID
-EFIAPI
-RiscVInvalidateInstCacheAsm (
-  VOID
-  );
-
-/**
-  RISC-V invalidate data cache.
-
-**/
-VOID
-EFIAPI
-RiscVInvalidateDataCacheAsm (
-  VOID
-  );
-
 /**
   Invalidates the entire instruction cache in cache coherency domain of the
   calling CPU.
-- 
2.39.2



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




[edk2-devel] [PATCH v7 0/5] Cache Management Operations Support For RISC-V

2023-10-29 Thread Dhaval Sharma
Implementing code to support Cache Management Operations (CMO) defined by
RISC-V CMO instructions.https://github.com/riscv/riscv-CMOs
This is a re-write of original series v5.
The patchset contains 5 patches- created based on V5 feedback.
1. Restructuring of existing code and move instruction declarations into BaseLib
2. Renaming existing functions to denote type of instruction used to maanage 
cache.
   This is useful for further patches where more cache management instructions 
are added.
3. Add the new cache maintenance operations to BaseLib, including the
 new assembly instruction encodings.
4. Update BaseCacheMaintenanceLib (utilizing the new BaseLib primitives)
5. Add platform level PCD to allow overriding of RISC-V features.

Cc: Ard Biesheuvel 
Cc: Jiewen Yao 
Cc: Jordan Justen 
Cc: Gerd Hoffmann 
Cc: Sunil V L 
Cc: Andrei Warkentin 
Cc: Laszlo Ersek 
Cc: Michael D Kinney 
Cc: Liming Gao 
Cc: Zhiguang Liu 
Cc: Daniel Schaefer 

Dhaval (5):
  MdePkg: Move RISC-V Cache Management Declarations Into BaseLib
  MdePkg: Rename Cache Management Function To Clarify Fence Based Op
  MdePkg: Implement RISC-V Cache Management Operations
  MdePkg: Utilize Cache Management Operations Implementation For RISC-V
  OvmfPkg/RiscVVirt: Override for RV CPU Features

 MdePkg/MdePkg.dec  |   8 +
 OvmfPkg/RiscVVirt/RiscVVirt.dsc.inc|   1 +
 MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf |   5 +
 MdePkg/Library/BaseLib/BaseLib.inf |   2 +-
 MdePkg/Include/Library/BaseLib.h   |  53 ++
 MdePkg/Library/BaseCacheMaintenanceLib/RiscVCache.c| 172 

 MdePkg/Include/RiscV64/RiscVasm.inc|  19 +++
 MdePkg/Library/BaseLib/RiscV64/FlushCache.S|  21 ---
 MdePkg/Library/BaseLib/RiscV64/RiscVCacheMgmt.S|  38 +
 MdePkg/MdePkg.uni  |   4 +
 10 files changed, 269 insertions(+), 54 deletions(-)
 create mode 100644 MdePkg/Include/RiscV64/RiscVasm.inc
 delete mode 100644 MdePkg/Library/BaseLib/RiscV64/FlushCache.S
 create mode 100644 MdePkg/Library/BaseLib/RiscV64/RiscVCacheMgmt.S

-- 
2.39.2



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




Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Laszlo Ersek
On 10/29/23 14:48, Laszlo Ersek wrote:

> I loathe disappointing people.

English is a tricky language. The above landed as an (unintended)
double-entendre.

I meant: "I hate to disappoint people".

I didn't mean: "I loathe people that are disappointing".

Ouch.

Laszlo



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




Re: [edk2-devel] [PATCH] RedfishPkg/RedfishCrtLib: remove multiple definitions.

2023-10-29 Thread Mike Maslenkin
On Wed, Oct 25, 2023 at 3:40 PM Nickle Wang  wrote:
>
> > double declaration of 'strcpy' is still there.
>
> Thanks for catching this, Mike. Version 2 patch file was sent.
>
> Regards,
> Nickle

Hello, Nickle

v2 is good enough, but it can be improved a bit.

Since the definitions in this header file have become clearer and simpler,
It now appears that memcmp and memmove declarations can also be removed.

The logic is that we don't need to declare function prototypes for
those that are overridden at the bottom of this header file.
If there were such functions in the code, the linking process would
fail, but there should not be such functions, since their names are
replaced by the preprocessor according to the definitions.

Regards,
Mike.


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




Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Laszlo Ersek
On 10/29/23 09:05, Yao, Jiewen wrote:
> Those are great questions. I also would like to understand:
>
> 1) What is definition of "actively participating in their roles"?

Here are the definitions of Maintainer and Reviewer, from
"Maintainers.txt":

  M: Package Maintainer: Cc address for patches and questions. Responsible
 for reviewing and pushing package changes to source control.
  R: Package Reviewer: Cc address for patches and questions. Reviewers help
 maintainers review code, but don't have push access. A designated Package
 Reviewer is reasonably familiar with the Package (or some modules
 thereof), and/or provides testing or regression testing for the Package
 (or some modules thereof), in certain platforms and environments.

> Is there any enforcement or just volunteer work?

I see the Maintainer role as a service to the community, with some
benefits granted in return. The "service" part should be clear. The
benefit is that you are kept in the loop, and sometimes (when you must)
you *can* say "no". (According to some seasoned reviewers, the one real
power of a maintainer -- not to be abused! -- is "saying no".) A
maintainer that's present helps set the focus, keep regressions out,
gives advice when needed, and so on.

Enforcement would be nice (haha), but it never works. You can't force
people to help, especially if their dayjob instructions oppose their
upstream community responsibilities. That's fine; in such cases my
request is always: if you can't help, then at least don't get in the
way, step down. Don't block people from doing their work by having them
wait for your feedback.

So volunteer work is fine, but as soon as the position grows "fangs" (=
a capacity to make others wait), then it becomes a promise, a
responsibility.

>
> 2) What is role and *responsibility* of Reviewer role? Is it
> documented somewhere?
> Per my observation, some assigned reviewers have never reviewed any
> patch in history or provided valuable feedback. To me, reviewer role
> seems more like a notification instead of really review something. Is
> that our purpose?

I'd say that's pretty close. A reviewer role is a request for keeping
the reviewer in the loop. Maintainers tend to appreciate that, because a
long-term reviewer may provide good insights, test results, and so on.
Trust is super important; a maintainer may push a patch based solely on
a reviewer's positive feedback, due to the latter's experience.

> While Laszlo contributed a lots in Tianocore community, he is really a
> good "reviewer", although he has no such title.

Thanks for the acknowledgement, I appreciate it!

I don't like to hoard titles. I'm sure titles are good for one's career,
but I always see the *promise* (the responsibility) to the community,
first and foremost, that a title encapsulates. It weighs heavily on me.
I loathe disappointing people. For me, not to bear a title is better
than to bear it and not to deliver on it / not to live up to it.

Laszlo



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




Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Laszlo Ersek
On 10/29/23 03:16, Pedro Falcato wrote:
> On Sat, Oct 28, 2023 at 8:23 PM Michael D Kinney
>  wrote:
>>
>> Over the past few months, all the of the Maintainers and
>> Reviewers listed in Maintainers.txt have been contacted to make
>> sure Maintainers.txt accurately represents the TianoCore
>> community members that are actively participating in their
>> roles.  Based on specific feedback, bounced emails, and no
>> responses, updates have been made.
>>
>> * RISCV64: Daniel Schaefer replaced with Andrei Warkentin
>> * ArmVirtPkg Xen has no remaining reviewers and review
>>   responsibility defaults to ArmVirtPkg Maintainers/Reviewers.
>> * ACPI modules related to S3 has no remaining reviewers and
>>   review responsibility defaults to MdeModulePkg Maintainers/
>>   Reviewers.
>> * OVMF CSM modules has no remaining reviewers and review
>>   responsibility defaults to OvmfPkg Maintainers/Reviewers.
>> * Bounce: Chan Laura 
>> * Many smaller updates removing individuals that are no
>>   longer involved or have replacement coverage.
> 
> Mike,
> 
> Thank you so much for doing this thankless task. Some comments:
> 
>> diff --git a/Maintainers.txt b/Maintainers.txt
>> index 3f40cdeb5554..2b03ccbe54aa 100644
>> --- a/Maintainers.txt
>> +++ b/Maintainers.txt
>> @@ -93,7 +93,7 @@ M: Sami Mujawar  [samimujawar]
>>  RISCV64
>>  F: */RiscV64/
>>  M: Sunil V L  [vlsunil]
>> -R: Daniel Schaefer  [JohnAZoidberg]
>> +R: Andrei Warkentin  [andreiw]
>>
>>  LOONGARCH64
>>  F: */LoongArch64/
>> @@ -157,16 +157,6 @@ R: Leif Lindholm  
>> [leiflindholm]
>>  R: Sami Mujawar  [samimujawar]
>>  R: Gerd Hoffmann  [kraxel]
>>
>> -ArmVirtPkg: modules used on Xen
>> -F: ArmVirtPkg/ArmVirtXen.*
>> -F: ArmVirtPkg/Library/XenArmGenericTimerVirtCounterLib/
>> -F: ArmVirtPkg/Library/XenVirtMemInfoLib/
>> -F: ArmVirtPkg/PrePi/
>> -F: ArmVirtPkg/XenAcpiPlatformDxe/
>> -F: ArmVirtPkg/XenPlatformHasAcpiDtDxe/
>> -F: ArmVirtPkg/XenioFdtDxe/
>> -R: Julien Grall  [jgrall]
> 
> ArmVirtPkg Xen modules seize to have a dedicated maintainer. Can the
> generic ArmVirtPkg maintainers handle *more code* (particularly,
> functionality that's not trivial to test, unless you actively use
> Xen)?

An alternative to removing this entire section is to replace Julien's
line with the following status line:

S: Orphan

The definition in Maintainers.txt is:

 Orphan: No current maintainer [but maybe you could take the
 role as you write your new code].

I think this might be clearer for all three of: contributors, consumers,
and existent maintainers.

- Contributors: An ArmVirtPkg maintainer may techincally merge your
code, but you won't get substantive feedback

- Consumers: you can build and run this code, but if it breaks, you get
to keep both parts

- Existent ArmVirtPkg maintainers: you can rest assured in the knowledge
that you are not saddled with deep technical reviews for this subsystem
that you can't even boot in your environment. You're only responsible
for the technical act of merging patches.

> 
>>  BaseTools
>>  F: BaseTools/
>>  W: https://github.com/tianocore/tianocore.github.io/wiki/BaseTools
>> @@ -187,8 +177,7 @@ F: CryptoPkg/
>>  W: https://github.com/tianocore/tianocore.github.io/wiki/CryptoPkg
>>  M: Jiewen Yao  [jyao1]
>>  M: Yi Li  [liyi77]
>> -R: Xiaoyu Lu  [xiaoyuxlu]
>> -R: Guomin Jiang  [guominjia]
>> +R: Wenxing Hou  [Wenxing-hou]
>>
>>  DynamicTablesPkg
>>  F: DynamicTablesPkg/
>> @@ -202,7 +191,6 @@ W: 
>> https://github.com/tianocore/tianocore.github.io/wiki/EmbeddedPkg
>>  M: Leif Lindholm  [leiflindholm]
>>  M: Ard Biesheuvel  [ardbiesheuvel]
>>  M: Abner Chang  [changab]
>> -R: Daniel Schaefer  [JohnAZoidberg]
>>
>>  EmulatorPkg
>>  F: EmulatorPkg/
>> @@ -228,7 +216,6 @@ F: FmpDevicePkg/
>>  W: https://github.com/tianocore/tianocore.github.io/wiki/FmpDevicePkg
>>  M: Liming Gao  [lgao4]
>>  M: Michael D Kinney  [mdkinney]
>> -R: Guomin Jiang  [guominjia]
>>  R: Wei6 Xu  [xuweiintel]
>>
>>  IntelFsp2Pkg
>> @@ -237,7 +224,6 @@ W: 
>> https://github.com/tianocore/tianocore.github.io/wiki/IntelFsp2Pkg
>>  M: Chasel Chiu  [ChaselChiu]
>>  M: Nate DeSimone  [nate-desimone]
>>  M: Duggapu Chinni B  [cbduggap]
>> -M: Ray Han Lim Ng  [rayhanlimng]
>>  R: Star Zeng  [lzeng14]
>>  R: Ted Kuo  [tedkuo1]
>>  R: Ashraf Ali S  [AshrafAliS]
>> @@ -258,7 +244,6 @@ R: Susovan Mohapatra  
>> [susovanmohapatra]
>>  MdeModulePkg
>>  F: MdeModulePkg/
>>  W: https://github.com/tianocore/tianocore.github.io/wiki/MdeModulePkg
>> -M: Jian J Wang  [jwang36]
>>  M: Liming Gao  [lgao4]
> 
> MdeModulePkg now only has a single maintainer (Liming, who also
> handles a myriad of other tasks and packages)

This leads me to my main point: it may be time for edk2 to adopt a
leaner contribution process.

We can insist on no patch going in without maintainer approval, but that
-- i.e., maintainer authority -- only works as long as it goes hand in
hand with maintainer responsibility: timely reviews. If the community
cannot offer enough working 

Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active community members

2023-10-29 Thread Yao, Jiewen
Those are great questions. I also would like to understand:

1) What is definition of "actively participating in their roles"?
Is there any enforcement or just volunteer work?

2) What is role and *responsibility* of Reviewer role? Is it documented 
somewhere?
Per my observation, some assigned reviewers have never reviewed any patch in 
history or provided valuable feedback. To me, reviewer role seems more like a 
notification instead of really review something. Is that our purpose?
While Laszlo contributed a lots in Tianocore community, he is really a good 
"reviewer", although he has no such title.

Thank you
Yao, Jiewen


> -Original Message-
> From: devel@edk2.groups.io  On Behalf Of Pedro Falcato
> Sent: Sunday, October 29, 2023 10:17 AM
> To: devel@edk2.groups.io; Kinney, Michael D 
> Cc: Andrew Fish ; Leif Lindholm ;
> Warkentin, Andrei ; West, Catharine
> ; Bi, Dandan ; Daniel
> Schaefer ; David Woodhouse ;
> De, Debkumar ; Dong, Eric ;
> Jiang, Guomin ; Wu, Hao A ;
> James Bottomley ; Wang, Jian J ;
> Justen, Jordan L ; Julien Grall ;
> Peter Grehan ; Zhang, Qi1 ; Ng,
> Ray Han Lim ; Stefan Berger
> ; Hou, Wenxing ; Lu, Xiaoyu1
> 
> Subject: Re: [edk2-devel] [Patch 1/1] Maintainers.txt: Update based on active
> community members
> 
> On Sat, Oct 28, 2023 at 8:23 PM Michael D Kinney
>  wrote:
> >
> > Over the past few months, all the of the Maintainers and
> > Reviewers listed in Maintainers.txt have been contacted to make
> > sure Maintainers.txt accurately represents the TianoCore
> > community members that are actively participating in their
> > roles.  Based on specific feedback, bounced emails, and no
> > responses, updates have been made.
> >
> > * RISCV64: Daniel Schaefer replaced with Andrei Warkentin
> > * ArmVirtPkg Xen has no remaining reviewers and review
> >   responsibility defaults to ArmVirtPkg Maintainers/Reviewers.
> > * ACPI modules related to S3 has no remaining reviewers and
> >   review responsibility defaults to MdeModulePkg Maintainers/
> >   Reviewers.
> > * OVMF CSM modules has no remaining reviewers and review
> >   responsibility defaults to OvmfPkg Maintainers/Reviewers.
> > * Bounce: Chan Laura 
> > * Many smaller updates removing individuals that are no
> >   longer involved or have replacement coverage.
> 
> Mike,
> 
> Thank you so much for doing this thankless task. Some comments:
> 
> > diff --git a/Maintainers.txt b/Maintainers.txt
> > index 3f40cdeb5554..2b03ccbe54aa 100644
> > --- a/Maintainers.txt
> > +++ b/Maintainers.txt
> > @@ -93,7 +93,7 @@ M: Sami Mujawar 
> [samimujawar]
> >  RISCV64
> >  F: */RiscV64/
> >  M: Sunil V L  [vlsunil]
> > -R: Daniel Schaefer  [JohnAZoidberg]
> > +R: Andrei Warkentin  [andreiw]
> >
> >  LOONGARCH64
> >  F: */LoongArch64/
> > @@ -157,16 +157,6 @@ R: Leif Lindholm 
> [leiflindholm]
> >  R: Sami Mujawar  [samimujawar]
> >  R: Gerd Hoffmann  [kraxel]
> >
> > -ArmVirtPkg: modules used on Xen
> > -F: ArmVirtPkg/ArmVirtXen.*
> > -F: ArmVirtPkg/Library/XenArmGenericTimerVirtCounterLib/
> > -F: ArmVirtPkg/Library/XenVirtMemInfoLib/
> > -F: ArmVirtPkg/PrePi/
> > -F: ArmVirtPkg/XenAcpiPlatformDxe/
> > -F: ArmVirtPkg/XenPlatformHasAcpiDtDxe/
> > -F: ArmVirtPkg/XenioFdtDxe/
> > -R: Julien Grall  [jgrall]
> 
> ArmVirtPkg Xen modules seize to have a dedicated maintainer. Can the
> generic ArmVirtPkg maintainers handle *more code* (particularly,
> functionality that's not trivial to test, unless you actively use
> Xen)?
> 
> >  BaseTools
> >  F: BaseTools/
> >  W: https://github.com/tianocore/tianocore.github.io/wiki/BaseTools
> > @@ -187,8 +177,7 @@ F: CryptoPkg/
> >  W: https://github.com/tianocore/tianocore.github.io/wiki/CryptoPkg
> >  M: Jiewen Yao  [jyao1]
> >  M: Yi Li  [liyi77]
> > -R: Xiaoyu Lu  [xiaoyuxlu]
> > -R: Guomin Jiang  [guominjia]
> > +R: Wenxing Hou  [Wenxing-hou]
> >
> >  DynamicTablesPkg
> >  F: DynamicTablesPkg/
> > @@ -202,7 +191,6 @@ W:
> https://github.com/tianocore/tianocore.github.io/wiki/EmbeddedPkg
> >  M: Leif Lindholm  [leiflindholm]
> >  M: Ard Biesheuvel  [ardbiesheuvel]
> >  M: Abner Chang  [changab]
> > -R: Daniel Schaefer  [JohnAZoidberg]
> >
> >  EmulatorPkg
> >  F: EmulatorPkg/
> > @@ -228,7 +216,6 @@ F: FmpDevicePkg/
> >  W: https://github.com/tianocore/tianocore.github.io/wiki/FmpDevicePkg
> >  M: Liming Gao  [lgao4]
> >  M: Michael D Kinney  [mdkinney]
> > -R: Guomin Jiang  [guominjia]
> >  R: Wei6 Xu  [xuweiintel]
> >
> >  IntelFsp2Pkg
> > @@ -237,7 +224,6 @@ W:
> https://github.com/tianocore/tianocore.github.io/wiki/IntelFsp2Pkg
> >  M: Chasel Chiu  [ChaselChiu]
> >  M: Nate DeSimone  [nate-desimone]
> >  M: Duggapu Chinni B  [cbduggap]
> > -M: Ray Han Lim Ng  [rayhanlimng]
> >  R: Star Zeng  [lzeng14]
> >  R: Ted Kuo  [tedkuo1]
> >  R: Ashraf Ali S  [AshrafAliS]
> > @@ -258,7 +244,6 @@ R: Susovan Mohapatra
>  [susovanmohapatra]
> >  MdeModulePkg
> >  F: MdeModulePkg/
> >  W: https://github.com/tianocore/tianocore.github.io/wiki/MdeModulePkg
> > -M: Jian J Wang  [jwang36]
> >  M: Liming Gao