Hi Ray,

Ha, you mean to move the ConfigureMemoryManagementUint instance into some LoongArch PEIM, right? I just understood it wrong.

What I want to say is that this API can called in both virtual and really mechine, if it be moved into the private code, then if other platform want to call it, they will have to copy the same code under their private code. So I think it is better if this API or function is made public.


Thanks,
Chao
On 2024/4/9 13:27, Ni, Ray wrote:
Chao,
Current patch introduces the CpuMmuInitLib which contains ConfigureMemoryManagementUnit () API. You told me the API will be called by a PEIM.
Then, the new proposal is to move the library code into that PEIM.

I don't quite understand your needs of the new GUID to store the memory map resource. How is the GUID used to store the memory map resource?
Can the PEIM be placed in edk2-platforms repo?

Thanks,
Ray

------------------------------------------------------------------------
*From:* Chao Li <lic...@loongson.cn>
*Sent:* Tuesday, April 9, 2024 12:29
*To:* devel@edk2.groups.io <devel@edk2.groups.io>; Ni, Ray <ray...@intel.com>; Gerd Hoffmann <kra...@redhat.com> *Cc:* Kumar, Rahul R <rahul.r.ku...@intel.com>; Sami Mujawar <sami.muja...@arm.com>; Sunil V L <suni...@ventanamicro.com>; Bibo Mao <maob...@loongson.cn>; Dongyan Qian <qiandong...@loongson.cn> *Subject:* Re: [edk2-devel] [PATCH v2 00/13] Part 2 patch set to add LoongArch support into UefiCpuPkg

Hi Ray,

I'm willing change it to a PEIM if it doesn't fit as a library. I think if it is a PEIM, we need a new GUID to sotre the memory map resouce, or use an already defined GUID.

I will put it under the UefiCpuPkg, called CpuMmuInitPei, folder: UefiCpuPkg/CpuMmuInitPei/LoongArch64/. May I?


Thanks,
Chao
On 2024/4/9 10:06, Ni, Ray wrote:

    Chao,
    Sorry I missed your mail.

    If ConfigureMemoryManagementUnit() is called in PEI, can you move
    the logic to a LoongArch specific PEIM? My concern is we may need
    more review on the lib API ConfigureMemoryManagementUnit() if we
    position it as a library.

    If we move the logic in a PEIM and the implementation becomes a
    PEIM internal logic, we can lower the quality expectation of the
    function prototype as no other module is able to call it.


    Thanks,
    Ray


                For patches 10, 11: Can the lib be avoided if the
                logic is implemented in CpuDxe driver?

            This library is will be called in the PEI stage, so I
            can't move it under the CpuDxe.

            This library is the low-level libary of CpuMmuLib, which
            will consume CpuMmuLIb to configure the MMU.

            This way is suggested by Laszlo, who saied if CpuMmuLib
            can not content the configure API(high-level libary is the
            basecal libaray, it should not include the configure API),
            we can split it into two, where the hight-livel is
            CpuMmuLib, and the low-level is CpuMmuInitLib.


                For patch 12(UefiCpuPkg: Add multiprocessor library
                for LoongArch64): Reviewed-by: Ray Ni
                <ray...@intel.com> <mailto:ray...@intel.com>
                For patch 13: Please make accordingly changes when you
                address comments for patch 8.

            OK.


                Thanks,
                Ray
                
------------------------------------------------------------------------
                *From:* Gerd Hoffmann <kra...@redhat.com>
                <mailto:kra...@redhat.com>
                *Sent:* Friday, March 22, 2024 20:39
                *To:* Chao Li <lic...@loongson.cn>
                <mailto:lic...@loongson.cn>
                *Cc:* devel@edk2.groups.io
                <mailto:devel@edk2.groups.io> <devel@edk2.groups.io>
                <mailto:devel@edk2.groups.io>; Ni, Ray
                <ray...@intel.com> <mailto:ray...@intel.com>; Kumar,
                Rahul R <rahul.r.ku...@intel.com>
                <mailto:rahul.r.ku...@intel.com>; Sami Mujawar
                <sami.muja...@arm.com> <mailto:sami.muja...@arm.com>;
                Sunil V L <suni...@ventanamicro.com>
                <mailto:suni...@ventanamicro.com>; Bibo Mao
                <maob...@loongson.cn> <mailto:maob...@loongson.cn>;
                Dongyan Qian <qiandong...@loongson.cn>
                <mailto:qiandong...@loongson.cn>
                *Subject:* Re: [PATCH v2 00/13] Part 2 patch set to
                add LoongArch support into UefiCpuPkg
                On Wed, Mar 20, 2024 at 04:41:52PM +0800, Chao Li wrote:
                > This patch set adjusted some order in UefiCpuPig
                alphabetically, added
                > LoongArch libraries and drivers into UefiCpuPkg, it
                is a continuation of
                > the first patch series v8 submitted at
                > https://edk2.groups.io/g/devel/message/114526
                <https://edk2.groups.io/g/devel/message/114526>.
                >
                > And also separated from
                https://edk2.groups.io/g/devel/message/116583
                <https://edk2.groups.io/g/devel/message/116583>.
                >
                > This series only contents the changes for UefiCpuPkg.
                >
                > Patch1-Patch4: Reorder some INF files located in
                UefiCpuPkg
                > alphabetically.
                >
                > Patch5-Patch13: Added Timer, CpuMmuLib,
                CpuMmuInitLib, MpInitLib, CpuDxe
                > for LoongArch, and added some PCD and header files
                requested by the
                > above libraries and drivers.
                >
                > Modfied modules: UefiCpuPkg
                >
                > BZ:
                https://bugzilla.tianocore.org/show_bug.cgi?id=4726
                <https://bugzilla.tianocore.org/show_bug.cgi?id=4726>
                > BZ:
                https://bugzilla.tianocore.org/show_bug.cgi?id=4734
                <https://bugzilla.tianocore.org/show_bug.cgi?id=4734>
                >
                > PR: https://github.com/tianocore/edk2/pull/5483
                <https://github.com/tianocore/edk2/pull/5483>
                >
                > V1 -> V2:
                > 1. Removed PcdCpuMmuIsEnabled.
                > 2. Removed API GetMemoryRegionAttributes API as it
                is no longer needed.
                > 3. Patch3, added two empty line in DXE and PEI INF
                files.
                > 4. Patch5, added the Status check in
                GetTimeInnanoSecond function.
                > 5. Separated into two series, this is series one,
                and the second one is
                > OvmfPkg.

                While I can't comment on the loongarch architecture
                details the code
                and the integration into build system looks overall
                sane to me.

                Series:
                Acked-by: Gerd Hoffmann <kra...@redhat.com>
                <mailto:kra...@redhat.com>

                take care,
                  Gerd




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


Reply via email to