From: Rob Herring <robh+dt@kernel.org>
To: Alexandre Ghiti <alexghiti@rivosinc.com>
Cc: Andrew Jones <ajones@ventanamicro.com>,
Paul Walmsley <paul.walmsley@sifive.com>,
Palmer Dabbelt <palmer@dabbelt.com>,
Albert Ou <aou@eecs.berkeley.edu>, Guo Ren <guoren@kernel.org>,
Frank Rowand <frowand.list@gmail.com>,
linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org,
devicetree@vger.kernel.org, linux-arch@vger.kernel.org
Subject: Re: [PATCH v4] riscv: Use PUD/P4D/PGD pages for the linear mapping
Date: Mon, 30 Jan 2023 07:48:04 -0600 [thread overview]
Message-ID: <CAL_JsqJ8JtkOBLpdf3hU9JWcdRTFr3Ss1Hd+yFpMqs7ujUiyCQ@mail.gmail.com> (raw)
In-Reply-To: <CAHVXubjUCmk6xGTCPzMujYqKUwE0bhQBqd8A+=yq7ijQZtBObg@mail.gmail.com>
On Wed, Jan 25, 2023 at 6:13 AM Alexandre Ghiti <alexghiti@rivosinc.com> wrote:
>
> On Wed, Jan 25, 2023 at 11:41 AM Andrew Jones <ajones@ventanamicro.com> wrote:
> >
> > On Mon, Jan 23, 2023 at 03:25:54PM +0100, Andrew Jones wrote:
> > > On Mon, Jan 23, 2023 at 12:28:02PM +0100, Alexandre Ghiti wrote:
> > > > During the early page table creation, we used to set the mapping for
> > > > PAGE_OFFSET to the kernel load address: but the kernel load address is
> > > > always offseted by PMD_SIZE which makes it impossible to use PUD/P4D/PGD
> > > > pages as this physical address is not aligned on PUD/P4D/PGD size (whereas
> > > > PAGE_OFFSET is).
[...]
> > > > diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
> > > > index f08b25195ae7..58107bd56f8f 100644
> > > > --- a/drivers/of/fdt.c
> > > > +++ b/drivers/of/fdt.c
> > > > @@ -891,12 +891,13 @@ const void * __init of_flat_dt_match_machine(const void *default_match,
> > > > static void __early_init_dt_declare_initrd(unsigned long start,
> > > > unsigned long end)
> > > > {
> > > > - /* ARM64 would cause a BUG to occur here when CONFIG_DEBUG_VM is
> > > > - * enabled since __va() is called too early. ARM64 does make use
> > > > - * of phys_initrd_start/phys_initrd_size so we can skip this
> > > > - * conversion.
> > > > + /*
> > > > + * __va() is not yet available this early on some platforms. In that
> > > > + * case, the platform uses phys_initrd_start/phys_initrd_size instead
> > > > + * and does the VA conversion itself.
> > > > */
> > > > - if (!IS_ENABLED(CONFIG_ARM64)) {
> > > > + if (!IS_ENABLED(CONFIG_ARM64) &&
> > > > + !(IS_ENABLED(CONFIG_RISCV) && IS_ENABLED(CONFIG_64BIT))) {
> > >
> > > There are now two architectures, so maybe it's time for a new config
> > > symbol which would be selected by arm64 and riscv64 and then used here,
> > > e.g.
> > >
> > > if (!IS_ENABLED(CONFIG_NO_EARLY_LINEAR_MAP)) {
> >
> > I see v5 left this as it was. Any comment on this suggestion?
>
> Introducing a config for this only use case sounds excessive to me,
> but I'll let Rob decide what he wants to see here.
Agreed. Can we just keep it as is here.
> > > > initrd_start = (unsigned long)__va(start);
> > > > initrd_end = (unsigned long)__va(end);
I think long term, we should just get rid of needing to do this part
in the DT code and let the initrd code do this.
Rob
next prev parent reply other threads:[~2023-01-30 13:48 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-23 11:28 [PATCH v4] riscv: Use PUD/P4D/PGD pages for the linear mapping Alexandre Ghiti
2023-01-23 14:25 ` Andrew Jones
2023-01-25 10:41 ` Andrew Jones
2023-01-25 12:12 ` Alexandre Ghiti
2023-01-25 15:10 ` Andrew Jones
2023-01-27 8:45 ` Alexandre Ghiti
2023-01-27 8:58 ` Andrew Jones
2023-01-28 10:13 ` Andrew Jones
2023-01-30 13:48 ` Rob Herring [this message]
2023-01-30 14:19 ` Andrew Jones
2023-01-30 14:57 ` Rob Herring
2023-01-23 22:10 ` Conor Dooley
2023-01-24 9:04 ` Alexandre Ghiti
2023-01-24 0:19 ` kernel test robot
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-all 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=CAL_JsqJ8JtkOBLpdf3hU9JWcdRTFr3Ss1Hd+yFpMqs7ujUiyCQ@mail.gmail.com \
--to=robh+dt@kernel.org \
--cc=ajones@ventanamicro.com \
--cc=alexghiti@rivosinc.com \
--cc=aou@eecs.berkeley.edu \
--cc=devicetree@vger.kernel.org \
--cc=frowand.list@gmail.com \
--cc=guoren@kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
/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;
as well as URLs for NNTP newsgroup(s).