j
: Next unread message k
: Previous unread message j a
: Jump to all threads
j l
: Jump to MailingList overview
On 7/19/07, spectral@op.pl spectral@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?
* Blue Swirl blauwirbel@gmail.com [070719 20:46]:
On 7/19/07, spectral@op.pl spectral@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@.
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
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@.
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.
I noticed that the memory allocators either don't enforce alignment or align just to 4. That could be one reason for the problem.
* Blue Swirl blauwirbel@gmail.com [070720 15:11]:
Unaligned accesses should be done with unaligned-l@ ( addr -- quad ) instead of l@.
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.
I noticed that the memory allocators either don't enforce alignment or align just to 4. That could be one reason for the problem.
In OpenBIOS? That should definitely be fixed!
Alignment to 4 should be fine for l@ though..
Stefan