Re: [PATCH v3 00/22] riscv: Memory type control for platforms with physical memory aliases
From: David Hildenbrand (Red Hat)
Date: Thu Nov 13 2025 - 14:14:00 EST
On 13.11.25 02:45, Samuel Holland wrote:
On some RISC-V platforms, including StarFive JH7100 and ESWIN EIC7700,
DRAM is mapped to multiple physical address ranges, with each alias
having a different set of statically-determined Physical Memory
Attributes (PMAs), such as cacheability. Software can alter the PMAs for
a page by selecting a PFN from the corresponding physical address range.
On these platforms, this is the only way to allocate noncached memory
for use with noncoherent DMA.
These physical memory aliases are only visible to architecture code.
Generic MM code only ever sees the primary (cacheable) alias. The major
change from v1 of this series is that I was asked to move the hooks from
pfn_pXX()/pXX_pfn() to set_pXX()/pXXp_get().
- Patches 1-10 ensure that architecture-specific code that hooks page
table reads and writes is always called, and the calls are balanced.
It is not immediately clear to me from the description why that is required. Can you summarize the core problem here, and why we have to route everything through these accessors?
--
Cheers
David