Linux Kernel
3.7.1
|
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include <linux/fcntl.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/in.h>
#include <linux/string.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/crc32.h>
#include <linux/errno.h>
#include <linux/socket.h>
#include <linux/route.h>
#include <linux/netdevice.h>
#include <linux/etherdevice.h>
#include <linux/skbuff.h>
#include <linux/ethtool.h>
#include <linux/bitops.h>
#include <linux/dma-mapping.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/gfp.h>
#include <asm/io.h>
#include <asm/dma.h>
#include <asm/pgtable.h>
#include <asm/byteorder.h>
#include <asm/idprom.h>
#include <asm/prom.h>
#include <asm/auxio.h>
#include <asm/irq.h>
Go to the source code of this file.
Data Structures | |
struct | lance_rx_desc |
struct | lance_tx_desc |
struct | lance_init_block |
struct | lance_private |
Macros | |
#define | DRV_NAME "sunlance" |
#define | DRV_VERSION "2.02" |
#define | DRV_RELDATE "8/24/03" |
#define | DRV_AUTHOR "Miguel de Icaza (miguel@nuclecu.unam.mx)" |
#define | LANCE_LOG_TX_BUFFERS 4 |
#define | LANCE_LOG_RX_BUFFERS 4 |
#define | LE_CSR0 0 |
#define | LE_CSR1 1 |
#define | LE_CSR2 2 |
#define | LE_CSR3 3 |
#define | LE_MO_PROM 0x8000 /* Enable promiscuous mode */ |
#define | LE_C0_ERR 0x8000 /* Error: set if BAB, SQE, MISS or ME is set */ |
#define | LE_C0_BABL 0x4000 /* BAB: Babble: tx timeout. */ |
#define | LE_C0_CERR 0x2000 /* SQE: Signal quality error */ |
#define | LE_C0_MISS 0x1000 /* MISS: Missed a packet */ |
#define | LE_C0_MERR 0x0800 /* ME: Memory error */ |
#define | LE_C0_RINT 0x0400 /* Received interrupt */ |
#define | LE_C0_TINT 0x0200 /* Transmitter Interrupt */ |
#define | LE_C0_IDON 0x0100 /* IFIN: Init finished. */ |
#define | LE_C0_INTR 0x0080 /* Interrupt or error */ |
#define | LE_C0_INEA 0x0040 /* Interrupt enable */ |
#define | LE_C0_RXON 0x0020 /* Receiver on */ |
#define | LE_C0_TXON 0x0010 /* Transmitter on */ |
#define | LE_C0_TDMD 0x0008 /* Transmitter demand */ |
#define | LE_C0_STOP 0x0004 /* Stop the card */ |
#define | LE_C0_STRT 0x0002 /* Start the card */ |
#define | LE_C0_INIT 0x0001 /* Init the card */ |
#define | LE_C3_BSWP 0x4 /* SWAP */ |
#define | LE_C3_ACON 0x2 /* ALE Control */ |
#define | LE_C3_BCON 0x1 /* Byte control */ |
#define | LE_R1_OWN 0x80 /* Who owns the entry */ |
#define | LE_R1_ERR 0x40 /* Error: if FRA, OFL, CRC or BUF is set */ |
#define | LE_R1_FRA 0x20 /* FRA: Frame error */ |
#define | LE_R1_OFL 0x10 /* OFL: Frame overflow */ |
#define | LE_R1_CRC 0x08 /* CRC error */ |
#define | LE_R1_BUF 0x04 /* BUF: Buffer error */ |
#define | LE_R1_SOP 0x02 /* Start of packet */ |
#define | LE_R1_EOP 0x01 /* End of packet */ |
#define | LE_R1_POK 0x03 /* Packet is complete: SOP + EOP */ |
#define | LE_T1_OWN 0x80 /* Lance owns the packet */ |
#define | LE_T1_ERR 0x40 /* Error summary */ |
#define | LE_T1_EMORE 0x10 /* Error: more than one retry needed */ |
#define | LE_T1_EONE 0x08 /* Error: one retry needed */ |
#define | LE_T1_EDEF 0x04 /* Error: deferred */ |
#define | LE_T1_SOP 0x02 /* Start of packet */ |
#define | LE_T1_EOP 0x01 /* End of packet */ |
#define | LE_T1_POK 0x03 /* Packet is complete: SOP + EOP */ |
#define | LE_T3_BUF 0x8000 /* Buffer error */ |
#define | LE_T3_UFL 0x4000 /* Error underflow */ |
#define | LE_T3_LCOL 0x1000 /* Error late collision */ |
#define | LE_T3_CLOS 0x0800 /* Error carrier loss */ |
#define | LE_T3_RTY 0x0400 /* Error retry */ |
#define | LE_T3_TDR 0x03ff /* Time Domain Reflectometry counter */ |
#define | TX_RING_SIZE (1 << (LANCE_LOG_TX_BUFFERS)) |
#define | TX_RING_MOD_MASK (TX_RING_SIZE - 1) |
#define | TX_RING_LEN_BITS ((LANCE_LOG_TX_BUFFERS) << 29) |
#define | TX_NEXT(__x) (((__x)+1) & TX_RING_MOD_MASK) |
#define | RX_RING_SIZE (1 << (LANCE_LOG_RX_BUFFERS)) |
#define | RX_RING_MOD_MASK (RX_RING_SIZE - 1) |
#define | RX_RING_LEN_BITS ((LANCE_LOG_RX_BUFFERS) << 29) |
#define | RX_NEXT(__x) (((__x)+1) & RX_RING_MOD_MASK) |
#define | PKT_BUF_SZ 1544 |
#define | RX_BUFF_SIZE PKT_BUF_SZ |
#define | TX_BUFF_SIZE PKT_BUF_SZ |
#define | libdesc_offset(rt, elem) ((__u32)(((unsigned long)(&(((struct lance_init_block *)0)->rt[elem]))))) |
#define | libbuff_offset(rt, elem) ((__u32)(((unsigned long)(&(((struct lance_init_block *)0)->rt[elem][0]))))) |
#define | TX_BUFFS_AVAIL |
#define | RDP 0x00UL /* register data port */ |
#define | RAP 0x02UL /* register address port */ |
#define | LANCE_REG_SIZE 0x04UL |
#define | STOP_LANCE(__lp) |
#define | LANCE_ADDR(x) ((long)(x) & ~0xff000000) |
Functions | |
MODULE_VERSION (DRV_VERSION) | |
MODULE_AUTHOR (DRV_AUTHOR) | |
MODULE_DESCRIPTION ("Sun Lance ethernet driver") | |
MODULE_LICENSE ("GPL") | |
MODULE_DEVICE_TABLE (of, sunlance_sbus_match) | |
module_platform_driver (sunlance_sbus_driver) | |
Variables | |
int | sparc_lance_debug = 2 |
#define DRV_AUTHOR "Miguel de Icaza (miguel@nuclecu.unam.mx)" |
Definition at line 110 of file sunlance.c.
#define DRV_NAME "sunlance" |
Definition at line 107 of file sunlance.c.
#define DRV_RELDATE "8/24/03" |
Definition at line 109 of file sunlance.c.
#define DRV_VERSION "2.02" |
Definition at line 108 of file sunlance.c.
Definition at line 297 of file sunlance.c.
#define LANCE_LOG_RX_BUFFERS 4 |
Definition at line 123 of file sunlance.c.
#define LANCE_LOG_TX_BUFFERS 4 |
Definition at line 122 of file sunlance.c.
#define LANCE_REG_SIZE 0x04UL |
Definition at line 279 of file sunlance.c.
#define LE_C0_BABL 0x4000 /* BAB: Babble: tx timeout. */ |
Definition at line 134 of file sunlance.c.
#define LE_C0_CERR 0x2000 /* SQE: Signal quality error */ |
Definition at line 135 of file sunlance.c.
#define LE_C0_ERR 0x8000 /* Error: set if BAB, SQE, MISS or ME is set */ |
Definition at line 133 of file sunlance.c.
#define LE_C0_IDON 0x0100 /* IFIN: Init finished. */ |
Definition at line 140 of file sunlance.c.
#define LE_C0_INEA 0x0040 /* Interrupt enable */ |
Definition at line 142 of file sunlance.c.
#define LE_C0_INIT 0x0001 /* Init the card */ |
Definition at line 148 of file sunlance.c.
#define LE_C0_INTR 0x0080 /* Interrupt or error */ |
Definition at line 141 of file sunlance.c.
#define LE_C0_MERR 0x0800 /* ME: Memory error */ |
Definition at line 137 of file sunlance.c.
#define LE_C0_MISS 0x1000 /* MISS: Missed a packet */ |
Definition at line 136 of file sunlance.c.
#define LE_C0_RINT 0x0400 /* Received interrupt */ |
Definition at line 138 of file sunlance.c.
#define LE_C0_RXON 0x0020 /* Receiver on */ |
Definition at line 143 of file sunlance.c.
#define LE_C0_STOP 0x0004 /* Stop the card */ |
Definition at line 146 of file sunlance.c.
#define LE_C0_STRT 0x0002 /* Start the card */ |
Definition at line 147 of file sunlance.c.
#define LE_C0_TDMD 0x0008 /* Transmitter demand */ |
Definition at line 145 of file sunlance.c.
#define LE_C0_TINT 0x0200 /* Transmitter Interrupt */ |
Definition at line 139 of file sunlance.c.
#define LE_C0_TXON 0x0010 /* Transmitter on */ |
Definition at line 144 of file sunlance.c.
#define LE_C3_ACON 0x2 /* ALE Control */ |
Definition at line 151 of file sunlance.c.
#define LE_C3_BCON 0x1 /* Byte control */ |
Definition at line 152 of file sunlance.c.
#define LE_C3_BSWP 0x4 /* SWAP */ |
Definition at line 150 of file sunlance.c.
#define LE_CSR0 0 |
Definition at line 126 of file sunlance.c.
#define LE_CSR1 1 |
Definition at line 127 of file sunlance.c.
#define LE_CSR2 2 |
Definition at line 128 of file sunlance.c.
#define LE_CSR3 3 |
Definition at line 129 of file sunlance.c.
#define LE_MO_PROM 0x8000 /* Enable promiscuous mode */ |
Definition at line 131 of file sunlance.c.
#define LE_R1_BUF 0x04 /* BUF: Buffer error */ |
Definition at line 160 of file sunlance.c.
#define LE_R1_CRC 0x08 /* CRC error */ |
Definition at line 159 of file sunlance.c.
#define LE_R1_EOP 0x01 /* End of packet */ |
Definition at line 162 of file sunlance.c.
#define LE_R1_ERR 0x40 /* Error: if FRA, OFL, CRC or BUF is set */ |
Definition at line 156 of file sunlance.c.
#define LE_R1_FRA 0x20 /* FRA: Frame error */ |
Definition at line 157 of file sunlance.c.
#define LE_R1_OFL 0x10 /* OFL: Frame overflow */ |
Definition at line 158 of file sunlance.c.
#define LE_R1_OWN 0x80 /* Who owns the entry */ |
Definition at line 155 of file sunlance.c.
#define LE_R1_POK 0x03 /* Packet is complete: SOP + EOP */ |
Definition at line 163 of file sunlance.c.
#define LE_R1_SOP 0x02 /* Start of packet */ |
Definition at line 161 of file sunlance.c.
#define LE_T1_EDEF 0x04 /* Error: deferred */ |
Definition at line 169 of file sunlance.c.
#define LE_T1_EMORE 0x10 /* Error: more than one retry needed */ |
Definition at line 167 of file sunlance.c.
#define LE_T1_EONE 0x08 /* Error: one retry needed */ |
Definition at line 168 of file sunlance.c.
#define LE_T1_EOP 0x01 /* End of packet */ |
Definition at line 171 of file sunlance.c.
#define LE_T1_ERR 0x40 /* Error summary */ |
Definition at line 166 of file sunlance.c.
#define LE_T1_OWN 0x80 /* Lance owns the packet */ |
Definition at line 165 of file sunlance.c.
#define LE_T1_POK 0x03 /* Packet is complete: SOP + EOP */ |
Definition at line 172 of file sunlance.c.
#define LE_T1_SOP 0x02 /* Start of packet */ |
Definition at line 170 of file sunlance.c.
#define LE_T3_BUF 0x8000 /* Buffer error */ |
Definition at line 174 of file sunlance.c.
#define LE_T3_CLOS 0x0800 /* Error carrier loss */ |
Definition at line 177 of file sunlance.c.
#define LE_T3_LCOL 0x1000 /* Error late collision */ |
Definition at line 176 of file sunlance.c.
#define LE_T3_RTY 0x0400 /* Error retry */ |
Definition at line 178 of file sunlance.c.
#define LE_T3_TDR 0x03ff /* Time Domain Reflectometry counter */ |
Definition at line 179 of file sunlance.c.
#define LE_T3_UFL 0x4000 /* Error underflow */ |
Definition at line 175 of file sunlance.c.
#define libbuff_offset | ( | rt, | |
elem | |||
) | ((__u32)(((unsigned long)(&(((struct lance_init_block *)0)->rt[elem][0]))))) |
Definition at line 238 of file sunlance.c.
#define libdesc_offset | ( | rt, | |
elem | |||
) | ((__u32)(((unsigned long)(&(((struct lance_init_block *)0)->rt[elem]))))) |
Definition at line 235 of file sunlance.c.
#define PKT_BUF_SZ 1544 |
Definition at line 191 of file sunlance.c.
#define RAP 0x02UL /* register address port */ |
Definition at line 278 of file sunlance.c.
#define RDP 0x00UL /* register data port */ |
Definition at line 277 of file sunlance.c.
#define RX_BUFF_SIZE PKT_BUF_SZ |
Definition at line 192 of file sunlance.c.
#define RX_NEXT | ( | __x | ) | (((__x)+1) & RX_RING_MOD_MASK) |
Definition at line 189 of file sunlance.c.
#define RX_RING_LEN_BITS ((LANCE_LOG_RX_BUFFERS) << 29) |
Definition at line 188 of file sunlance.c.
#define RX_RING_MOD_MASK (RX_RING_SIZE - 1) |
Definition at line 187 of file sunlance.c.
#define RX_RING_SIZE (1 << (LANCE_LOG_RX_BUFFERS)) |
Definition at line 186 of file sunlance.c.
#define STOP_LANCE | ( | __lp | ) |
Definition at line 281 of file sunlance.c.
#define TX_BUFF_SIZE PKT_BUF_SZ |
Definition at line 193 of file sunlance.c.
#define TX_BUFFS_AVAIL |
Definition at line 272 of file sunlance.c.
#define TX_NEXT | ( | __x | ) | (((__x)+1) & TX_RING_MOD_MASK) |
Definition at line 184 of file sunlance.c.
#define TX_RING_LEN_BITS ((LANCE_LOG_TX_BUFFERS) << 29) |
Definition at line 183 of file sunlance.c.
#define TX_RING_MOD_MASK (TX_RING_SIZE - 1) |
Definition at line 182 of file sunlance.c.
#define TX_RING_SIZE (1 << (LANCE_LOG_TX_BUFFERS)) |
Definition at line 181 of file sunlance.c.
MODULE_AUTHOR | ( | DRV_AUTHOR | ) |
MODULE_DEVICE_TABLE | ( | of | , |
sunlance_sbus_match | |||
) |
MODULE_LICENSE | ( | "GPL" | ) |
module_platform_driver | ( | sunlance_sbus_driver | ) |
MODULE_VERSION | ( | DRV_VERSION | ) |
int sparc_lance_debug = 2 |
Definition at line 287 of file sunlance.c.