|
@@ -95,9 +95,6 @@ static char version[] __initdata =
|
|
|
#if defined(CONFIG_BVME6000_NET) || defined(CONFIG_BVME6000_NET_MODULE)
|
|
|
#define ENABLE_BVME6000_NET
|
|
|
#endif
|
|
|
-#if defined(CONFIG_APRICOT) || defined(CONFIG_APRICOT_MODULE)
|
|
|
-#define ENABLE_APRICOT
|
|
|
-#endif
|
|
|
|
|
|
#ifdef ENABLE_MVME16x_NET
|
|
|
#include <asm/mvme16xhw.h>
|
|
@@ -120,8 +117,15 @@ static char version[] __initdata =
|
|
|
#define WSWAPtbd(x) ((struct i596_tbd *) (((u32)(x)<<16) | ((((u32)(x)))>>16)))
|
|
|
#define WSWAPchar(x) ((char *) (((u32)(x)<<16) | ((((u32)(x)))>>16)))
|
|
|
#define ISCP_BUSY 0x00010000
|
|
|
-#define MACH_IS_APRICOT 0
|
|
|
#else
|
|
|
+#error 82596.c: unknown architecture
|
|
|
+#endif
|
|
|
+
|
|
|
+/*
|
|
|
+ * These were the intel versions, left here for reference. There
|
|
|
+ * are currently no x86 users of this legacy i82596 chip.
|
|
|
+ */
|
|
|
+#if 0
|
|
|
#define WSWAPrfd(x) ((struct i596_rfd *)((long)x))
|
|
|
#define WSWAPrbd(x) ((struct i596_rbd *)((long)x))
|
|
|
#define WSWAPiscp(x) ((struct i596_iscp *)((long)x))
|
|
@@ -130,7 +134,6 @@ static char version[] __initdata =
|
|
|
#define WSWAPtbd(x) ((struct i596_tbd *)((long)x))
|
|
|
#define WSWAPchar(x) ((char *)((long)x))
|
|
|
#define ISCP_BUSY 0x0001
|
|
|
-#define MACH_IS_APRICOT 1
|
|
|
#endif
|
|
|
|
|
|
/*
|
|
@@ -383,11 +386,6 @@ static inline void CA(struct net_device *dev)
|
|
|
i = *(volatile u32 *) (dev->base_addr);
|
|
|
}
|
|
|
#endif
|
|
|
-#ifdef ENABLE_APRICOT
|
|
|
- if (MACH_IS_APRICOT) {
|
|
|
- outw(0, (short) (dev->base_addr) + 4);
|
|
|
- }
|
|
|
-#endif
|
|
|
}
|
|
|
|
|
|
|
|
@@ -617,9 +615,6 @@ static void rebuild_rx_bufs(struct net_device *dev)
|
|
|
static int init_i596_mem(struct net_device *dev)
|
|
|
{
|
|
|
struct i596_private *lp = dev->ml_priv;
|
|
|
-#if !defined(ENABLE_MVME16x_NET) && !defined(ENABLE_BVME6000_NET) || defined(ENABLE_APRICOT)
|
|
|
- short ioaddr = dev->base_addr;
|
|
|
-#endif
|
|
|
unsigned long flags;
|
|
|
|
|
|
MPU_PORT(dev, PORT_RESET, NULL);
|
|
@@ -653,18 +648,6 @@ static int init_i596_mem(struct net_device *dev)
|
|
|
|
|
|
MPU_PORT(dev, PORT_ALTSCP, (void *)virt_to_bus((void *)&lp->scp));
|
|
|
|
|
|
-#elif defined(ENABLE_APRICOT)
|
|
|
-
|
|
|
- {
|
|
|
- u32 scp = virt_to_bus(&lp->scp);
|
|
|
-
|
|
|
- /* change the scp address */
|
|
|
- outw(0, ioaddr);
|
|
|
- outw(0, ioaddr);
|
|
|
- outb(4, ioaddr + 0xf);
|
|
|
- outw(scp | 2, ioaddr);
|
|
|
- outw(scp >> 16, ioaddr);
|
|
|
- }
|
|
|
#endif
|
|
|
|
|
|
lp->last_cmd = jiffies;
|
|
@@ -677,10 +660,6 @@ static int init_i596_mem(struct net_device *dev)
|
|
|
if (MACH_IS_BVME6000)
|
|
|
lp->scp.sysbus = 0x0000004c;
|
|
|
#endif
|
|
|
-#ifdef ENABLE_APRICOT
|
|
|
- if (MACH_IS_APRICOT)
|
|
|
- lp->scp.sysbus = 0x00440000;
|
|
|
-#endif
|
|
|
|
|
|
lp->scp.iscp = WSWAPiscp(virt_to_bus((void *)&lp->iscp));
|
|
|
lp->iscp.scb = WSWAPscb(virt_to_bus((void *)&lp->scb));
|
|
@@ -698,10 +677,6 @@ static int init_i596_mem(struct net_device *dev)
|
|
|
|
|
|
DEB(DEB_INIT,printk(KERN_DEBUG "%s: starting i82596.\n", dev->name));
|
|
|
|
|
|
-#if defined(ENABLE_APRICOT)
|
|
|
- (void) inb(ioaddr + 0x10);
|
|
|
- outb(4, ioaddr + 0xf);
|
|
|
-#endif
|
|
|
CA(dev);
|
|
|
|
|
|
if (wait_istat(dev,lp,1000,"initialization timed out"))
|
|
@@ -1202,43 +1177,6 @@ struct net_device * __init i82596_probe(int unit)
|
|
|
dev->irq = (unsigned) BVME_IRQ_I596;
|
|
|
goto found;
|
|
|
}
|
|
|
-#endif
|
|
|
-#ifdef ENABLE_APRICOT
|
|
|
- {
|
|
|
- int checksum = 0;
|
|
|
- int ioaddr = 0x300;
|
|
|
-
|
|
|
- /* this is easy the ethernet interface can only be at 0x300 */
|
|
|
- /* first check nothing is already registered here */
|
|
|
-
|
|
|
- if (!request_region(ioaddr, I596_TOTAL_SIZE, DRV_NAME)) {
|
|
|
- printk(KERN_ERR "82596: IO address 0x%04x in use\n", ioaddr);
|
|
|
- err = -EBUSY;
|
|
|
- goto out;
|
|
|
- }
|
|
|
-
|
|
|
- dev->base_addr = ioaddr;
|
|
|
-
|
|
|
- for (i = 0; i < 8; i++) {
|
|
|
- eth_addr[i] = inb(ioaddr + 8 + i);
|
|
|
- checksum += eth_addr[i];
|
|
|
- }
|
|
|
-
|
|
|
- /* checksum is a multiple of 0x100, got this wrong first time
|
|
|
- some machines have 0x100, some 0x200. The DOS driver doesn't
|
|
|
- even bother with the checksum.
|
|
|
- Some other boards trip the checksum.. but then appear as
|
|
|
- ether address 0. Trap these - AC */
|
|
|
-
|
|
|
- if ((checksum % 0x100) ||
|
|
|
- (memcmp(eth_addr, "\x00\x00\x49", 3) != 0)) {
|
|
|
- err = -ENODEV;
|
|
|
- goto out1;
|
|
|
- }
|
|
|
-
|
|
|
- dev->irq = 10;
|
|
|
- goto found;
|
|
|
- }
|
|
|
#endif
|
|
|
err = -ENODEV;
|
|
|
goto out;
|
|
@@ -1296,9 +1234,6 @@ out2:
|
|
|
#endif
|
|
|
free_page ((u32)(dev->mem_start));
|
|
|
out1:
|
|
|
-#ifdef ENABLE_APRICOT
|
|
|
- release_region(dev->base_addr, I596_TOTAL_SIZE);
|
|
|
-#endif
|
|
|
out:
|
|
|
free_netdev(dev);
|
|
|
return ERR_PTR(err);
|
|
@@ -1454,10 +1389,6 @@ static irqreturn_t i596_interrupt(int irq, void *dev_id)
|
|
|
*ethirq = 1;
|
|
|
*ethirq = 3;
|
|
|
}
|
|
|
-#endif
|
|
|
-#ifdef ENABLE_APRICOT
|
|
|
- (void) inb(ioaddr + 0x10);
|
|
|
- outb(4, ioaddr + 0xf);
|
|
|
#endif
|
|
|
CA(dev);
|
|
|
|
|
@@ -1589,11 +1520,6 @@ static void set_multicast_list(struct net_device *dev)
|
|
|
#ifdef MODULE
|
|
|
static struct net_device *dev_82596;
|
|
|
|
|
|
-#ifdef ENABLE_APRICOT
|
|
|
-module_param(irq, int, 0);
|
|
|
-MODULE_PARM_DESC(irq, "Apricot IRQ number");
|
|
|
-#endif
|
|
|
-
|
|
|
static int debug = -1;
|
|
|
module_param(debug, int, 0);
|
|
|
MODULE_PARM_DESC(debug, "i82596 debug mask");
|
|
@@ -1620,10 +1546,6 @@ void __exit cleanup_module(void)
|
|
|
IOMAP_FULL_CACHING);
|
|
|
#endif
|
|
|
free_page ((u32)(dev_82596->mem_start));
|
|
|
-#ifdef ENABLE_APRICOT
|
|
|
- /* If we don't do this, we can't re-insmod it later. */
|
|
|
- release_region(dev_82596->base_addr, I596_TOTAL_SIZE);
|
|
|
-#endif
|
|
|
free_netdev(dev_82596);
|
|
|
}
|
|
|
|