[OpenBIOS] [PATCH] Fix up LANCE ethernet DMA mapping under Solaris 8 on SPARC32.

Andreas Färber andreas.faerber at web.de
Mon Apr 25 19:19:43 CEST 2011


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 at 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




More information about the OpenBIOS mailing list