[OpenBIOS] Analysis of current Solaris 8 boot failure on SPARC32
Mark Cave-Ayland
mark.cave-ayland at siriusit.co.uk
Tue Jan 4 00:16:49 CET 2011
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/sparc32/openprom.h.
However that structure doesn't match the memlist definition in
http://src.opensolaris.org/source/xref/systemz/betelgeuse/usr/src/uts/common/sys/memlist.h,
plus a list item can only contain one address which would still make it
unsuitable for holding translation information.
ATB,
Mark.
--
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063
Sirius Labs: http://www.siriusit.co.uk/labs
More information about the OpenBIOS
mailing list