[edk2-devel] [PATCH v5 0/2] ArmPkg: Implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls for AArch64

Rebecca Cran posted 2 patches 1 year, 3 months ago
Failed in applying to current master (apply log)
ArmPkg/ArmPkg.dsc                                            |    1 +
ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf |   56 +
ArmPkg/Drivers/ArmPsciMpServicesDxe/MpServicesInternal.h     |  345 ++++
ArmPkg/Include/Library/ArmLib.h                              |   16 +-
ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c   | 1859 ++++++++++++++++++++
ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S                |   74 +
6 files changed, 2344 insertions(+), 7 deletions(-)
create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf
create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpServicesInternal.h
create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c
create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S
[edk2-devel] [PATCH v5 0/2] ArmPkg: Implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls for AArch64
Posted by Rebecca Cran 1 year, 3 months ago
Implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls for AArch64.

Note that several tests from UefiCpuPkg/Test/UnitTest/EfiMpServicesPpiProtocol
will fail because there's currently no mechanism implemented to reset
APs that are stuck running the user's code (e.g. tests that run an
infinite loop). 
On x86 an IPI is sent to take back control: something similar should be
implemented on Arm.

Changes from v4:

o Changes based on review feedback from Kun Qin.
o Dropped the MpServicesTest patch, since
UefiCpuPkg/Test/UnitTest/EfiMpServicesPpiProtocol implements similar
functionality.

Changes from v2:

Added a CPU exception handler for the APs so that if the user's code
causes an exception (e.g. because the application terminates) the AP
state is set to CpuStateFinished and the core powered off.

Rebecca Cran (2):
  ArmPkg: Add GET_MPIDR_AFFINITY_BITS and MPIDR_MT_BIT to ArmLib.h
  ArmPkg: implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls

 ArmPkg/ArmPkg.dsc                                            |    1 +
 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf |   56 +
 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpServicesInternal.h     |  345 ++++
 ArmPkg/Include/Library/ArmLib.h                              |   16 +-
 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c   | 1859 ++++++++++++++++++++
 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S                |   74 +
 6 files changed, 2344 insertions(+), 7 deletions(-)
 create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf
 create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpServicesInternal.h
 create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c
 create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S

-- 
2.30.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#98634): https://edk2.groups.io/g/devel/message/98634
Mute This Topic: https://groups.io/mt/96324766/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH v5 0/2] ArmPkg: Implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls for AArch64
Posted by Rebecca Cran 1 year, 3 months ago
Could I get some more reviews on this please?


Thanks.
Rebecca Cran


On 1/16/23 21:57, Rebecca Cran wrote:
> Implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls for AArch64.
>
> Note that several tests from UefiCpuPkg/Test/UnitTest/EfiMpServicesPpiProtocol
> will fail because there's currently no mechanism implemented to reset
> APs that are stuck running the user's code (e.g. tests that run an
> infinite loop).
> On x86 an IPI is sent to take back control: something similar should be
> implemented on Arm.
>
> Changes from v4:
>
> o Changes based on review feedback from Kun Qin.
> o Dropped the MpServicesTest patch, since
> UefiCpuPkg/Test/UnitTest/EfiMpServicesPpiProtocol implements similar
> functionality.
>
> Changes from v2:
>
> Added a CPU exception handler for the APs so that if the user's code
> causes an exception (e.g. because the application terminates) the AP
> state is set to CpuStateFinished and the core powered off.
>
> Rebecca Cran (2):
>    ArmPkg: Add GET_MPIDR_AFFINITY_BITS and MPIDR_MT_BIT to ArmLib.h
>    ArmPkg: implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls
>
>   ArmPkg/ArmPkg.dsc                                            |    1 +
>   ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf |   56 +
>   ArmPkg/Drivers/ArmPsciMpServicesDxe/MpServicesInternal.h     |  345 ++++
>   ArmPkg/Include/Library/ArmLib.h                              |   16 +-
>   ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c   | 1859 ++++++++++++++++++++
>   ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S                |   74 +
>   6 files changed, 2344 insertions(+), 7 deletions(-)
>   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf
>   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpServicesInternal.h
>   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c
>   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#99121): https://edk2.groups.io/g/devel/message/99121
Mute This Topic: https://groups.io/mt/96324766/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH v5 0/2] ArmPkg: Implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls for AArch64
Posted by Ard Biesheuvel 1 year, 3 months ago
On Fri, 27 Jan 2023 at 05:10, Rebecca Cran <rebecca@bsdio.com> wrote:
>
> Could I get some more reviews on this please?
>
>

Reviewed-by: Ard Biesheuvel <ardb@kernel.org>

Thanks a lot for your persistence.

Queued up here
https://github.com/tianocore/edk2/pull/3956



>
> On 1/16/23 21:57, Rebecca Cran wrote:
> > Implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls for AArch64.
> >
> > Note that several tests from UefiCpuPkg/Test/UnitTest/EfiMpServicesPpiProtocol
> > will fail because there's currently no mechanism implemented to reset
> > APs that are stuck running the user's code (e.g. tests that run an
> > infinite loop).
> > On x86 an IPI is sent to take back control: something similar should be
> > implemented on Arm.
> >
> > Changes from v4:
> >
> > o Changes based on review feedback from Kun Qin.
> > o Dropped the MpServicesTest patch, since
> > UefiCpuPkg/Test/UnitTest/EfiMpServicesPpiProtocol implements similar
> > functionality.
> >
> > Changes from v2:
> >
> > Added a CPU exception handler for the APs so that if the user's code
> > causes an exception (e.g. because the application terminates) the AP
> > state is set to CpuStateFinished and the core powered off.
> >
> > Rebecca Cran (2):
> >    ArmPkg: Add GET_MPIDR_AFFINITY_BITS and MPIDR_MT_BIT to ArmLib.h
> >    ArmPkg: implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls
> >
> >   ArmPkg/ArmPkg.dsc                                            |    1 +
> >   ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf |   56 +
> >   ArmPkg/Drivers/ArmPsciMpServicesDxe/MpServicesInternal.h     |  345 ++++
> >   ArmPkg/Include/Library/ArmLib.h                              |   16 +-
> >   ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c   | 1859 ++++++++++++++++++++
> >   ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S                |   74 +
> >   6 files changed, 2344 insertions(+), 7 deletions(-)
> >   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf
> >   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpServicesInternal.h
> >   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c
> >   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S
> >


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#99158): https://edk2.groups.io/g/devel/message/99158
Mute This Topic: https://groups.io/mt/96324766/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH v5 0/2] ArmPkg: Implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls for AArch64
Posted by Kun Qin 1 year, 3 months ago
Thanks for sharing the updated patches. I tested the patches on both 
QEMU and FVP, they work
for all my use cases.

Although my vote probably does not mean much, thanks again for sharing 
this update:

Tested-by: Kun Qin <kun.qin@microsoft.com>

On 1/16/2023 8:57 PM, Rebecca Cran wrote:
> Implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls for AArch64.
>
> Note that several tests from UefiCpuPkg/Test/UnitTest/EfiMpServicesPpiProtocol
> will fail because there's currently no mechanism implemented to reset
> APs that are stuck running the user's code (e.g. tests that run an
> infinite loop).
> On x86 an IPI is sent to take back control: something similar should be
> implemented on Arm.
>
> Changes from v4:
>
> o Changes based on review feedback from Kun Qin.
> o Dropped the MpServicesTest patch, since
> UefiCpuPkg/Test/UnitTest/EfiMpServicesPpiProtocol implements similar
> functionality.
>
> Changes from v2:
>
> Added a CPU exception handler for the APs so that if the user's code
> causes an exception (e.g. because the application terminates) the AP
> state is set to CpuStateFinished and the core powered off.
>
> Rebecca Cran (2):
>    ArmPkg: Add GET_MPIDR_AFFINITY_BITS and MPIDR_MT_BIT to ArmLib.h
>    ArmPkg: implement EFI_MP_SERVICES_PROTOCOL based on PSCI calls
>
>   ArmPkg/ArmPkg.dsc                                            |    1 +
>   ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf |   56 +
>   ArmPkg/Drivers/ArmPsciMpServicesDxe/MpServicesInternal.h     |  345 ++++
>   ArmPkg/Include/Library/ArmLib.h                              |   16 +-
>   ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c   | 1859 ++++++++++++++++++++
>   ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S                |   74 +
>   6 files changed, 2344 insertions(+), 7 deletions(-)
>   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.inf
>   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpServicesInternal.h
>   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/ArmPsciMpServicesDxe.c
>   create mode 100644 ArmPkg/Drivers/ArmPsciMpServicesDxe/MpFuncs.S
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#98972): https://edk2.groups.io/g/devel/message/98972
Mute This Topic: https://groups.io/mt/96324766/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-