Well, you are very close to add the dm9ks driver. But please put it away for a while.
I said, "I had tested the DM9000A on a DE2 board using the dm9000x.c in 2.6.11 kernel.".
That is the one of Microtronix release 1.4.
The DM9000 and DM9000A , both chips have the same Vendor/Product ID. And they can use the same drivers, dm9000x or dm9ks.
The things what you should do at this moment is, adding debug message to your dm9000x.c ,
in the dmfe_probe() function,
Index: dm9000x.c
===================================================================
--- dm9000x.c (revision 12)
+++ dm9000x.c (working copy)
@@ -414,6 +414,11 @@
// id_val |= inb(iobase + 4) << 24;
id_val |= ior(db, DM9000_PID_H) << 24;
+ printk("<DM9000> debug %s I/O: %x, VID: %x \n",
+ dev->name,
+ iobase,
+ id_val);
+
if (id_val == DM9000_ID) {
printk("<DM9000> %s I/O: %x, VID: %x \n",
If it does not even display this debug message, then check if you config this driver correctly.
If it displays strange ID value, change the detection to loop for ever, check your hardware, with a scope or signal-tap.
In the long run, you should really setup a Linux PC and build uClinux-dist.