Ethernet.h
上传用户:yyyd609
上传日期:2022-07-18
资源大小:183k
文件大小:2k
源码类别:

微处理器开发

开发平台:

C/C++

  1. #ifndef __ETHERNET_H__
  2. #define __ETHERNET_H__
  3. #include "71x_lib.h"
  4. // Ports for I/O-Mode
  5. #define ETH_Port(n) (*(vu16*)(0x64000000 | (n) << 11))
  6. #define ETH_RX_Frame_Port ETH_Port(0)
  7. #define ETH_TX_Frame_Port ETH_Port(0)
  8. #define ETH_TX_CMD_Port ETH_Port(4)
  9. #define ETH_TX_LEN_Port ETH_Port(6)
  10. #define ETH_Addr_Port ETH_Port(10)
  11. #define ETH_Data_Port ETH_Port(12)
  12. // Configuration and control registers
  13. #define PP_RxCFG 0x0102 // Rx Bus config
  14. #define PP_RxCTL 0x0104 // Receive Control Register
  15. #define PP_LineCTL 0x0112 // Line Config Register
  16. #define PP_SelfCTL 0x0114 // Self Command Register
  17. // Status and Event Registers
  18. #define PP_RxEvent 0x0124 // Rx Event Register
  19. #define PP_LineST 0x0134 // Line State Register
  20. #define PP_SelfST 0x0136 // Self State register
  21. #define PP_BusST 0x0138 // Bus Status
  22. // Adress Filter Registers
  23. #define PP_IA 0x0158 // Physical Address Register
  24. // PP_RxCFG - Receive Configuration and Interrupt Mask bit definition - Read/write
  25. #define SKIP_1 0x0040
  26. #define RX_OK_ENBL 0x0100
  27. // PP_RxCTL - Receive Control bit definition - Read/write
  28. #define RX_OK_ACCEPT 0x0100
  29. #define RX_IA_ACCEPT 0x0400
  30. #define RX_BROADCAST_ACCEPT 0x0800
  31. // PP_TxCMD - Transmit Command bit definition - Read-only and
  32. // PP_TxCommand - Write-only
  33. #define TX_START_ALL_BYTES 0x00C9
  34. // PP_LineCTL - Line Control bit definition - Read/write
  35. #define SERIAL_RX_ON 0x0040
  36. #define SERIAL_TX_ON 0x0080
  37. // PP_SelfCTL - Software Self Control bit definition - Read/write
  38. #define POWER_ON_RESET 0x0040
  39. // PP_RxEvent - Receive Event Bit definition - Read-only
  40. #define RX_OK 0x0100
  41. #define RX_IA 0x0400
  42. #define RX_BROADCAST 0x0800
  43. // PP_LineST - Ethernet Line Status bit definition - Read-only
  44. #define LINK_OK 0x0080
  45. // PP_SelfST - Chip Software Status bit definition
  46. #define INIT_DONE 0x0080
  47. // PP_BusST - ISA Bus Status bit definition
  48. #define READY_FOR_TX_NOW 0x0100
  49. extern u16 local_eth_addr[3];
  50. void NIC_Init(void);
  51. int NIC_RecvPack(u16 *buf);
  52. int NIC_SendPack(u16 *buf, int len);
  53. #endif