[OpenBIOS] [Qemu-devel] Re: What is the current support state for Sparc emulation
Stefan Reinauer
stepan at coresystems.de
Fri Jul 20 13:36:58 CEST 2007
* Blue Swirl <blauwirbel at gmail.com> [070719 20:46]:
> On 7/19/07, spectral at op.pl <spectral at op.pl> wrote:
> > Unhandled Exception 0x00000007
> > PC = 0xffd0a55c NPC = 0xffd09374
> > Stopping execution
> >
> > So this is my report, I hope it can be of some use. I'll try to boot sparc version of OpenSolaris soon and I'l let you know how it went.
>
> Thanks for the report. Exception 7 is unaligned access, support for
> detection of unaligned accesses in QEMU was improved recently.
>
> The exception happens inside OpenBIOS:
> 0xffd0a55c is in lstore (kernel/forth.c:649).
> 644
> 645 static void lstore(void)
> 646 {
> 647 const u32 *aaddr = (u32 *)cell2pointer(POP());
> 648 const u32 longval = POP();
> 649 write_long(aaddr, longval);
> 650 }
>
> Maybe write_long should handle unaligned addresses?
Possibly. But something is wrong.
Unaligned accesses should be done with unaligned-l@ ( addr -- quad )
instead of l at .
So either the pointer was calculated wrong or Solaris does not care
about alignment in l@
If you change it, please make the change specific to sparc.
Stefan
--
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info at coresystems.de • http://www.coresystems.de/
More information about the OpenBIOS
mailing list