From: Geert U. <ge...@li...> - 2000-08-06 17:40:55
|
I think the patch below converts the Ariadne II driver into a driver for the X-Surf. If it works, I'll be happy to integrate it with the Ariadne II driver into one ne2k-zorro driver. Notes: - I assume the RTL8019AS on the X-Surf is not in PnP mode. Else we first have to do ISA PnP isolation and assignment. - At first I thought I could easily convert the Ariadne II driver in a Hydra driver as well, but this didn't turn out to be the case. The Hydra doesn't seem to have the 8390 reset register and the 8390 data port register (there's only 0x1f space for registers, at even offsets). I guess that's why the old Hydra driver accesses the on-board RAM directly instead of through the 8390 data port. But I'm sure a driver can be written that uses the generic 8390 driver core, it's just a bit more work. - From reading the specs, the X-Surf also seems to have 2 IDE interfaces. It doesn't seem to be that difficult to support, so if someone is interested in a driver, please speak up. - Anyone who knows what else is on the X-Surf that's worth to support? Disclaimer: I don't own any NE2000 compatible Amiga Ethernet cards. But I do wish you good luck! :-) --- ariadne2.c Tue Jul 18 14:04:53 2000 +++ ariadne2_xsurf.c Sun Aug 6 16:20:57 2000 @@ -38,7 +38,7 @@ #include "8390.h" -#define ARIADNE2_BASE 0x0300 +#define XSURF_BASE 0x8600 #define ARIADNE2_BOOTROM 0xc000 @@ -86,9 +86,9 @@ unsigned long board, ioaddr; int err; - while ((z = zorro_find_device(ZORRO_PROD_VILLAGE_TRONIC_ARIADNE2, z))) { + while ((z = zorro_find_device(0x12121700, z))) { board = z->resource.start; - ioaddr = board+ARIADNE2_BASE*2; + ioaddr = board+XSURF_BASE; if (!request_mem_region(ioaddr, NE_IO_EXTENT*2, "RTL8019AS")) continue; if ((err = ariadne2_init(dev, ZTWO_VADDR(board)))) { @@ -111,7 +111,7 @@ 0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e, 0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e, }; - unsigned long ioaddr = board+ARIADNE2_BASE*2; + unsigned long ioaddr = board+XSURF_BASE; /* We should have a "dev" from Space.c or the static module table. */ if (dev == NULL) { Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li... In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds |