[OpenBIOS] SOLVED: the mystery of Solaris on SPARC32 and the missing Forth arguments
blauwirbel at gmail.com
Mon Nov 1 19:18:58 CET 2010
On Mon, Nov 1, 2010 at 3:58 PM, Artyom Tarasenko <atar4qemu at gmail.com> wrote:
> On Mon, Nov 1, 2010 at 11:59 AM, Mark Cave-Ayland
> <mark.cave-ayland at siriusit.co.uk> wrote:
>> Artyom Tarasenko wrote:
>>> Unlike Linux/Debian, Solaris rarely does unaligned accesses (in fact I
>>> think I haven't seen one which I didn't trigger myself).
>> Yeah, I see a lot of those on Debian too :(
> This is not bad. They are supposed to be there. Probably they are used
> for flushing something.
> The annoying thing is that they don't allow to have DEBUG_UNALIGNED
> always turned on.
>> I think one of the next things I'd like to do is try and figure out if it's
>> possible to switch SPARC32 to ofmem, since we already have code that
>> correctly generates all these properties so it would be a shame not to use
>> it (I see accesses to some of the /memory nodes just before it crashes on
>> OpenBIOS, so I'd like to eliminate that as a source of confusion first).
> Would be cool. Then the sparc32 port can be used to improve the sparc64 one.
>>> Btw, where does the message "device auxio size -1" come from?
>> It seems as if there should be an auxio device somewhere:
>> Perhaps this is the device that Solaris is trying to access and failing?
> Yes, that's what I mean. But what can be wrong with the OpenBIOS implementation?
> 0 > cd /obio/auxio ok
> 0 > .properties
> name "auxio"
> reg -- c : 00 00 00 00 00 90 00 00 00 00 00 01
> ok cd /obio/auxio
> ok .attributes
> address ffee6000
This means that the device is not mapped. Maybe this can help:
diff --git a/drivers/obio.c b/drivers/obio.c
index 38c5f8d..d22abe3 100644
@@ -228,7 +228,7 @@ ob_auxio_init(uint64_t base, uint64_t offset)
- ob_reg(base, offset, AUXIO_REGS, 0);
+ ob_reg(base, offset, AUXIO_REGS, 1);
More information about the OpenBIOS