Changes after review

Change-Id: I6ad261b5b00f34cc389789c707e8d91c45683007
This commit is contained in:
Michal Maka 2013-08-02 15:01:07 +02:00 committed by Ben Gras
parent b05d70e94c
commit f9bdbf1089
5 changed files with 633 additions and 539 deletions

View File

@ -24,10 +24,10 @@ Driver was tested using various tools, i. e.
* fetch - downloading file from the Internet and also local server. Every file * fetch - downloading file from the Internet and also local server. Every file
downloaded well, but speed was about 50-200 kB/s. downloaded well, but speed was about 50-200 kB/s.
* ftp - downloading and uploading 20 MB file completed. * ftp - downloading and uploading 20 MB file completed.
* ping - checking connection between BeagleBone and computer passed using standard * ping - checking connection between BeagleBone and computer passed using stan -
settings, when we set ping requests interval to 200 ms it also passed. But with dard settings, when we set ping requests interval to 200 ms it also
20 ms and 2 ms driver dropped some packets (20 ms - about 20% loss, 2 ms - 50% passed. But with 20 ms and 2 ms driver dropped some packets (20 ms -
loss). about 20% loss, 2 ms - 50% loss).
* udpstat, hostaddr, dhcpd, ifconfig, arp gave proper results. * udpstat, hostaddr, dhcpd, ifconfig, arp gave proper results.
Tests passed, so driver meets the requirements of ethernet driver. Tests passed, so driver meets the requirements of ethernet driver.

File diff suppressed because it is too large Load Diff

View File

@ -9,9 +9,9 @@ service lan8710a
DEVIO # 21 DEVIO # 21
; ;
ipc ipc
SYSTEM pm rs log tty ds vm tty inet lwip
inet lwip ; ;
irq 41; # IRQ 41 allowed irq 41 # IRQ 41 allowed
irq 42; # IRQ 42 allowed 42 # IRQ 42 allowed
uid 0; ;
}; };

View File

@ -7,11 +7,11 @@
#if LAN8710A_DEBUG == 1 #if LAN8710A_DEBUG == 1
#define LAN8710A_DEBUG_PRINT(args) \ #define LAN8710A_DEBUG_PRINT(args) \
{ \ do { \
printf("LAN8710A DEBUG: "); \ printf("LAN8710A DEBUG: "); \
printf args; \ printf args; \
printf("\n"); \ printf("\n"); \
} } while (0)
#else #else
#define LAN8710A_DEBUG_PRINT(args) #define LAN8710A_DEBUG_PRINT(args)
#endif #endif
@ -25,6 +25,9 @@
#define MAP_FAILED ((void *) -1) /* mmap() failed */ #define MAP_FAILED ((void *) -1) /* mmap() failed */
/* Ethernet driver defines */
#define LAN8710A_NAME_LEN (11)
/* Ethernet driver states */ /* Ethernet driver states */
#define LAN8710A_DETECTED (1 << 0) #define LAN8710A_DETECTED (1 << 0)
#define LAN8710A_ENABLED (1 << 1) #define LAN8710A_ENABLED (1 << 1)
@ -42,9 +45,9 @@
#define LAN8710A_RX_INTR (41) #define LAN8710A_RX_INTR (41)
#define LAN8710A_TX_INTR (42) #define LAN8710A_TX_INTR (42)
/* Values to be written after interrupt handle */ /* Values to be written after interrupt handle and interrupt masks*/
#define END_OF_RX_INT (1) #define RX_INT (1)
#define END_OF_TX_INT (2) #define TX_INT (2)
/** Numbers of Tx DMA channels */ /** Numbers of Tx DMA channels */
#define TX_DMA_CHANNELS (8) #define TX_DMA_CHANNELS (8)
@ -71,22 +74,21 @@
#define TX_DESC_TO_PORT1 (1 << 16) #define TX_DESC_TO_PORT1 (1 << 16)
#define TX_DESC_TO_PORT_EN (1 << 20) #define TX_DESC_TO_PORT_EN (1 << 20)
typedef struct lan8710a_desc typedef struct lan8710a_desc_t
{ {
u32_t next_pointer; u32_t next_pointer;
u32_t buffer_pointer; u32_t buffer_pointer;
u32_t buffer_length_off; u32_t buffer_length_off;
u32_t pkt_len_flags; u32_t pkt_len_flags;
} } lan8710a_desc_t;
lan8710a_desc_t;
typedef struct lan8710a typedef struct lan8710a_t
{ {
lan8710a_desc_t *rx_desc; lan8710a_desc_t *rx_desc;
lan8710a_desc_t *tx_desc; lan8710a_desc_t *tx_desc;
phys_bytes rx_desc_phy; phys_bytes rx_desc_phy;
phys_bytes tx_desc_phy; phys_bytes tx_desc_phy;
char name[11]; char name[LAN8710A_NAME_LEN];
int status; int status;
int irq_rx_hook; /* Rx interrupt Request Vector Hook. */ int irq_rx_hook; /* Rx interrupt Request Vector Hook. */
int irq_tx_hook; /* Tx interrupt Request Vector Hook. */ int irq_tx_hook; /* Tx interrupt Request Vector Hook. */
@ -115,7 +117,7 @@ typedef struct lan8710a
vir_bytes regs_cpsw_ale; vir_bytes regs_cpsw_ale;
vir_bytes regs_cpsw_wr; vir_bytes regs_cpsw_wr;
vir_bytes regs_intc; vir_bytes regs_intc;
vir_bytes regs_cpdma_stateram; vir_bytes regs_cpdma_stram;
} lan8710a_t; } lan8710a_t;
#endif /* LAN8710A_H_ */ #endif /* LAN8710A_H_ */

View File

@ -132,7 +132,7 @@
#define CPDMA_IDLE (1 << 31) #define CPDMA_IDLE (1 << 31)
#define CPDMA_TX_RLIM (0xFF << 8) #define CPDMA_TX_RLIM (0xFF << 8)
#define CPDMA_NO_OFFSET (oxFFFF << 0) #define CPDMA_NO_OFFSET (0xFFFF << 0)
#define CPDMA_RX_CEF (1 << 4) #define CPDMA_RX_CEF (1 << 4)
#define CPDMA_CMD_IDLE (1 << 3) #define CPDMA_CMD_IDLE (1 << 3)
#define RX_OFFLEN_BLOCK (1 << 2) #define RX_OFFLEN_BLOCK (1 << 2)
@ -183,11 +183,11 @@
#define INTC_TX_MASK (1 << 10) #define INTC_TX_MASK (1 << 10)
/* DMA STATERAM Registers */ /* DMA STATERAM Registers */
#define CPDMA_STATERAM_BASE_ADR (0x4A100A00) #define CPDMA_STRAM_BASE_ADR (0x4A100A00)
#define CPDMA_STATERAM_TX_HDP(x) ((volatile u32_t *)( lan8710a_state.regs_cpdma_stateram + 4*(x))) #define CPDMA_STRAM_TX_HDP(x) ((volatile u32_t *)( lan8710a_state.regs_cpdma_stram + 4*(x)))
#define CPDMA_STATERAM_RX_HDP(x) ((volatile u32_t *)( lan8710a_state.regs_cpdma_stateram + 0x20 + 4*(x))) #define CPDMA_STRAM_RX_HDP(x) ((volatile u32_t *)( lan8710a_state.regs_cpdma_stram + 0x20 + 4*(x)))
#define CPDMA_STATERAM_TX_CP(x) ((volatile u32_t *)( lan8710a_state.regs_cpdma_stateram + 0x40 + 4*(x))) #define CPDMA_STRAM_TX_CP(x) ((volatile u32_t *)( lan8710a_state.regs_cpdma_stram + 0x40 + 4*(x)))
#define CPDMA_STATERAM_RX_CP(x) ((volatile u32_t *)( lan8710a_state.regs_cpdma_stateram + 0x60 + 4*(x))) #define CPDMA_STRAM_RX_CP(x) ((volatile u32_t *)( lan8710a_state.regs_cpdma_stram + 0x60 + 4*(x)))
#define ALL_BITS (0xFFFFFFFF) #define ALL_BITS (0xFFFFFFFF)