[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