[OpenBIOS] Q: How to "squeeze" C functions in between two symbols?
Andreas Färber
andreas.faerber at web.de
Mon Oct 11 21:18:13 CEST 2010
Am 08.10.2010 um 19:22 schrieb Alexander Graf:
> On 08.10.2010, at 19:11, Andreas Färber wrote:
>
>> Am 08.10.2010 um 15:30 schrieb Alexander Graf:
>>
>>> Why don't you just create a separate binary for RTAS which can
>>> then use relative branching inside of itself? You could then copy
>>> the whole blob somewhere and be sure that everything's there.
>>
>> How? :) Assuming I managed to fork arch/ppc/qemu/{start.S,ldscript}
>> for a separate ELF binary, what would we do with it? Would QEMU
>> need to load it separately as a ROM with known location, like
>> openbios-ppc? Or would you embed such a binary into OpenBIOS somehow?
>
> You'd embed in into OpenBIOS. Just create a .c file keeping the blob
> as variable from the .elf binary.
Sorry to bug... I have a very simple rtas.S now, linked into an rtas-
qemu.elf. What now?
i) Is there an existing way to get my binary file into a .c file
variable, or do I need to write my own generator in C? (or worse, Forth)
ii) To do anything with the blob I need to load it properly as an ELF
image, and libopenbios/elf_load.c:elf_load() requires an ihandle. How
would I get an ihandle from a variable in a .c file? It doesn't let me
specify the (client-supplied) memory address either.
iii) Once I've loaded the ELF image, how do I get the function's entry
point? OpenBIOS itself just uses the CPU's reset vector and branches
to _entry from there - anything I need to add/change in the ldscript?
Thanks,
Andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: rtas.diff
Type: application/octet-stream
Size: 2140 bytes
Desc: not available
URL: <http://lists.openbios.org/pipermail/openbios/attachments/20101011/89f6bd02/attachment.obj>
-------------- next part --------------
More information about the OpenBIOS
mailing list