From: Magnus Lindholm <linmag7@gmail.com>
To: davem@davemloft.net, andreas@gaisler.com
Cc: sam@ravnborg.org, sparclinux@vger.kernel.org,
linux-kernel@vger.kernel.org, linmag7@gmail.com
Subject: [PATCH v4 0/6] sparc32: replace sp_banks with memblock
Date: Sun, 27 Sep 2026 23:43:11 +0200 [thread overview]
Message-ID: <20260927214334.886582-1-linmag7@gmail.com> (raw)
Replace the sparc32-private sp_banks memory description with memblock.
The first two patches convert the SRMMU consumers that already run after
bootmem_init() has populated memblock. The third patch moves memblock
population to prom_meminit() and applies the mem= limit there. Patch 4
removes an unused address bitmap before patch 5 moves the early memory
setup into setup_32.c. Patch 6 removes the now-unused sp_banks array.
This work is based on an earlier eight-patch series by Sam Ravnborg.
Patch 2 directly carries over Sam's memblock sizing conversion. The series
has otherwise been substantially reorganized and reworked for the current
kernel. It retains the sparc32 mem= command-line option by using
memblock_enforce_memory_limit() and uses memblock's exclusive range-end
semantics throughout.
The series applies on top of the sparc32 phys_base and Viking fixes,
rebased onto Linux 7.3-rc1. The prerequisite tip is recorded below as the
base commit. setup_memory() preserves relocated-kernel handling by
removing RAM below the physical address to which PAGE_OFFSET maps.
Link: https://lore.kernel.org/sparclinux/20260816075141.3489194-1-linmag7@gmail.com/T/#t
The v1 series was boot tested on a Sun SPARCstation 20 with dual
SuperSPARC-II CPUs (SM71).
The v2 series was boot tested on a Sun SPARCstation 20 with dual
ROSS HyperSPARC (RT626) CPUs.
The v3 series was cross-compiled with the SPARCstation 20 and LEON
configurations as well as boot tested on a Sun SPARCstation 20
with dual ROSS HyperSPARC (RT626) CPUs.
The v4 series was cross-compiled with the SPARCstation 20 SMP configuration
and a sparc32_defconfig-derived LEON configuration, both with HIGHMEM
enabled. Boot tested on a SPARCstation 20 SMP (ROSS)
Changes in v4:
- Use max_pfn in LEON's _pfn_valid() check, preserving the bounds of
last_valid_pfn instead of restricting the check to lowmem, as requested
by Andreas Larsson.
- Correct the description: LEON systems can use highmem.
- Carry Sam's Reviewed-by tag on patch 5; all six patches now retain his
review tags.
- Rebase onto Linux 7.3-rc1 plus the three prerequisite patches; adjust
patch 6's context without changing its code changes.
Changes in v3:
- Add Sam's Reviewed-by tag to patch 4.
- Initialize max_pfn in patch 5 and use it as the highmem zone limit.
- Use PHYS_PFN() instead of open-coded PAGE_SHIFT conversions in patch 5.
- Remove the obsolete highstart_pfn and highend_pfn declarations.
- Use the generic PFN limit declarations from linux/memblock.h.
- Document removal of the duplicate private HIGHMEM summary.
Changes in v2:
- Add Sam's Reviewed-by tags to patches 1-3 and 6. Patch 6 is the
unchanged source change from patch 5 in v1, renumbered by the new patch.
- Drop the unused sparc_valid_addr_bitmap in a preparation patch.
- Use for_each_mem_pfn_range() and the standard max_low_pfn variable in
the early memory setup. The change to LEON's PFN check made in v2 is
corrected in v4 to preserve its original bounds.
Suggested-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://lore.kernel.org/r/20260817153237.GA702187@ravnborg.org
Link: https://lore.kernel.org/r/20260901214611.60560-1-linmag7@gmail.com
Magnus Lindholm (6):
sparc32: use memblock when mapping the kernel
sparc32: use memblock to find available system memory
sparc32: populate memblock from the PROM memory map
sparc32: drop unused valid address bitmap
sparc32: move early memory setup to setup_arch
sparc32: drop sp_banks
arch/sparc/include/asm/highmem.h | 3 -
arch/sparc/include/asm/leon.h | 2 +-
arch/sparc/include/asm/page_32.h | 16 ---
arch/sparc/include/asm/pgtable_32.h | 3 +-
arch/sparc/include/asm/pgtsrmmu.h | 1 -
arch/sparc/kernel/setup_32.c | 112 ++++++++++---------
arch/sparc/mm/init_32.c | 167 +---------------------------
arch/sparc/mm/leon_mm.c | 1 +
arch/sparc/mm/srmmu.c | 69 ++++--------
arch/sparc/prom/memory.c | 51 ++-------
10 files changed, 98 insertions(+), 327 deletions(-)
base-commit: ff3cbaedcebcb60f8f13fa4dd667116f29cd53e4
--
2.43.0
next reply other threads:[~2026-09-27 21:43 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-27 21:43 Magnus Lindholm [this message]
2026-09-27 21:43 ` [PATCH v4 1/6] sparc32: use memblock when mapping the kernel Magnus Lindholm
2026-09-27 21:43 ` [PATCH v4 2/6] sparc32: use memblock to find available system memory Magnus Lindholm
2026-09-27 21:43 ` [PATCH v4 3/6] sparc32: populate memblock from the PROM memory map Magnus Lindholm
2026-09-27 21:43 ` [PATCH v4 4/6] sparc32: drop unused valid address bitmap Magnus Lindholm
2026-09-27 21:43 ` [PATCH v4 5/6] sparc32: move early memory setup to setup_arch Magnus Lindholm
2026-09-27 21:43 ` [PATCH v4 6/6] sparc32: drop sp_banks Magnus Lindholm
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=20260927214334.886582-1-linmag7@gmail.com \
--to=linmag7@gmail.com \
--cc=andreas@gaisler.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=sam@ravnborg.org \
--cc=sparclinux@vger.kernel.org \
/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
all inboxes | Powered by JetHome®