On Mon, Nov 1, 2010 at 3:58 PM, Artyom Tarasenko atar4qemu@gmail.com wrote:
On Mon, Nov 1, 2010 at 11:59 AM, Mark Cave-Ayland mark.cave-ayland@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:
http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/arch/sparc/kernel...
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? OpenBIOS:
0 > cd /obio/auxio ok 0 > .properties name "auxio" reg -- c : 00 00 00 00 00 90 00 00 00 00 00 01 ok
OBP: 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 --- a/drivers/obio.c +++ b/drivers/obio.c @@ -228,7 +228,7 @@ ob_auxio_init(uint64_t base, uint64_t offset) { ob_new_obio_device("auxio", NULL);
- ob_reg(base, offset, AUXIO_REGS, 0); + ob_reg(base, offset, AUXIO_REGS, 1);
fword("finish-device"); }