ax88796.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef _DEV_AX88796_H_
  2. #define _DEV_AX88796_H_
  3. #include <netinet/if_ether.h>
  4. #include <net/ether.h>
  5. #include <net/if_var.h>
  6. /*!
  7. * brief Network interface controller information structure and type.
  8. */
  9. typedef struct {
  10. HANDLE volatile ni_rx_rdy; /*!< Receiver event queue. */
  11. HANDLE volatile ni_tx_rdy; /*!< Transmitter event queue. */
  12. u_short ni_tx_cnt; /*!< Number of bytes in transmission queue. */
  13. u_long ni_rx_packets; /*!< Number of packets received. */
  14. u_long ni_tx_packets; /*!< Number of packets sent. */
  15. u_long ni_interrupts; /*!< Number of interrupts. */
  16. u_long ni_overruns; /*!< Number of packet overruns. */
  17. u_long ni_rx_frame_errors; /*!< Number of frame errors. */
  18. u_long ni_rx_crc_errors; /*!< Number of CRC errors. */
  19. u_long ni_rx_missed_errors; /*!< Number of missed packets. */
  20. u_char volatile ni_tx_bsy; /*!< NIC transmitter busy flags. */
  21. u_long ni_rx_pending; /*!< Number of pending receiver interrupts. */
  22. u_char ni_curr_page; /*!< Current receive page. */
  23. }NICINFO;
  24. /*
  25. * Available drivers.
  26. */
  27. extern NUTDEVICE devAx88796;
  28. #ifndef DEV_ETHER
  29. #define DEV_ETHER devAx88796
  30. #endif
  31. #ifndef devEth0
  32. #define devEth0 devAx88796
  33. #endif
  34. /*!
  35. * \brief Charon III Ethernet controller parameters.
  36. */
  37. #define ASIX_BASE 0x20000000
  38. /* ! Read and write byte from controller */
  39. #define Asix_Read(reg) *(unsigned char *) (reg + ASIX_BASE)
  40. #define Asix_ReadWord(reg) *(unsigned short *) (reg + ASIX_BASE)
  41. #define Asix_Write(reg, data) *(unsigned char *) (reg + ASIX_BASE) = data
  42. #define Asix_WriteWord(reg, data) *(unsigned short *) (reg + ASIX_BASE) = data
  43. // buffer boundaries - transmit has 6 256-byte pages = 1536
  44. // receive has 52 256-byte pages = 14848
  45. // entire available packet buffer space is allocated
  46. #define TXSTART_INIT 0x40
  47. #define RXSTART_INIT 0x46
  48. #define RXSTOP_INIT 0x80
  49. extern int AsixInit(NUTDEVICE *dev);
  50. extern int AsixOutput(NUTDEVICE *dev, NETBUF *nb);
  51. void NicPhyWrite(u_char reg, u_short val);
  52. u_short NicPhyRead(u_char reg);
  53. #endif