LKML Archive mirror
 help / color / mirror / Atom feed
From: Alexandre Ghiti <alex@ghiti.fr>
To: Nam Cao <namcao@linutronix.de>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/7] remove size limit on XIP kernel
Date: Sun, 12 May 2024 17:47:24 +0200	[thread overview]
Message-ID: <46c70799-87b1-4478-95bb-4d4c90519f5b@ghiti.fr> (raw)
In-Reply-To: <cover.1715286093.git.namcao@linutronix.de>

Hi Nam,

On 10/05/2024 08:28, Nam Cao wrote:
> Hi,
>
> For XIP kernel, the writable data section is always at offset specified in
> XIP_OFFSET, which is hard-coded to 32MB.
>
> Unfortunately, this means the read-only section (placed before the
> writable section) is restricted in size. This causes build failure if the
> kernel gets too large.
>
> This series remove the use of XIP_OFFSET one by one, then remove this
> macro entirely at the end, with the goal of lifting this size restriction.
>
> Also some cleanup and documentation along the way.
>
> This series depends on
>      https://lore.kernel.org/linux-riscv/20240508191917.2892064-1-namcao@linutronix.de/
> to apply cleanly, and also depends on
>      https://lore.kernel.org/linux-riscv/20240508173116.2866192-1-namcao@linutronix.de/
> which fixes a boot issue.
>
> Best regards,
> Nam
>
> Nam Cao (7):
>    riscv: cleanup XIP_FIXUP macro
>    riscv: replace va_kernel_pa_offset with va_kernel_data_pa_offset on
>      XIP
>    riscv: drop the use of XIP_OFFSET in XIP_FIXUP_OFFSET
>    riscv: drop the use of XIP_OFFSET in XIP_FIXUP_FLASH_OFFSET
>    riscv: drop the use of XIP_OFFSET in kernel_mapping_va_to_pa()
>    riscv: drop the use of XIP_OFFSET in create_kernel_page_table()
>    riscv: remove limit on the size of read-only section for XIP kernel
>
>   arch/riscv/include/asm/page.h       | 25 ++++++++++++++++++------
>   arch/riscv/include/asm/pgtable.h    | 18 +++++++----------
>   arch/riscv/include/asm/xip_fixup.h  | 30 +++++++++++++++++++++++------
>   arch/riscv/kernel/vmlinux-xip.lds.S |  4 ++--
>   arch/riscv/mm/init.c                | 11 +++++++----
>   5 files changed, 59 insertions(+), 29 deletions(-)
>

XIP kernels are intended for use with flash devices so the XIP_OFFSET 
restriction actually represents the size of the flash device: IIRC this 
32MB was chosen because it would fit "most devices". I think it would be 
good to come up with a mechanism that allows to restrict the size at 
build time: a config? XIP kernels are custom kernels so the user could 
enter its flash size so that if kernel ends up being too large, it 
fails. And by default, we could a very large size to avoid kernel test 
robot build failures.

Thanks,

Alex


  parent reply	other threads:[~2024-05-12 15:47 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-10  6:28 [PATCH 0/7] remove size limit on XIP kernel Nam Cao
2024-05-10  6:28 ` [PATCH 1/7] riscv: cleanup XIP_FIXUP macro Nam Cao
2024-05-27 12:16   ` Alexandre Ghiti
2024-05-10  6:28 ` [PATCH 2/7] riscv: replace va_kernel_pa_offset with va_kernel_data_pa_offset on XIP Nam Cao
2024-05-27 12:32   ` Alexandre Ghiti
2024-05-10  6:28 ` [PATCH 3/7] riscv: drop the use of XIP_OFFSET in XIP_FIXUP_OFFSET Nam Cao
2024-05-27 12:37   ` Alexandre Ghiti
2024-05-10  6:28 ` [PATCH 4/7] riscv: drop the use of XIP_OFFSET in XIP_FIXUP_FLASH_OFFSET Nam Cao
2024-05-27 12:47   ` Alexandre Ghiti
2024-05-10  6:28 ` [PATCH 5/7] riscv: drop the use of XIP_OFFSET in kernel_mapping_va_to_pa() Nam Cao
2024-05-27 12:49   ` Alexandre Ghiti
2024-05-10  6:28 ` [PATCH 6/7] riscv: drop the use of XIP_OFFSET in create_kernel_page_table() Nam Cao
2024-05-27 12:53   ` Alexandre Ghiti
2024-05-10  6:28 ` [PATCH 7/7] riscv: remove limit on the size of read-only section for XIP kernel Nam Cao
2024-05-27 12:58   ` Alexandre Ghiti
2024-06-02  7:32     ` Nam Cao
2024-05-12 15:47 ` Alexandre Ghiti [this message]
2024-05-13  8:19   ` [PATCH 0/7] remove size limit on " Nam Cao

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=46c70799-87b1-4478-95bb-4d4c90519f5b@ghiti.fr \
    --to=alex@ghiti.fr \
    --cc=aou@eecs.berkeley.edu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=namcao@linutronix.de \
    --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 read-only IMAP folder(s) and NNTP newsgroup(s).