Files
openbios/arch/sparc32/build.xml
Mark Cave-Ayland d92b811c6e Use wrappers around all romvec functions on SPARC32 to flush register window and preserve global registers.
This appears to resolve issues with OpenBIOS crashing when calling OBP functions through the romvec interface due to 
stack/register issues. Note that this patch also implements pv_printf() and pv_putstr() which appears to fix issues with 
displaying error messages during Solaris 8 boot.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@918 f158a5a8-5612-0410-a976-696ce0be7e32
2010-10-24 19:55:27 +00:00

76 lines
3.0 KiB
XML

<build condition="SPARC32">
<dictionary name="openbios-sparc32" init="openbios">
<object source="tree.fs" target="forth"/>
<object source="init.fs" target="forth"/>
</dictionary>
<library name="sparc32" type="static" target="target">
<object source="openbios.c"/>
<object source="console.c"/>
<object source="lib.c"/>
<object source="boot.c"/>
<object source="context.c"/>
<object source="switch.S"/>
<object source="udiv.S"/>
<object source="linux_load.c"/>
<object source="sys_info.c"/>
<object source="romvec.c"/>
<object source="call-romvec.S"/>
<object source="entry.S"/>
<object source="vectors.S"/>
</library>
<executable name="openbios-plain.elf" target="target" condition="IMAGE_ELF">
<rule>
$(call quiet-command,$(LD) --warn-common -N -T $(SRCDIR)/arch/sparc32/ldscript -o $@.nostrip --whole-archive $^," LINK $(TARGET_DIR)$@")
$(call quiet-command,$(NM) $@.nostrip | sort > $(ODIR)/openbios-plain.syms," GEN $(TARGET_DIR)$@.syms")
$(call quiet-command,$(STRIP) $@.nostrip -o $@," STRIP $(TARGET_DIR)$@")</rule>
<object source="plainboot.c"/>
<external-object source="libsparc32.a"/>
<external-object source="libbootstrap.a"/>
<external-object source="libopenbios.a"/>
<external-object source="libpackages.a"/>
<external-object source="libdrivers.a"/>
<external-object source="libfs.a"/>
<external-object source="liblibc.a"/>
<external-object source="libgcc.a"/>
</executable>
<!-- HACK ALERT -->
<executable name="target/include/static-dict.h" target="target" condition="IMAGE_ELF_EMBEDDED">
<rule><![CDATA[
$(call quiet-command,true, " GEN $(TARGET_DIR)$@")
@echo "static const char forth_dictionary[] = {" > $@
@cat $< | hexdump -ve '1/0 "\t" 8/1 "0x%02x, " 1/0 "\n"' \
| sed 's/0x ,//g' >> $@
@echo "};" >> $@]]></rule>
<external-object source="openbios-sparc32.dict"/>
</executable>
<executable name="target/arch/sparc32/builtin.o" target="target" condition="IMAGE_ELF_EMBEDDED">
<rule><![CDATA[ $(SRCDIR)/arch/sparc32/builtin.c $(ODIR)/target/include/static-dict.h
$(call quiet-command,$(CC) $$EXTRACFLAGS $(CFLAGS) $(INCLUDES) -c -o $@ $(SRCDIR)/arch/sparc32/builtin.c, " CC $(TARGET_DIR)$@")]]></rule>
</executable>
<!-- END OF HACK ALERT -->
<executable name="openbios-builtin.elf" target="target" condition="IMAGE_ELF_EMBEDDED">
<rule>
$(call quiet-command,$(LD) --warn-common -N -T $(SRCDIR)/arch/sparc32/ldscript -o $@.nostrip --whole-archive $^," LINK $(TARGET_DIR)$@")
$(call quiet-command,$(NM) $@.nostrip | sort > $(ODIR)/openbios-builtin.syms," GEN $(TARGET_DIR)$@.syms")
$(call quiet-command,$(STRIP) $@.nostrip -o $@," STRIP $(TARGET_DIR)$@")</rule>
<external-object source="target/arch/sparc32/builtin.o"/>
<external-object source="libsparc32.a"/>
<external-object source="libbootstrap.a"/>
<external-object source="libopenbios.a"/>
<external-object source="libpackages.a"/>
<external-object source="libdrivers.a"/>
<external-object source="libfs.a"/>
<external-object source="liblibc.a"/>
<external-object source="libgcc.a"/>
</executable>
</build>