From: "Leif Lindholm" <quic_llindhol@quicinc.com>
To: Pierre Gondois <pierre.gondois@arm.com>, <devel@edk2.groups.io>
Cc: Jiewen Yao <jiewen.yao@intel.com>,
Ard Biesheuvel <ardb+tianocore@kernel.org>,
Liming Gao <gaoliming@byosoft.com.cn>,
Michael D Kinney <michael.d.kinney@intel.com>,
Sami Mujawar <sami.mujawar@arm.com>,
Zhiguang Liu <zhiguang.liu@intel.com>
Subject: Re: [edk2-devel] [RFC PATCH 1/1] ArmPkg,MdePkg: move ArmLib.h to MdePkg
Date: Fri, 9 Feb 2024 15:29:34 +0000 [thread overview]
Message-ID: <d1ab5235-1c6f-47b0-8b7c-a90318c5c3c8@quicinc.com> (raw)
In-Reply-To: <4951c86b-ecd8-4253-95e7-ceb00b8192b9@arm.com>
Hi Pierre,
You appear to have stumbled onto one of those areas we haven't gotten
around to cleaning up yet...
On 2023-12-21 11:13, Pierre Gondois wrote:
> Hello Leif,
>
> I think the following files:
> - ArmPkg/Include/Chipset/AArch64.h
> - ArmPkg/Include/Chipset/AArch64Mmu.h
> - ArmPkg/Include/Chipset/ArmV7.h
> - ArmPkg/Include/Chipset/ArmV7Mmu.h
If we moved these, I think we should also rename the latter two
AArch32.h/AArch32Mmu.h.
> also need to be moved to the MdePkg. Otherwise the MdePkg
> would depend on the ArmPkg, cf. ArmLib.h:
>> #ifdef MDE_CPU_ARM
> #include <Chipset/ArmV7.h>
> #elif defined (MDE_CPU_AARCH64)
> #include <Chipset/AArch64.h>
Sure.
> Depending on where these files are placed in the MdePkg, this
> might imply some renaming to include them. Meaning that all
> #include <Chipset/AArch64.h>
> might need to be renamed
> #include <[New path]/AArch64.h>
> but it should be ok.
An annoyance, but an improvement.
> A ArmLibNull.inf library might also need to be created. If the
> OpensslLibFullAccel.inf module will depend on the ArmLib library,
> a Null implementation will be necessary for non-Arm architectures.
Can ArmLib be declared under a [LibraryClasses.AArch64,
LibraryClasses.ARM]? Have I forgotten something that we discussed back
in ... November?
> Otherwise I could apply and run the CryptoPkg/Arm native instructions
> patchset on top of this patch.
>
> ---
>
> As a side note, it also seems that:
> - ArmPkg/Include/Chipset/ArmCortexA5x.h
> isn't used anymore in edk2/edk2-platorms
> - ArmPkg/Include/Chipset/ArmCortexA9.h
> is barely used in edk2-platforms.
> Maybe the files should have been removed/simplified as part of
> - cffa7925a293 ("ArmPkg: remove ArmCpuLib header and implementations")
> - a913ad02479d ("ArmPlatformPkg: remove ArmVExpressPkg")
I think you're right.
Well, ArmCortexA9.h is still *used*, but I can't imagine the Arm branch
of ArmVExpressLib has been build by anyone for some time. And surely the
inclusion of ArmVExpressLibSec in ArmVExpress-FVP-AArch64.dsc is
superfluous (such that that .inf can be deleted)?
Regards,
Leif
> Regards,
> Pierre
>
> On 11/21/23 17:42, Leif Lindholm wrote:
>> Related to https://bugzilla.tianocore.org/show_bug.cgi?id=4121, but not
>> resolving it. (Nearly?) all of ArmPkg describes industry standard
>> behaviour, and hence according to general rules, ought to live in MdePkg.
>>
>> Addressing this will however be a substantial task.
>> Take a first step by moving the ArmLib interface definition to MdePkg,
>> as discussed in
>> https://edk2.groups.io/g/devel/topic/patch_v5_2_6/102725178
>>
>> Cc: Pierre Gondois <pierre.gondois@arm.com>
>> Cc: Jiewen Yao <jiewen.yao@intel.com>
>> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
>> Cc: Liming Gao <gaoliming@byosoft.com.cn>
>> Cc: Michael D Kinney <michael.d.kinney@intel.com>
>> Cc: Sami Mujawar <sami.mujawar@arm.com>
>> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
>> Signed-off-by: Leif Lindholm <quic_llindhol@quicinc.com>
>> ---
>>
>> This should have no functional differences (and the set of
>> platforms I have test built didn't find any problems).
>> This may result in some modules depending on ArmPkg only
>> for ArmLib now being able to drop ArmPkg dependency.
>>
>> ArmPkg/ArmPkg.dec | 4 ----
>> MdePkg/MdePkg.dec | 5 +++++
>> {ArmPkg => MdePkg}/Include/Library/ArmLib.h | 0
>> Maintainers.txt | 6 ++++++
>> 4 files changed, 11 insertions(+), 4 deletions(-)
>>
>> diff --git a/ArmPkg/ArmPkg.dec b/ArmPkg/ArmPkg.dec
>> index 7fe2b9bca43b..4ce59f3e1fbd 100644
>> --- a/ArmPkg/ArmPkg.dec
>> +++ b/ArmPkg/ArmPkg.dec
>> @@ -50,10 +50,6 @@ [LibraryClasses.common]
>> #
>> ArmHvcLib|Include/Library/ArmHvcLib.h
>> - ## @libraryclass Provides an interface to Arm registers.
>> - #
>> - ArmLib|Include/Library/ArmLib.h
>> -
>> ## @libraryclass Provides a Mmu interface.
>> #
>> ArmMmuLib|Include/Library/ArmMmuLib.h
>> diff --git a/MdePkg/MdePkg.dec b/MdePkg/MdePkg.dec
>> index ac54338089e8..78e18ee444cd 100644
>> --- a/MdePkg/MdePkg.dec
>> +++ b/MdePkg/MdePkg.dec
>> @@ -339,6 +339,11 @@ [LibraryClasses.RISCV64]
>> ## @libraryclass Provides function to make ecalls to SBI
>> BaseRiscVSbiLib|Include/Library/BaseRiscVSbiLib.h
>> +[LibraryClasses.ARM, LibraryClasses.AARCH64]
>> + ## @libraryclass Provides an interface to Arm registers.
>> + #
>> + ArmLib|Include/Library/ArmLib.h
>> +
>> [Guids]
>> #
>> # GUID defined in UEFI2.1/UEFI2.0/EFI1.1
>> diff --git a/ArmPkg/Include/Library/ArmLib.h
>> b/MdePkg/Include/Library/ArmLib.h
>> similarity index 100%
>> rename from ArmPkg/Include/Library/ArmLib.h
>> rename to MdePkg/Include/Library/ArmLib.h
>> diff --git a/Maintainers.txt b/Maintainers.txt
>> index 7c0b4cb58cfd..0315fa23dfce 100644
>> --- a/Maintainers.txt
>> +++ b/Maintainers.txt
>> @@ -450,6 +450,12 @@ M: Abner Chang <abner.chang@amd.com> [changab]
>> R: Abdul Lateef Attar <AbdulLateef.Attar@amd.com> [abdattar]
>> R: Nickle Wang <nicklew@nvidia.com> [nicklela]
>> +MdePkg: ARM/AARCH64 standard interfaces
>> +F: MdePkg/Include/Library/ArmLib.h
>> +M: Leif Lindholm <quic_llindhol@quicinc.com> [leiflindholm]
>> +M: Ard Biesheuvel <ardb+tianocore@kernel.org> [ardbiesheuvel]
>> +R: Sami Mujawar <sami.mujawar@arm.com> [samimujawar]
>> +
>> NetworkPkg
>> F: NetworkPkg/
>> W: https://github.com/tianocore/tianocore.github.io/wiki/NetworkPkg
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115307): https://edk2.groups.io/g/devel/message/115307
Mute This Topic: https://groups.io/mt/102731845/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2024-02-09 15:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-21 16:42 [edk2-devel] [RFC PATCH 1/1] ArmPkg,MdePkg: move ArmLib.h to MdePkg Leif Lindholm
2023-12-21 11:13 ` PierreGondois
2024-02-09 13:25 ` PierreGondois
2024-02-09 15:05 ` Leif Lindholm
2024-02-09 15:29 ` Leif Lindholm [this message]
2024-02-12 17:24 ` PierreGondois
2024-02-12 17:37 ` Leif Lindholm
2024-02-13 9:33 ` Sami Mujawar
2024-03-01 1:00 ` Yao, Jiewen
2024-03-01 11:45 ` Leif Lindholm
2024-03-01 15:04 ` Yao, Jiewen
2024-03-11 17:02 ` PierreGondois
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d1ab5235-1c6f-47b0-8b7c-a90318c5c3c8@quicinc.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox