On 2011-1-3 1:59 PM, Andreas Färber wrote:
[...] According to Tarl, the virtual address is not supposed to respect #address-cells but to use as many (integer) cells as needed for - hardcoded
- one (stack) cell. I would thus expect the virtual address to be 4 bytes on
sparc32.
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 */ }