[OpenBIOS] Latest SPARC64 & Milax update

Blue Swirl blauwirbel at gmail.com
Tue Jan 5 20:44:32 CET 2010


On Sun, Jan 3, 2010 at 2:57 PM, Mark Cave-Ayland
<mark.cave-ayland at siriusit.co.uk> wrote:
> Igor Kovalenko wrote:
>
>>> Looking at SILO and Linux usage, It looks like OF entry point needs to
>>> be in %o4 and %o0 must be zero.
>>>
>>>
>>> http://fxr.watson.org/fxr/source/arch/sparc64/kernel/head.S?v=linux-2.4.22
>>>
>>> http://git.kernel.org/?p=linux/kernel/git/bcollins/silo.git;a=blob;f=first/ultra.S;h=b285e1d66009e3490c47e4369d541a65529e27b5;hb=a55764ceef83086d00b5f7b8b3027b517fc4ca23
>>> http://fxr.watson.org/fxr/source/arch/sparc/kernel/head.S?v=linux-2.4.22
>>>
>>> But start_client_image() already handles this, except for zero %o0.
>>
>> We may want to rework implementation so go() uses start_client_image()
>> with saved context, and boot word uses client state reset, load,
>> init-program
>> and go words. load would fetch image, init-program would prepare saved
>> context. This would match a hint in of1275 document about difference
>> between boot and load words.
>
> Yeah I think you're right here - by using an intermediate client state then
> it would be possible to share the majority of code between the two
> implementations.
>
> Another interesting thing I noticed from this document was that the alarm
> word is implemented using a timer interrupt. Hence this would be a good test
> of general timer functionality (as well as given a twirly baton during the
> first loading stage!). Does anyone know if the qemu SPARC64 model currently
> supports a timer interrupt?

I thought it does (%tick register works), but it looks like the CPU
timer interrupts (%tick_cmpr register) don't work at all.



More information about the OpenBIOS mailing list