aboutsummaryrefslogtreecommitdiffstats
path: root/ports/ARM7-AT91SAM7X/sam7x_emac.h
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-05-13 15:33:52 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2008-05-13 15:33:52 +0000
commit95bcaa245004d2556b4b2b4a9327653b17812acb (patch)
tree3ced050d4c5017ae44bc6657a7f4784c8e1b8f7a /ports/ARM7-AT91SAM7X/sam7x_emac.h
parent6320aaba73a6a167226135802404e53c39a2ac85 (diff)
downloadChibiOS-95bcaa245004d2556b4b2b4a9327653b17812acb.tar.gz
ChibiOS-95bcaa245004d2556b4b2b4a9327653b17812acb.tar.bz2
ChibiOS-95bcaa245004d2556b4b2b4a9327653b17812acb.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@289 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'ports/ARM7-AT91SAM7X/sam7x_emac.h')
-rw-r--r--ports/ARM7-AT91SAM7X/sam7x_emac.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/ports/ARM7-AT91SAM7X/sam7x_emac.h b/ports/ARM7-AT91SAM7X/sam7x_emac.h
index aff071ff6..a6f43a2c8 100644
--- a/ports/ARM7-AT91SAM7X/sam7x_emac.h
+++ b/ports/ARM7-AT91SAM7X/sam7x_emac.h
@@ -47,8 +47,11 @@ typedef struct {
#define W2_R_MULTICAST_MATCH 0x40000000
#define W2_R_BROADCAST_DETECTED 0x80000000
+#define W1_T_BUFFER_MASK 0xFFFFFFFC
+
#define W2_T_LENGTH_MASK 0x000007FF
-#define W2_T_RFU1 0x00003800
+#define W2_T_LOCKED 0x00000800 /* Not an EMAC flag, used by the driver */
+#define W2_T_RFU1 0x00003000
#define W2_T_LAST_BUFFER 0x00004000
#define W2_T_NO_CRC 0x00008000
#define W2_T_RFU2 0x07FF0000
@@ -58,12 +61,19 @@ typedef struct {
#define W2_T_WRAP 0x40000000
#define W2_T_USED 0x80000000
+struct MACHeader {
+ uint8_t destination[6];
+ uint8_t source[6];
+ uint8_t ethertype[2];
+};
+
#ifdef __cplusplus
extern "C" {
#endif
void InitEMAC(int prio);
void EMACSetAddress(uint8_t *eaddr);
- bool_t EMACTransmit(uint8_t *hdr, uint8_t *data, size_t size);
+ bool_t EMACTransmit(struct MACHeader *hdr, uint8_t *data, size_t size);
+ bool_t EMACReceive(uint8_t *buf, size_t *sizep);
#ifdef __cplusplus
}
#endif