Am 26.11.2010 um 20:52 schrieb Blue Swirl:
On Thu, Nov 25, 2010 at 10:04 PM, Andreas Färber <andreas.faerber@web.de
wrote: Am 25.11.2010 um 22:56 schrieb repository service:
Author: afaerber Date: Thu Nov 25 22:56:23 2010 New Revision: 969 URL: http://tracker.coreboot.org/trac/openbios/changeset/969
Log: ppc: Set up TOC base for ppc64
r2 points to TOC base, __toc_start + 0x8000. This value is stored as part of the function descriptor.
Include some related ELF sections in the linker script.
Cc: Alexander Graf agraf@suse.de Cc: Segher Boessenkool segher@kernel.crashing.org Signed-off-by: Andreas Färber andreas.faerber@web.de
Starting with this revision,
qemu-system-ppc64 -bios .../obj-ppc64/openbios-qemu.elf -prom-env 'auto-boot?=false'
should take you to the Forth prompt.
I still get this: GEN bootstrap.dict panic: segmentation violation at 0x9034862c dict=0x2aae90348010 here=0x2aae90348638(dict+0x628) pc=0x0(dict +0x6fcb7ff0) dstackcnt=0 rstackcnt=0 instruction=deadbeef dstack: 0x0 rstack: 0x0 Writing dictionary core file
This happens on a 64 bit host, but not on a 32 bit host.
Same here:
$ make V=1 HOSTCC="gcc -arch ppc64" [...] ./forthstrap -I../forth/bootstrap/ -I../forth/bootstrap/ -I../forth/ lib/ -I../forth/device/ -I../forth/debugging/ -I../forth/admin/ -I../ forth/util/ -I../forth/packages/ -I../forth/system/ -I../libopenbios/ - I../packages/ -I../drivers/ -I../arch/ppc/ -I./forth -D bootstrap.dict -c bootstrap.dict-console.log ../forth/bootstrap/start.fs panic: segmentation violation at 0x30061c dict=0x100300000 here=0x100300628(dict+0x628) pc=0x0(dict+0xffd00000) dstackcnt=0 rstackcnt=0 instruction=deadbeef dstack: 0x0 rstack: 0x0 Writing dictionary core file make: *** [bootstrap.dict] Error 1
Changing config.mak to use - DNATIVE_BITWIDTH_SMALLER_THAN_HOST_BITWIDTH (despite ppc64 being 64- bit) fixes this.
This boils down to my remarks that this config mechanism is not purely about bitwidth but also about cell size. Not sure how to fix properly...
Andreas