Am 25.04.2011 um 18:48 schrieb Mark Cave-Ayland:
It seems that Solaris doesn't set up a DMA mapping for the LANCE DMA buffers and hence must inherit this from OpenBIOS. To make things more complicated, Solaris appears to assume that the buffers are fixed at 0xff000000 rather than detecting this information from the OpenBIOS IOMMU pagetable before switching. Mimicking this behaviour with a fixed location allows Solaris 8 to correctly use the network card under QEMU.
Signed-off-by: Mark Cave-Ayland mark.cave-ayland@siriusit.co.uk
openbios-devel/drivers/sbus.c | 55 ++++++++++++++++++++++++++++++++ ++++++-- 1 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/openbios-devel/drivers/sbus.c b/openbios-devel/drivers/ sbus.c index f4a6d66..1107c1d 100644 --- a/openbios-devel/drivers/sbus.c +++ b/openbios-devel/drivers/sbus.c @@ -29,6 +29,20 @@ #define SS600MP_ESPDMA 0x00081000ULL #define SS600MP_ESP 0x00080000ULL #define SS600MP_LEBUFFER (SS600MP_ESPDMA + 0x10) // XXX should be 0x40000 +#define LEDMA_REGS 0x4 +#define LE_REGS 0x20
+#ifdef CONFIG_DEBUG_SBUS
Missing a corresponding sparc32_config.xml patch?
+#define DPRINTF(fmt, args...) \
- do { printk(fmt , ##args); } while (0)
+#else +#define DPRINTF(fmt, args...) +#endif
Andreas