]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/net/ne2000.h
sunxi_nand_spl: Properly config page-size in the nand ctl register
[karo-tx-uboot.git] / drivers / net / ne2000.h
index 06e9a2844e46b40244156e7004069a59eb9f9ec7..2cde6be4377dd6c9454b64086c4ec5b3a8096211 100644 (file)
@@ -1,16 +1,15 @@
 /*
-Ported to U-Boot  by Christian Pellegrin <chri@ascensit.com>
+Ported to U-Boot by Christian Pellegrin <chri@ascensit.com>
 
 Based on sources from the Linux kernel (pcnet_cs.c, 8390.h) and
 eCOS(if_dp83902a.c, if_dp83902a.h). Both of these 2 wonderful world
 are GPL, so this is, of course, GPL.
 
-
 ==========================================================================
 
-      dev/dp83902a.h
+       dev/dp83902a.h
 
-      National Semiconductor DP83902a ethernet chip
+       National Semiconductor DP83902a ethernet chip
 
 ==========================================================================
 ####ECOSGPLCOPYRIGHTBEGIN####
@@ -58,16 +57,15 @@ are GPL, so this is, of course, GPL.
 ==========================================================================
 #####DESCRIPTIONBEGIN####
 
- Author(s):    gthomas
- Contributors: gthomas, jskov
- Date:         2001-06-13
+ Author(s):    gthomas
+ Contributors: gthomas, jskov
+ Date:         2001-06-13
  Purpose:
  Description:
 
 ####DESCRIPTIONEND####
 
 ==========================================================================
-
 */
 
 /*
@@ -81,103 +79,16 @@ are GPL, so this is, of course, GPL.
 /* Enable NE2000 basic init function */
 #define NE2000_BASIC_INIT
 
-#define DP_DATA     0x10
-#define START_PG    0x50    /* First page of TX buffer */
-#define STOP_PG     0x80    /* Last page +1 of RX ring */
-
-#define RX_START    0x50
-#define RX_END      0x80
-
-#define DP_IN(_b_, _o_, _d_)  (_d_) = *( (vu_char *) ((_b_)+(_o_)))
-#define DP_OUT(_b_, _o_, _d_) *( (vu_char *) ((_b_)+(_o_))) = (_d_)
-#define DP_IN_DATA(_b_, _d_)  (_d_) = *( (vu_char *) ((_b_)))
-#define DP_OUT_DATA(_b_, _d_) *( (vu_char *) ((_b_))) = (_d_)
-
-static void pcnet_reset_8390(void)
-{
-       int i, r;
-
-       PRINTK("nic base is %lx\n", nic_base);
-
-       n2k_outb(E8390_NODMA+E8390_PAGE0+E8390_STOP, E8390_CMD);
-       PRINTK("cmd (at %lx) is %x\n", nic_base+ E8390_CMD, n2k_inb(E8390_CMD));
-       n2k_outb(E8390_NODMA+E8390_PAGE1+E8390_STOP, E8390_CMD);
-       PRINTK("cmd (at %lx) is %x\n", nic_base+ E8390_CMD, n2k_inb(E8390_CMD));
-       n2k_outb(E8390_NODMA+E8390_PAGE0+E8390_STOP, E8390_CMD);
-       PRINTK("cmd (at %lx) is %x\n", nic_base+ E8390_CMD, n2k_inb(E8390_CMD));
-       n2k_outb(E8390_NODMA+E8390_PAGE0+E8390_STOP, E8390_CMD);
-
-       n2k_outb(n2k_inb(PCNET_RESET), PCNET_RESET);
-
-       for (i = 0; i < 100; i++) {
-               if ((r = (n2k_inb(EN0_ISR) & ENISR_RESET)) != 0)
-                       break;
-               PRINTK("got %x in reset\n", r);
-               udelay(100);
-       }
-       n2k_outb(ENISR_RESET, EN0_ISR); /* Ack intr. */
-
-       if (i == 100)
-               printf("pcnet_reset_8390() did not complete.\n");
-} /* pcnet_reset_8390 */
-
-int get_prom(u8* mac_addr)
-{
-       u8 prom[32];
-       int i, j;
-       struct {
-               u_char value, offset;
-       } program_seq[] = {
-               {E8390_NODMA+E8390_PAGE0+E8390_STOP, E8390_CMD}, /* Select page 0*/
-               {0x48,  EN0_DCFG},  /* Set byte-wide (0x48) access. */
-               {0x00,  EN0_RCNTLO},    /* Clear the count regs. */
-               {0x00,  EN0_RCNTHI},
-               {0x00,  EN0_IMR},   /* Mask completion irq. */
-               {0xFF,  EN0_ISR},
-               {E8390_RXOFF, EN0_RXCR},    /* 0x20  Set to monitor */
-               {E8390_TXOFF, EN0_TXCR},    /* 0x02  and loopback mode. */
-               {32,    EN0_RCNTLO},
-               {0x00,  EN0_RCNTHI},
-               {0x00,  EN0_RSARLO},    /* DMA starting at 0x0000. */
-               {0x00,  EN0_RSARHI},
-               {E8390_RREAD+E8390_START, E8390_CMD},
-       };
-
-    PRINTK("trying to get MAC via prom reading\n");
-
-    pcnet_reset_8390();
-
-    mdelay(10);
-
-    for (i = 0; i < sizeof(program_seq)/sizeof(program_seq[0]); i++)
-        n2k_outb(program_seq[i].value, program_seq[i].offset);
-
-    PRINTK("PROM:");
-    for (i = 0; i < 32; i++) {
-        prom[i] = n2k_inb(PCNET_DATAPORT);
-        PRINTK(" %02x", prom[i]);
-    }
-    PRINTK("\n");
-    for (i = 0; i < NR_INFO; i++) {
-        if ((prom[0] == hw_info[i].a0) &&
-            (prom[2] == hw_info[i].a1) &&
-            (prom[4] == hw_info[i].a2)) {
-            PRINTK("matched board %d\n", i);
-            break;
-        }
-    }
-    if ((i < NR_INFO) || ((prom[28] == 0x57) && (prom[30] == 0x57))) {
-        PRINTK("on exit i is %d/%ld\n", i, NR_INFO);
-        PRINTK("MAC address is ");
-        for (j = 0; j < 6; j++){
-            mac_addr[j] = prom[j<<1];
-            PRINTK("%02x:",mac_addr[i]);
-        }
-        PRINTK("\n");
-        return (i < NR_INFO) ? i : 0;
-    }
-    return NULL;
-}
+#define DP_DATA                0x10
+#define START_PG       0x50    /* First page of TX buffer */
+#define START_PG2      0x48
+#define STOP_PG                0x80    /* Last page +1 of RX ring */
 
+#define RX_START       0x50
+#define RX_END         0x80
 
+#define DP_IN(_b_, _o_, _d_)   (_d_) = *( (vu_char *) ((_b_)+(_o_)))
+#define DP_OUT(_b_, _o_, _d_)  *( (vu_char *) ((_b_)+(_o_))) = (_d_)
+#define DP_IN_DATA(_b_, _d_)   (_d_) = *( (vu_char *) ((_b_)))
+#define DP_OUT_DATA(_b_, _d_)  *( (vu_char *) ((_b_))) = (_d_)
 #endif /* __DRIVERS_NE2000_H__ */