]> rtime.felk.cvut.cz Git - pes-rpp/rpp-test-sw.git/blob - include/cmd_emac.h
975d9302eb4a83a543923acab976a72c29d66c08
[pes-rpp/rpp-test-sw.git] / include / cmd_emac.h
1 #ifndef _EMAC_TEST_H_
2 #define _EMAC_TEST_H_
3
4 /* ************************************************* */
5 /*   Emac frame buffer related stuff                 */
6 /* ************************************************* */
7 typedef struct _EMAC_Desc {
8         struct _EMAC_Desc *pNext;       /* Pointer to next descriptor in chain */
9         uint8_t *pBuffer;                       /* Pointer to data buffer */
10         uint32_t BufOffLen;             /* Buffer Offset(MSW) and Length(LSW) */
11         uint32_t PktFlgLen;             /* Packet Flags(MSW) and Length(LSW) */
12 } EMAC_Desc;
13
14 /* Packet Flags */
15 #define EMAC_DSC_FLAG_SOP                       0x80000000u
16 #define EMAC_DSC_FLAG_EOP                       0x40000000u
17 #define EMAC_DSC_FLAG_OWNER             0x20000000u
18 #define EMAC_DSC_FLAG_EOQ                       0x10000000u
19 #define EMAC_DSC_FLAG_TDOWNCMPLT        0x08000000u
20 #define EMAC_DSC_FLAG_PASSCRC           0x04000000u
21
22 /* ************************************************* */
23 /*   Ethernet frame                                  */
24 /* ************************************************* */
25 typedef struct {
26         uint8_t  destination[6];
27         uint8_t  source[6];
28         uint16_t len;
29         uint8_t  data[50];
30         uint32_t fcs;
31 } eth_frame_t;
32
33 /* ************************************************* */
34 int emac_test(cmd_io_t *cmd_io, const struct cmd_des *des, char *param[]);
35 #endif /* _EMAC_TEST_H_ */