mbox series

[v2,0/8] remove size limit on XIP kernel

Message ID cover.1717789719.git.namcao@linutronix.de (mailing list archive)
Headers show
Series remove size limit on XIP kernel | expand

Message

Nam Cao June 7, 2024, 8:22 p.m. UTC
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/

v2: address all Alex's comments (thanks Alex!). This includes the addition of a
new patch (riscv: don't export va_kernel_pa_offset in vmcoreinfo for XIP kernel),
which fix a build failure if CONFIG_VMCORE_INFO=y

Best regards,
Nam

Nam Cao (8):
  riscv: cleanup XIP_FIXUP macro
  riscv: don't export va_kernel_pa_offset in vmcoreinfo for XIP kernel
  riscv: replace misleading va_kernel_pa_offset on XIP kernel
  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       | 29 ++++++++++++++++++++--------
 arch/riscv/include/asm/pgtable.h    | 18 +++++++----------
 arch/riscv/include/asm/set_memory.h |  2 +-
 arch/riscv/include/asm/xip_fixup.h  | 30 +++++++++++++++++++++++------
 arch/riscv/kernel/vmcore_info.c     |  7 +++++++
 arch/riscv/kernel/vmlinux-xip.lds.S |  5 +++--
 arch/riscv/mm/init.c                | 13 ++++++++-----
 7 files changed, 71 insertions(+), 33 deletions(-)