Subject: LAN adapter driver
To: None <port-dreamcast@netbsd.org>
From: Christian Groessler <cpg@aladdin.de>
List: port-dreamcast
Date: 06/08/2002 16:45:13
Hi,

here's my try at a driver for the lan adapter.

As information source I used the lan adapter patch to dcload-ip
(http://adk.napalm-x.com/dc/dcload-ip/index.html), the improved
version of this in the KOS library (cadcdev.sourceforge.net), the
FreeBSD mb86960 driver and finally the mb86960 data sheet.
The driver is derived from the sys/dev/isa/if_fmv.c driver.

You can find a diff against recent -current on
ftp.groessler.org/pub/chris/dreamcast/netbsd/lan-adapter/lana-diffs.gz
You'll also need the patch in kern/17193.

I have a question:

According to the KOS library, the lan adapter is sitting on the G2
bus. Since the lan adapter has a special register decoding, I gave it
its own bus sitting on the shb bus.
The register decoding is as follows:

regnum  -  address
   0         0
   1         4
   2         8

You see it. I made bus_space_xxx functions which multiply the regnum by
4, so I could use the mi mb86960.c driver without change. (There was a
change needed, see kern/17193, but it is another issue.)

Is this OK to do, or should I solve this differently?


There are still some reliability problems, sometimes a tcp connection
gets stuck. The adapter is still working then as I can create new
connections which do work. Does anyone have an idea what this could
be?

Please everyone with a lan adapter try it out and give feedback...

regards,
chris