[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