From: "Chao Li" <lichao@loongson.cn>
To: Pedro Falcato <pedro.falcato@gmail.com>,
Laszlo Ersek <lersek@redhat.com>
Cc: devel@edk2.groups.io, Eric Dong <eric.dong@intel.com>,
Ray Ni <ray.ni@intel.com>, Rahul Kumar <rahul1.kumar@intel.com>,
Gerd Hoffmann <kraxel@redhat.com>,
Baoqi Zhang <zhangbaoqi@loongson.cn>,
Dongyan Qian <qiandongyan@loongson.cn>,
Xianglai Li <lixianglai@loongson.cn>,
Bibo Mao <maobibo@loongson.cn>, Andrew Fish <afish@apple.com>,
"Kinney, Michael D" <michael.d.kinney@intel.com>,
Leif Lindholm <quic_llindhol@quicinc.com>
Subject: Re: [edk2-devel] [PATCH v8 14/37] UefiCpuPkg: Add CpuMmuLib to UefiCpuPkg
Date: Tue, 6 Feb 2024 10:57:15 +0800 [thread overview]
Message-ID: <6914d79c-582a-4108-b733-7d5b15537ab4@loongson.cn> (raw)
In-Reply-To: <17B0898B4883051D.13964@groups.io>
[-- Attachment #1: Type: text/plain, Size: 5600 bytes --]
Hi Pedro, Laszlo,
I have double-check this patch and I'd like to point out the following:
1. Some of the code in this patch actually refers to the Linux kernel.
But only used the name of kernel code , such as PUD, PMD, PTE, Swapper
Page Dir, etc.
2. Refer to the LoongArch TLB rules, if we use the multi-level page
table to search and filling, the usual logic is as follows:
a. Get the first level page table, called PGD, in reigster PGDL or
PGDH.
b. PGD will index the 2st Dir, and the 2st Dir will index the 3st
Dir, and so on.
c. We would like to use the four-level page table, because if we
use two- or three-level page tables, the page tables will larger and
must be continuous, so we think the four-level is better(Linux kernel
also uses the four-level page tables).
d. LoongArch paging logic is shown in the image below(URL:
https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html#memory-management-of-page-table-mapping):
Referring to the above, should I use the old logic, rewrite the Linux
kernel-like code to EFI style and clean up some unused code and redesign
the PEI library, it that OK?
Thanks,
Chao
On 2024/2/4 10:58, Chao Li wrote:
>
> Hi Leif and Pedro,
>
> On 2024/2/2 23:14, Leif Lindholm wrote:
>> On 2024-02-01 19:36, Pedro Falcato wrote:
>>> On Thu, Feb 1, 2024 at 3:05 AM Chao Li <lichao@loongson.cn> wrote:
>>>>
>>>> Hi Pedro and Laszlo,
>>>>
>>>> Part of the code in this patch is indeed quoted from the Linux
>>>> kernel, and do you think it is inapproparate? If so, we need to
>>>> refactor this module, what are you suggests with the refactoring?
>>>> Just remove the unused logic from the Kernel code and keep the
>>>> logic good or refactor from scratch?
>>>
>>> +CC stewards
>>>
>>> Disclaimer: I'm not a lawyer
>>>
>>> It is wildly inappropriate. All of the code was clearly inspired by
>>> GPL and derives from the Linux GPL code, it's not just unused logic.
>>> You should triple check *every other patch* you've sent out for these
>>> kinds of GPL violations.
>>
>> I want to highlight
>> https://github.com/tianocore/edk2/blob/master/ReadMe.rst?plain=1#L177
>>
>> Chao, by adding your Signed-off-by to any patch and sending it out,
>> you certify that:
>>
>> (a) The contribution was created in whole or in part by me and I
>> have the right to submit it under the open source license
>> indicated in the file; or
>>
>> (b) The contribution is based upon previous work that, to the best
>> of my knowledge, is covered under an appropriate open source
>> license and I have the right under that license to submit that
>> work with modifications, whether created in whole or in part
>> by me, under the same open source license (unless I am
>> permitted to submit under a different license), as indicated
>> in the file; or
>>
>> (c) The contribution was provided directly to me by some other
>> person who certified (a), (b) or (c) and I have not modified
>> it.
>>
>> (d) I understand and agree that this project and the contribution
>> are public and that a record of the contribution (including all
>> personal information I submit with it, including my sign-off) is
>> maintained indefinitely and may be redistributed consistent with
>> this project or the open source license(s) involved.
>>
>> Now, that's a bunch of legalese, but it matters.
>> Mistakes happen, but it would have been a massive headache if this
>> had been merged and *then* we found out about this. The *best case*
>> scenario would have been that we would have been forced to revert the
>> whole set.
>>
>> I wouldn't say you need to "triple check every patch", but I would
>> say you need to re-evaluate the existing patches based on this new
>> information you have learned. So that once you resubmit a version as
>> per Laszlos comments in separate email, you are comfortable that the
>> whole submission conforms with the DCO.
>> And if you are unsure - ask. That's never wrong.
>>
>> Pedro - many thanks for this. Owe you one.
> Of couse, I will study the entries you are referring to and I'm sure
> that the Part 1 series is full compliance with terms, and I will
> double/triple check them when I sumbit the Part 2, thank you for
> spotting this and preventing me form making a mistake.
>>
>> /
>> Leif
>>
>>> There's another way of writing this sort of code (that doesn't involve
>>> all the Linux mm craziness) but I don't know if changing strategies
>>> would be considered getting rid of any shadow of GPL/IP violation.
>>>
>>> (As a side note, I don't really understand IP in the software world.
>>> If you work, say, on GPL software for a moment in time, are you always
>>> going to be "GPL-tainted"? Surely not? Most people in the industry
>>> I've talked to about this say that, yeah, no, corps don't expect that.
>>> But no one really seems to have drawn a line between OK and not-OK,
>>> but rather "please please don't sue us". And in this case I don't know
>>> (but I suspect it'd be uncomfortable) for someone to redesign a
>>> solution right away, after being "tainted". Anyway, tough problem, and
>>> IANAL :/)
>>>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115141): https://edk2.groups.io/g/devel/message/115141
Mute This Topic: https://groups.io/mt/103971653/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
[-- Attachment #2.1: Type: text/html, Size: 9047 bytes --]
[-- Attachment #2.2: 18PR0Yn00tzXf3Dn.png --]
[-- Type: image/png, Size: 153048 bytes --]
next prev parent reply other threads:[~2024-02-06 2:57 UTC|newest]
Thread overview: 89+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-26 6:27 [edk2-devel] [PATCH v8 00/37] Enable LoongArch virtual machine in edk2 Chao Li
2024-01-26 6:27 ` [edk2-devel] [PATCH v8 01/37] MdePkg: Add the header file named Csr.h for LoongArch64 Chao Li
2024-01-26 6:28 ` [edk2-devel] [PATCH v8 02/37] MdePkg: Add LoongArch64 FPU function set into BaseCpuLib Chao Li
2024-01-26 6:28 ` [edk2-devel] [PATCH v8 03/37] MdePkg: Add LoongArch64 exception function set into BaseLib Chao Li
2024-01-26 6:28 ` [edk2-devel] [PATCH v8 04/37] MdePkg: Add LoongArch64 local interrupt " Chao Li
2024-01-26 6:28 ` [edk2-devel] [PATCH v8 05/37] MdePkg: Add LoongArch Cpucfg function Chao Li
2024-01-26 6:28 ` [edk2-devel] [PATCH v8 06/37] MdePkg: Add read stable counter operation for LoongArch Chao Li
2024-01-26 6:28 ` [edk2-devel] [PATCH v8 07/37] MdePkg: Add CSR " Chao Li
2024-01-26 6:28 ` [edk2-devel] [PATCH v8 08/37] MdePkg: Add IOCSR " Chao Li
2024-01-26 6:28 ` [edk2-devel] [PATCH v8 09/37] MdePkg: Add a new library named PeiServicesTablePointerLibKs0 Chao Li
2024-01-26 6:28 ` [edk2-devel] [PATCH v8 10/37] MdePkg: Add some comments for LoongArch exceptions Chao Li
2024-01-26 6:29 ` [edk2-devel] [PATCH v8 11/37] UefiCpuPkg: Add LoongArch64 CPU Timer instance Chao Li
2024-02-02 3:24 ` Ni, Ray
2024-02-02 3:38 ` Chao Li
2024-01-26 6:29 ` [edk2-devel] [PATCH v8 12/37] UefiCpuPkg: Add CPU exception library for LoongArch Chao Li
2024-02-02 3:30 ` Ni, Ray
2024-02-02 3:44 ` Chao Li
2024-02-02 4:30 ` Ni, Ray
2024-03-08 8:02 ` Chao Li
2024-01-26 6:29 ` [edk2-devel] [PATCH v8 13/37] UefiCpuPkg: Add CpuMmuLib.h to UefiCpuPkg Chao Li
2024-01-26 6:29 ` [edk2-devel] [PATCH v8 14/37] UefiCpuPkg: Add CpuMmuLib " Chao Li
2024-01-31 9:47 ` Laszlo Ersek
2024-02-01 7:57 ` Chao Li
2024-02-01 22:46 ` Laszlo Ersek
2024-02-02 3:30 ` Chao Li
2024-02-02 3:33 ` Ni, Ray
2024-02-02 3:50 ` Chao Li
2024-02-02 4:30 ` Ni, Ray
2024-03-01 1:26 ` Chao Li
2024-03-01 11:27 ` Laszlo Ersek
2024-03-04 3:39 ` Chao Li
2024-03-05 9:26 ` Laszlo Ersek
2024-03-05 11:50 ` Chao Li
2024-03-05 12:09 ` Laszlo Ersek
2024-03-05 12:12 ` Chao Li
[not found] ` <17B87F9FA8D0E543.14067@groups.io>
2024-03-01 1:53 ` Chao Li
2024-01-31 10:33 ` Pedro Falcato
2024-01-31 13:41 ` Laszlo Ersek
2024-01-31 17:46 ` Pedro Falcato
2024-02-01 3:05 ` Chao Li
2024-02-01 19:36 ` Pedro Falcato
2024-02-01 23:02 ` Laszlo Ersek
2024-02-02 15:14 ` Leif Lindholm
2024-02-04 2:58 ` Chao Li
[not found] ` <17B0898B4883051D.13964@groups.io>
2024-02-06 2:57 ` Chao Li [this message]
2024-02-06 14:32 ` Laszlo Ersek
2024-02-06 16:45 ` Pedro Falcato
2024-01-26 6:29 ` [edk2-devel] [PATCH v8 15/37] UefiCpuPkg: Add multiprocessor library for LoongArch64 Chao Li
2024-01-26 6:29 ` [edk2-devel] [PATCH v8 16/37] UefiCpuPkg: Add CpuDxe driver " Chao Li
2024-01-26 6:29 ` [edk2-devel] [PATCH v8 17/37] EmbeddedPkg: Add PcdPrePiCpuIoSize width for LOONGARCH64 Chao Li
2024-01-26 6:29 ` [edk2-devel] [PATCH v8 18/37] ArmVirtPkg: Move PCD of FDT base address and FDT padding to OvmfPkg Chao Li
2024-02-01 23:20 ` Laszlo Ersek
2024-01-26 6:29 ` [edk2-devel] [PATCH v8 19/37] UefiCpuPkg: Add a new CPU IO 2 driver named CpuMmio2Dxe Chao Li
2024-01-26 6:29 ` [edk2-devel] [PATCH v8 20/37] ArmVirtPkg: Enable CpuMmio2Dxe Chao Li
2024-02-01 22:19 ` Laszlo Ersek
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 21/37] OvmfPkg/RiscVVirt: " Chao Li
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 22/37] OvmfPkg/RiscVVirt: Remove PciCpuIo2Dxe from RiscVVirt Chao Li
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 23/37] ArmVirtPkg: Move the FdtSerialPortAddressLib to OvmfPkg Chao Li
2024-01-29 19:27 ` Laszlo Ersek
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 24/37] ArmVirtPkg: Move two PCD variables into OvmfPkg Chao Li
2024-01-29 19:49 ` Laszlo Ersek
2024-01-30 1:24 ` Chao Li
2024-01-30 16:45 ` Laszlo Ersek
2024-01-31 1:30 ` Chao Li
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 25/37] ArmVirtPkg: Move PlatformBootManagerLib to OvmfPkg Chao Li
2024-01-29 19:51 ` Laszlo Ersek
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 26/37] OvmfPkg/LoongArchVirt: Add stable timer driver Chao Li
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 27/37] OvmfPkg/LoongArchVirt: Add a NULL library named CollectApResouceLibNull Chao Li
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 28/37] OvmfPkg/LoongArchVirt: Add serial port hook library Chao Li
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 29/37] OvmfPkg/LoongArchVirt: Add the early serial port output library Chao Li
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 30/37] OvmfPkg/LoongArchVirt: Add real time clock library Chao Li
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 31/37] OvmfPkg/LoongArchVirt: Add NorFlashQemuLib Chao Li
2024-01-26 6:30 ` [edk2-devel] [PATCH v8 32/37] OvmfPkg/LoongArchVirt: Add FdtQemuFwCfgLib Chao Li
2024-01-26 6:31 ` [edk2-devel] [PATCH v8 33/37] OvmfPkg/LoongArchVirt: Add reset system library Chao Li
2024-01-26 6:31 ` [edk2-devel] [PATCH v8 34/37] OvmfPkg/LoongArchVirt: Support SEC phase Chao Li
2024-01-26 6:31 ` [edk2-devel] [PATCH v8 35/37] OvmfPkg/LoongArchVirt: Support PEI phase Chao Li
2024-01-26 6:31 ` [edk2-devel] [PATCH v8 36/37] OvmfPkg/LoongArchVirt: Add build file Chao Li
2024-01-26 6:31 ` [edk2-devel] [PATCH v8 37/37] OvmfPkg/LoongArchVirt: Add self introduction file Chao Li
[not found] ` <17ADD1D5A196C454.24595@groups.io>
2024-01-31 3:30 ` [edk2-devel] [PATCH v8 11/37] UefiCpuPkg: Add LoongArch64 CPU Timer instance Chao Li
[not found] ` <17AF510405DE784C.15701@groups.io>
2024-01-31 5:28 ` Chao Li
2024-01-31 10:47 ` Laszlo Ersek
[not found] ` <17ADD1D7001C37D6.11113@groups.io>
2024-01-31 3:31 ` [edk2-devel] [PATCH v8 12/37] UefiCpuPkg: Add CPU exception library for LoongArch Chao Li
[not found] ` <17AF510933F4B8FA.15701@groups.io>
2024-01-31 5:29 ` Chao Li
[not found] ` <17ADD1D9CA04F352.11113@groups.io>
2024-01-31 3:31 ` [edk2-devel] [PATCH v8 14/37] UefiCpuPkg: Add CpuMmuLib to UefiCpuPkg Chao Li
[not found] ` <17AF511188DE2475.15701@groups.io>
2024-01-31 5:32 ` Chao Li
[not found] ` <17ADD1DB56FC4702.24595@groups.io>
2024-01-31 3:32 ` [edk2-devel] [PATCH v8 15/37] UefiCpuPkg: Add multiprocessor library for LoongArch64 Chao Li
[not found] ` <17AF511741BD9C8B.15701@groups.io>
2024-01-31 5:33 ` Chao Li
[not found] ` <17ADD1DCBDD4B7FE.11113@groups.io>
2024-01-31 3:32 ` [edk2-devel] [PATCH v8 16/37] UefiCpuPkg: Add CpuDxe driver " Chao Li
[not found] ` <17AF511F29808828.16460@groups.io>
2024-01-31 5:33 ` Chao Li
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=6914d79c-582a-4108-b733-7d5b15537ab4@loongson.cn \
--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