Linux Kernel
3.7.1
|
#include <linux/init.h>
#include <linux/dma-mapping.h>
#include <linux/in.h>
#include <linux/ip.h>
#include <linux/tcp.h>
#include <linux/udp.h>
#include <linux/etherdevice.h>
#include <linux/bitops.h>
#include <linux/delay.h>
#include <linux/ethtool.h>
#include <linux/platform_device.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/workqueue.h>
#include <linux/clk.h>
#include <linux/phy.h>
#include <linux/io.h>
#include <linux/interrupt.h>
#include <linux/types.h>
#include <asm/pgtable.h>
#include <asm/cacheflush.h>
#include <linux/pxa168_eth.h>
Go to the source code of this file.
Data Structures | |
struct | rx_desc |
struct | tx_desc |
struct | pxa168_eth_private |
struct | addr_table_entry |
Macros | |
#define | DRIVER_NAME "pxa168-eth" |
#define | DRIVER_VERSION "0.3" |
#define | PHY_ADDRESS 0x0000 |
#define | SMI 0x0010 |
#define | PORT_CONFIG 0x0400 |
#define | PORT_CONFIG_EXT 0x0408 |
#define | PORT_COMMAND 0x0410 |
#define | PORT_STATUS 0x0418 |
#define | HTPR 0x0428 |
#define | SDMA_CONFIG 0x0440 |
#define | SDMA_CMD 0x0448 |
#define | INT_CAUSE 0x0450 |
#define | INT_W_CLEAR 0x0454 |
#define | INT_MASK 0x0458 |
#define | ETH_F_RX_DESC_0 0x0480 |
#define | ETH_C_RX_DESC_0 0x04A0 |
#define | ETH_C_TX_DESC_1 0x04E4 |
#define | SMI_BUSY (1 << 28) /* 0 - Write, 1 - Read */ |
#define | SMI_R_VALID (1 << 27) /* 0 - Write, 1 - Read */ |
#define | SMI_OP_W (0 << 26) /* Write operation */ |
#define | SMI_OP_R (1 << 26) /* Read operation */ |
#define | PHY_WAIT_ITERATIONS 10 |
#define | PXA168_ETH_PHY_ADDR_DEFAULT 0 |
#define | BUF_OWNED_BY_DMA (1 << 31) |
#define | RX_EN_INT (1 << 23) |
#define | RX_FIRST_DESC (1 << 17) |
#define | RX_LAST_DESC (1 << 16) |
#define | RX_ERROR (1 << 15) |
#define | TX_EN_INT (1 << 23) |
#define | TX_GEN_CRC (1 << 22) |
#define | TX_ZERO_PADDING (1 << 18) |
#define | TX_FIRST_DESC (1 << 17) |
#define | TX_LAST_DESC (1 << 16) |
#define | TX_ERROR (1 << 15) |
#define | SDMA_CMD_AT (1 << 31) |
#define | SDMA_CMD_TXDL (1 << 24) |
#define | SDMA_CMD_TXDH (1 << 23) |
#define | SDMA_CMD_AR (1 << 15) |
#define | SDMA_CMD_ERD (1 << 7) |
#define | PCR_HS (1 << 12) |
#define | PCR_EN (1 << 7) |
#define | PCR_PM (1 << 0) |
#define | PCXR_2BSM (1 << 28) |
#define | PCXR_DSCP_EN (1 << 21) |
#define | PCXR_MFL_1518 (0 << 14) |
#define | PCXR_MFL_1536 (1 << 14) |
#define | PCXR_MFL_2048 (2 << 14) |
#define | PCXR_MFL_64K (3 << 14) |
#define | PCXR_FLP (1 << 11) |
#define | PCXR_PRIO_TX_OFF 3 |
#define | PCXR_TX_HIGH_PRI (7 << PCXR_PRIO_TX_OFF) |
#define | SDCR_BSZ_OFF 12 |
#define | SDCR_BSZ8 (3 << SDCR_BSZ_OFF) |
#define | SDCR_BSZ4 (2 << SDCR_BSZ_OFF) |
#define | SDCR_BSZ2 (1 << SDCR_BSZ_OFF) |
#define | SDCR_BSZ1 (0 << SDCR_BSZ_OFF) |
#define | SDCR_BLMR (1 << 6) |
#define | SDCR_BLMT (1 << 7) |
#define | SDCR_RIFB (1 << 9) |
#define | SDCR_RC_OFF 2 |
#define | SDCR_RC_MAX_RETRANS (0xf << SDCR_RC_OFF) |
#define | ICR_RXBUF (1 << 0) |
#define | ICR_TXBUF_H (1 << 2) |
#define | ICR_TXBUF_L (1 << 3) |
#define | ICR_TXEND_H (1 << 6) |
#define | ICR_TXEND_L (1 << 7) |
#define | ICR_RXERR (1 << 8) |
#define | ICR_TXERR_H (1 << 10) |
#define | ICR_TXERR_L (1 << 11) |
#define | ICR_TX_UDR (1 << 13) |
#define | ICR_MII_CH (1 << 28) |
#define | ALL_INTS |
#define | ETH_HW_IP_ALIGN 2 /* hw aligns IP header */ |
#define | NUM_RX_DESCS 64 |
#define | NUM_TX_DESCS 64 |
#define | HASH_ADD 0 |
#define | HASH_DELETE 1 |
#define | HASH_ADDR_TABLE_SIZE 0x4000 /* 16K (1/2K address - PCR_HS == 1) */ |
#define | HOP_NUMBER 12 |
#define | PORT_SPEED_100 (1 << 0) |
#define | FULL_DUPLEX (1 << 1) |
#define | FLOW_CONTROL_ENABLED (1 << 2) |
#define | LINK_UP (1 << 3) |
#define | WORK_LINK (1 << 0) |
#define | WORK_TX_DONE (1 << 1) |
#define | SKB_DMA_REALIGN ((PAGE_SIZE - NET_SKB_PAD) % SMP_CACHE_BYTES) |
#define | pxa168_eth_resume NULL |
#define | pxa168_eth_suspend NULL |
Enumerations | |
enum | hash_table_entry { HASH_ENTRY_VALID = 1, SKIP = 2, HASH_ENTRY_RECEIVE_DISCARD = 4, HASH_ENTRY_RECEIVE_DISCARD_BIT = 2 } |
Functions | |
module_platform_driver (pxa168_eth_driver) | |
MODULE_LICENSE ("GPL") | |
MODULE_DESCRIPTION ("Ethernet driver for Marvell PXA168") | |
MODULE_ALIAS ("platform:pxa168_eth") | |
#define ALL_INTS |
Definition at line 148 of file pxa168_eth.c.
#define BUF_OWNED_BY_DMA (1 << 31) |
Definition at line 82 of file pxa168_eth.c.
#define DRIVER_NAME "pxa168-eth" |
Definition at line 49 of file pxa168_eth.c.
#define DRIVER_VERSION "0.3" |
Definition at line 50 of file pxa168_eth.c.
#define ETH_C_RX_DESC_0 0x04A0 |
Definition at line 69 of file pxa168_eth.c.
#define ETH_C_TX_DESC_1 0x04E4 |
Definition at line 70 of file pxa168_eth.c.
#define ETH_F_RX_DESC_0 0x0480 |
Definition at line 68 of file pxa168_eth.c.
Definition at line 153 of file pxa168_eth.c.
#define FLOW_CONTROL_ENABLED (1 << 2) |
Definition at line 166 of file pxa168_eth.c.
#define FULL_DUPLEX (1 << 1) |
Definition at line 165 of file pxa168_eth.c.
#define HASH_ADD 0 |
Definition at line 158 of file pxa168_eth.c.
#define HASH_ADDR_TABLE_SIZE 0x4000 /* 16K (1/2K address - PCR_HS == 1) */ |
Definition at line 160 of file pxa168_eth.c.
#define HASH_DELETE 1 |
Definition at line 159 of file pxa168_eth.c.
#define HOP_NUMBER 12 |
Definition at line 161 of file pxa168_eth.c.
#define HTPR 0x0428 |
Definition at line 62 of file pxa168_eth.c.
#define ICR_MII_CH (1 << 28) |
Definition at line 146 of file pxa168_eth.c.
#define ICR_RXBUF (1 << 0) |
Definition at line 137 of file pxa168_eth.c.
#define ICR_RXERR (1 << 8) |
Definition at line 142 of file pxa168_eth.c.
#define ICR_TX_UDR (1 << 13) |
Definition at line 145 of file pxa168_eth.c.
#define ICR_TXBUF_H (1 << 2) |
Definition at line 138 of file pxa168_eth.c.
#define ICR_TXBUF_L (1 << 3) |
Definition at line 139 of file pxa168_eth.c.
#define ICR_TXEND_H (1 << 6) |
Definition at line 140 of file pxa168_eth.c.
#define ICR_TXEND_L (1 << 7) |
Definition at line 141 of file pxa168_eth.c.
#define ICR_TXERR_H (1 << 10) |
Definition at line 143 of file pxa168_eth.c.
#define ICR_TXERR_L (1 << 11) |
Definition at line 144 of file pxa168_eth.c.
#define INT_CAUSE 0x0450 |
Definition at line 65 of file pxa168_eth.c.
#define INT_MASK 0x0458 |
Definition at line 67 of file pxa168_eth.c.
#define INT_W_CLEAR 0x0454 |
Definition at line 66 of file pxa168_eth.c.
#define LINK_UP (1 << 3) |
Definition at line 167 of file pxa168_eth.c.
#define NUM_RX_DESCS 64 |
Definition at line 155 of file pxa168_eth.c.
#define NUM_TX_DESCS 64 |
Definition at line 156 of file pxa168_eth.c.
#define PCR_EN (1 << 7) |
Definition at line 107 of file pxa168_eth.c.
#define PCR_HS (1 << 12) |
Definition at line 106 of file pxa168_eth.c.
#define PCR_PM (1 << 0) |
Definition at line 108 of file pxa168_eth.c.
#define PCXR_2BSM (1 << 28) |
Definition at line 111 of file pxa168_eth.c.
#define PCXR_DSCP_EN (1 << 21) |
Definition at line 112 of file pxa168_eth.c.
#define PCXR_FLP (1 << 11) |
Definition at line 117 of file pxa168_eth.c.
#define PCXR_MFL_1518 (0 << 14) |
Definition at line 113 of file pxa168_eth.c.
#define PCXR_MFL_1536 (1 << 14) |
Definition at line 114 of file pxa168_eth.c.
#define PCXR_MFL_2048 (2 << 14) |
Definition at line 115 of file pxa168_eth.c.
#define PCXR_MFL_64K (3 << 14) |
Definition at line 116 of file pxa168_eth.c.
#define PCXR_PRIO_TX_OFF 3 |
Definition at line 118 of file pxa168_eth.c.
#define PCXR_TX_HIGH_PRI (7 << PCXR_PRIO_TX_OFF) |
Definition at line 119 of file pxa168_eth.c.
#define PHY_ADDRESS 0x0000 |
Definition at line 56 of file pxa168_eth.c.
#define PHY_WAIT_ITERATIONS 10 |
Definition at line 78 of file pxa168_eth.c.
#define PORT_COMMAND 0x0410 |
Definition at line 60 of file pxa168_eth.c.
#define PORT_CONFIG 0x0400 |
Definition at line 58 of file pxa168_eth.c.
#define PORT_CONFIG_EXT 0x0408 |
Definition at line 59 of file pxa168_eth.c.
#define PORT_SPEED_100 (1 << 0) |
Definition at line 164 of file pxa168_eth.c.
#define PORT_STATUS 0x0418 |
Definition at line 61 of file pxa168_eth.c.
#define PXA168_ETH_PHY_ADDR_DEFAULT 0 |
Definition at line 80 of file pxa168_eth.c.
#define pxa168_eth_resume NULL |
Definition at line 1632 of file pxa168_eth.c.
#define pxa168_eth_suspend NULL |
Definition at line 1633 of file pxa168_eth.c.
#define RX_EN_INT (1 << 23) |
Definition at line 85 of file pxa168_eth.c.
#define RX_ERROR (1 << 15) |
Definition at line 88 of file pxa168_eth.c.
#define RX_FIRST_DESC (1 << 17) |
Definition at line 86 of file pxa168_eth.c.
#define RX_LAST_DESC (1 << 16) |
Definition at line 87 of file pxa168_eth.c.
#define SDCR_BLMR (1 << 6) |
Definition at line 127 of file pxa168_eth.c.
#define SDCR_BLMT (1 << 7) |
Definition at line 128 of file pxa168_eth.c.
#define SDCR_BSZ1 (0 << SDCR_BSZ_OFF) |
Definition at line 126 of file pxa168_eth.c.
#define SDCR_BSZ2 (1 << SDCR_BSZ_OFF) |
Definition at line 125 of file pxa168_eth.c.
#define SDCR_BSZ4 (2 << SDCR_BSZ_OFF) |
Definition at line 124 of file pxa168_eth.c.
#define SDCR_BSZ8 (3 << SDCR_BSZ_OFF) |
Definition at line 123 of file pxa168_eth.c.
#define SDCR_BSZ_OFF 12 |
Definition at line 122 of file pxa168_eth.c.
#define SDCR_RC_MAX_RETRANS (0xf << SDCR_RC_OFF) |
Definition at line 131 of file pxa168_eth.c.
#define SDCR_RC_OFF 2 |
Definition at line 130 of file pxa168_eth.c.
#define SDCR_RIFB (1 << 9) |
Definition at line 129 of file pxa168_eth.c.
#define SDMA_CMD 0x0448 |
Definition at line 64 of file pxa168_eth.c.
#define SDMA_CMD_AR (1 << 15) |
Definition at line 102 of file pxa168_eth.c.
#define SDMA_CMD_AT (1 << 31) |
Definition at line 99 of file pxa168_eth.c.
#define SDMA_CMD_ERD (1 << 7) |
Definition at line 103 of file pxa168_eth.c.
#define SDMA_CMD_TXDH (1 << 23) |
Definition at line 101 of file pxa168_eth.c.
#define SDMA_CMD_TXDL (1 << 24) |
Definition at line 100 of file pxa168_eth.c.
#define SDMA_CONFIG 0x0440 |
Definition at line 63 of file pxa168_eth.c.
#define SKB_DMA_REALIGN ((PAGE_SIZE - NET_SKB_PAD) % SMP_CACHE_BYTES) |
Definition at line 176 of file pxa168_eth.c.
#define SMI 0x0010 |
Definition at line 57 of file pxa168_eth.c.
Definition at line 73 of file pxa168_eth.c.
Definition at line 76 of file pxa168_eth.c.
Definition at line 75 of file pxa168_eth.c.
Definition at line 74 of file pxa168_eth.c.
#define TX_EN_INT (1 << 23) |
Definition at line 91 of file pxa168_eth.c.
#define TX_ERROR (1 << 15) |
Definition at line 96 of file pxa168_eth.c.
#define TX_FIRST_DESC (1 << 17) |
Definition at line 94 of file pxa168_eth.c.
#define TX_GEN_CRC (1 << 22) |
Definition at line 92 of file pxa168_eth.c.
#define TX_LAST_DESC (1 << 16) |
Definition at line 95 of file pxa168_eth.c.
#define TX_ZERO_PADDING (1 << 18) |
Definition at line 93 of file pxa168_eth.c.
#define WORK_LINK (1 << 0) |
Definition at line 170 of file pxa168_eth.c.
#define WORK_TX_DONE (1 << 1) |
Definition at line 171 of file pxa168_eth.c.
enum hash_table_entry |
Definition at line 258 of file pxa168_eth.c.
MODULE_ALIAS | ( | "platform:pxa168_eth" | ) |
MODULE_LICENSE | ( | "GPL" | ) |
module_platform_driver | ( | pxa168_eth_driver | ) |