On 03/01/11 22:52, Tarl Neustaedter wrote:
What I find in Solaris (current Solaris, I don't currently have easy access to back versions) is below. Look in usr/src/psm/stand/boot/sparc/sun4/sys/prom_plat.h
/*
- The 'format' of the "translations" property in the 'mmu' node ...
*/
struct translation { uint32_t virt_hi; /* upper 32 bits of vaddr */ uint32_t virt_lo; /* lower 32 bits of vaddr */ uint32_t size_hi; /* upper 32 bits of size in bytes */ uint32_t size_lo; /* lower 32 bits of size in bytes */ uint32_t tte_hi; /* higher 32 bites of tte */ uint32_t tte_lo; /* lower 32 bits of tte */ }
Hmmm that looks right for 64-bit but I'm not sure about 32-bit (note the use of tte rather than pte). Given that I don't think there is an MMU node in the SS-5 OBP boot tree, I'm not sure how the kernel is picking up the MMU translations?
I can only think that they are coming from the ROMVEC v0_prommap memlist which is mentioned here: http://tracker.coreboot.org/trac/openbios/browser/trunk/openbios-devel/arch/.... However that structure doesn't match the memlist definition in http://src.opensolaris.org/source/xref/systemz/betelgeuse/usr/src/uts/common..., plus a list item can only contain one address which would still make it unsuitable for holding translation information.
ATB,
Mark.