On Wed, Feb 21, 2018 at 04:02:25PM +0100, Christophe LEROY wrote: [...] > > > My question might me stupid, as I don't know PCC64 in deep, but when looking > > > at page_is_ram() in arch/powerpc/mm/mem.c, I have the feeling the PPC64 > > > implements ram by blocks. Isn't it what you are trying to achieve ? Wouldn't > > > it be feasible to map to what's done in PPC64 for PPC32 ? > > > > Using page_is_ram in __ioremap_caller and the same memblock-based > > approach that's used on PPC64 on PPC32 *should* work, but I think due to > > the following line in initmem_init, it won't: > > > > memblock_set_node(0, (phys_addr_t)ULLONG_MAX, &memblock.memory, 0); > > Can't we just fix that ? Turns out I was completely wrong about this. memblock_set_node as called above only assigns all memory to node 0 and merges *adjacent* memblocks. It doesn't merge the memblocks on the Wii, which are far apart. So now I actually have a working patchset (coming soon), that's a good deal shorter than this patchset, and hopefully won't break CONFIG_HIGHMEM in the same way. Thanks for your input! :) Jonathan Neuschäfer
Attachment:
signature.asc
Description: PGP signature