[OpenBIOS] More work on Solaris 8 SPARC32 crash
Mark Cave-Ayland
mark.cave-ayland at siriusit.co.uk
Mon Feb 14 11:19:10 CET 2011
On 13/02/11 21:57, Blue Swirl wrote:
>> So does that mean that the OpenBIOS timer handlers need to read the limit
>> register in order to reset the interrupt status? Then again, I'm not
>> convinced by this is the total solution since if I add breakpoints on
>> irq_entry10 and irq_entry14 then they never seem to hit in gdb anyhow.
>
> Right. Then I'd try to program the timer and also interrupt
> controller. In theory also PIL level could matter if the OS preserved
> the value which was used when it took charge, but I doubt this.
I'm wondering if there is actually a qemu bug here too, since the
documentation also mentions the following:
"When a counter reached the value in its corresponding
limit register, it is reset to 500ns (i.e. 0x00000200)"
and also:
"Writing the limit register resets the corresponding counter to 500nS
(0x200)"
AFAICT looking at slavio_timer.c I can't see a 0x200 initial base when
the timer is reset - Blue, what do you think? I'm trying to figure out
why writing a non-zero value to the limit register seems to get the L14
timer to return something non-zero, whereas in theory with a limit set
to 0 it should be free-running and with a base limit of 0x200 set, never
return a zero value.
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