On Sun, Dec 08, 2013 at 11:18:11AM +0000, Mark Cave-Ayland wrote:
On 08/12/13 10:36, Aurelien Jarno wrote:
On Mon, Aug 19, 2013 at 09:40:13AM +0200, repository service wrote:
Author: mcayland Date: Mon Aug 19 09:40:12 2013 New Revision: 1209 URL: http://tracker.coreboot.org/trac/openbios/changeset/1209
Log: SPARC32: fix romvec stdin/stdout field initialisation
Previously the romvec stdin/stdout ihandles were configured so that they were set to the current stdin and stdout paths at initialisation time. Unfortunately as stdin/stdout can be changed with the input and output words, they can end up pointing to invalid ihandles causing a crash when trying to output to the console.
Fix this by pointing the romvec structure to the address of the stdin/stdout variables so that they are always in sync. Similarly we also resolve the text path stdin/stdout variables at boot time to ensure that they will never be stale.
Signed-off-by: Mark Cave-Aylandmark.email@example.com
Modified: trunk/openbios-devel/arch/sparc32/boot.c trunk/openbios-devel/arch/sparc32/romvec.c
Since this patch has been applied, I am unable to boot a Debian SPARC32 guest using SILO as a bootloader. OpenBios stops at "Trying disk".
One can find such a guest there: http://people.debian.org/~aurel32/qemu/sparc/debian_etch_sparc_small.qcow2
Thanks for the bug report. I've just downloaded your image above and tested it against a fresh build of OpenBIOS r1235 here and it works fine for me (QEMU 1.7, gcc 4.7.1, sparc-elf-gcc cross-compile on Debian amd64). Is there anything else about your build environment that may be different somehow?
I have tried on almost the same build environment than you, and I also on a native gcc 4.8 compiler on sparc. For me this also doesn't work with the OpenBIOS version provided in QEMU 1.7.0, using the following command:
qemu-system-sparc -hda /tmp/debian_etch_sparc_small.qcow2
Best regards, Aurelien