[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: X-surf driver



At 08:25 +0100 3/1/01, Øyvin Halfdan Thuv wrote:
Erik van Roode wrote:

 At 03:33 PM 2/28/01 +0200, yvin Halfdan Thuv wrote:
 >Does any one have a driver for the X-surf ehternetboard for amiga?

 There is a patch file available at:
 http://www.jschoenfeld.com/support/support_e.htm
 but is seems to be a source patch for 2.4 kernel.


Yeah, I saw that. It's a patch for the Ariadne driver...


 >And will
 >it need a recompile of the kernel to install?

 Yes. Unless someone is kind enough to do it for you. I haven't actually
 tried to do it for a 2.2.17 kernel, but I'll try tonight.

hmmm. could take *ages* on a 030/50 FPU then... but I've never
actually tried to
compile a kernel, so I suppose I should give it a try. Though it
would be nice if
anyone already had a prepayched ariadnedriver, so I just need a
kernel-recompile,
not to begin tweaking to much with the code...

That "I'll try tonight" was delayed a bit, but today I finally managed
to get my wife to go shopping alone ;) The changes that need to be
made to ariadne2.c are so trivial, I'm almost ashamed it took me
so much time to figure it out.

What I did:
   - installed source packages linux-kernel-source-2.2.17 and
     kernel-patch-2.2.17-m68k
   - patched the kernel source with patches
   - applied 2 patches: (appended at bottom of this message)
     - patch drivers/net/ariadne2.c to get xsurf card working
     - patch arch/m68k/amiga/config.c to handle A2000 hardware
       clock that only stores 2 digit years
   - currently building a kernel-image

  I only did minimal testing on the xsurf. I installed wu-ftpd, and
transfered a few files from my a2000 to a powermac g4. For a 17MB
file I got about 300K/sec (but a2000 was compiling kernel, so
transfer rate might be better under less loaded conditions).

  I am not a debian developer. From a security standpoint
downloading binaries made by me is unwise. I suggest you
compile your own kernel. If you need some help on how to compile
a kernel with my patches, send me a note. Compiling is going to
take hours thought ... I am building a .deb that you could get
a copy of if you trust me (I have to admit I would not trust
me if I were in your position).

  Anyway, the patches are for 2.2.17pre6. One of these days I'll
try a newer version

Erik

--- ariadne2.c.orig	Sun Mar 18 21:08:17 2001
+++ ariadne2.c	Sun Mar 18 21:08:08 2001
@@ -39,6 +39,7 @@


 #define ARIADNE2_BASE		0x0300
+#define XSURF_BASE		0x8600
 #define ARIADNE2_BOOTROM	0xc000


@@ -89,7 +90,7 @@
     u_long board;
     int err;

-    if ((key = zorro_find(ZORRO_PROD_VILLAGE_TRONIC_ARIADNE2, 0, 0))) {
+    if ((key = zorro_find(0x12121700, 0, 0))) {
 	cd = zorro_get_board(key);
 	if ((board = (u_long)cd->cd_BoardAddr)) {
 	    if ((err = ariadne2_init(dev, key, ZTWO_VADDR(board))))
@@ -112,7 +113,7 @@
 	0x00, 0x02, 0x04, 0x06, 0x08, 0x0a, 0x0c, 0x0e,
 	0x10, 0x12, 0x14, 0x16, 0x18, 0x1a, 0x1c, 0x1e,
     };
-    int ioaddr = board+ARIADNE2_BASE*2;
+    int ioaddr = board+XSURF_BASE;

     if (load_8390_module("ariadne2.c"))
 	return -ENOSYS;

--- config.c.orig	Sun Mar 18 21:07:14 2001
+++ config.c	Sun Mar 18 21:07:10 2001
@@ -591,6 +591,10 @@
 			t->mon  = tod->month1      * 10 + tod->month2 - 1;
 			t->year = tod->year1       * 10 + tod->year2;

+			if (t->year < 78) {
+			    t->year += 100;
+			}
+
 			if (!(tod->cntrl3 & TOD2000_CNTRL3_24HMODE)){
 				if (!(tod->hour1 & TOD2000_HOUR1_PM)
&& t->hour == 12)
 					t->hour = 0;
@@ -598,6 +602,8 @@
 					t->hour += 12;
 			}
 		} else {
+			t->year %= 100;    /* breaks in 2078 - EvR */
+
 			tod->second1 = t->sec / 10;
 			tod->second2 = t->sec % 10;
 			tod->minute1 = t->min / 10;



Reply to: