[OpenBIOS] How to pass CIF chain arguments on SPARC64?
Mark Cave-Ayland
mark.cave-ayland at ilande.co.uk
Fri Apr 4 18:53:49 CEST 2014
Hi all,
I'm working on implementing a version of the CIF chain service for
SPARC64 and am trying to understand what to do with the arguments
parameters. From the specification:
"chain: Frees size bytes of memory starting at virtual address virt,
then executes another client program beginning at address entry. The
argument buffer args, len is copied into the Open Firmware memory and
passed to the other program. The address of the arguments in the Open
Firmware memory is the client program’s second argument, and their
length is its third argument. chain is used to free any remaining memory
for a secondary boot program and begin executing the booted program."
How are the arguments passed to the next client program? A quick peek at
the OpenBOOT source shows that (init-program) only sets up %o4 (CIF) and
%o6 (stack) registers. Does that mean that the arguments should be
copied onto the stack or somehow via the registers? Unfortunately I
can't seem to find a suitable 64-bit SPARC IEEE1275 ISA document anywhere :(
ATB,
Mark.
More information about the OpenBIOS
mailing list