[OpenBIOS] Missing portid properties

Mark Cave-Ayland mark.cave-ayland at siriusit.co.uk
Mon May 3 01:12:00 CEST 2010


Blue Swirl wrote:

> I think OpenBIOS does not flush the I/D TLBs on reset.
> Most PCI devices have 0x1f in 'upa-portid' and CPU has zero.

I've just seen your commits for this - thanks!

> Debian package sparc-utils contains some device trees:
> http://packages.debian.org/lenny/sparc/sparc-utils/filelist

That's really useful to know. I used these as a reference for creating 
the extra CPU properties required to stop the divide-by-zero error.

This helps things get further, but in particular it shows that we're 
missing a whole set of architecture-specific Forth words for 
manipulating registers. The OpenSolaris kernel tries to execute the 
following Forth:

sync %tl-c %tstate h# 1860640 x! %g1 h# 1860648 x! %g2 h# 1860650 x! %g3 
h# 1860658 x! %g4 h# 1860660 x! %g5 h# 1860668 x! %g6 h# 1860670 x! %g7 
h# 1860678 x! %o0 h# 1860680 x! %o1 h# 1860688 x! %o2 h# 1860690 x! %o3 
h# 1860698 x! %o4 h# 18606a0 x! %o5 h# 18606a8 x! %o6 h# 18606b0 x! %o7 
h# 18606b8 x! %tl-c %tpc h# 18606c0 x! %tl-c %tnpc h# 18606c8 x! %y h# 
18606d0 l! %tl-c %tt h# 1843cf8 x! sync ; warning !

(from 
http://src.opensolaris.org/source/xref/systemz/sirius/usr/src/uts/sun4/os/startup.c)

It seems that we need some Forth functions for creating/managing CPU 
state? I suspect I'll have to dig into the OpenBOOT source to find out 
how these are supposed to work.


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