regs-umal.h 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * PKUnity Ultra Media Access Layer (UMAL) Ethernet MAC Registers
  4. */
  5. /* MAC module of UMAL */
  6. /* UMAL's MAC module includes G/MII interface, several additional PHY
  7. * interfaces, and MAC control sub-layer, which provides support for control
  8. * frames (e.g. PAUSE frames).
  9. */
  10. /*
  11. * TX/RX reset and control UMAL_CFG1
  12. */
  13. #define UMAL_CFG1 (PKUNITY_UMAL_BASE + 0x0000)
  14. /*
  15. * MAC interface mode control UMAL_CFG2
  16. */
  17. #define UMAL_CFG2 (PKUNITY_UMAL_BASE + 0x0004)
  18. /*
  19. * Inter Packet/Frame Gap UMAL_IPGIFG
  20. */
  21. #define UMAL_IPGIFG (PKUNITY_UMAL_BASE + 0x0008)
  22. /*
  23. * Collision retry or backoff UMAL_HALFDUPLEX
  24. */
  25. #define UMAL_HALFDUPLEX (PKUNITY_UMAL_BASE + 0x000c)
  26. /*
  27. * Maximum Frame Length UMAL_MAXFRAME
  28. */
  29. #define UMAL_MAXFRAME (PKUNITY_UMAL_BASE + 0x0010)
  30. /*
  31. * Test Regsiter UMAL_TESTREG
  32. */
  33. #define UMAL_TESTREG (PKUNITY_UMAL_BASE + 0x001c)
  34. /*
  35. * MII Management Configure UMAL_MIICFG
  36. */
  37. #define UMAL_MIICFG (PKUNITY_UMAL_BASE + 0x0020)
  38. /*
  39. * MII Management Command UMAL_MIICMD
  40. */
  41. #define UMAL_MIICMD (PKUNITY_UMAL_BASE + 0x0024)
  42. /*
  43. * MII Management Address UMAL_MIIADDR
  44. */
  45. #define UMAL_MIIADDR (PKUNITY_UMAL_BASE + 0x0028)
  46. /*
  47. * MII Management Control UMAL_MIICTRL
  48. */
  49. #define UMAL_MIICTRL (PKUNITY_UMAL_BASE + 0x002c)
  50. /*
  51. * MII Management Status UMAL_MIISTATUS
  52. */
  53. #define UMAL_MIISTATUS (PKUNITY_UMAL_BASE + 0x0030)
  54. /*
  55. * MII Management Indicator UMAL_MIIIDCT
  56. */
  57. #define UMAL_MIIIDCT (PKUNITY_UMAL_BASE + 0x0034)
  58. /*
  59. * Interface Control UMAL_IFCTRL
  60. */
  61. #define UMAL_IFCTRL (PKUNITY_UMAL_BASE + 0x0038)
  62. /*
  63. * Interface Status UMAL_IFSTATUS
  64. */
  65. #define UMAL_IFSTATUS (PKUNITY_UMAL_BASE + 0x003c)
  66. /*
  67. * MAC address (high 4 bytes) UMAL_STADDR1
  68. */
  69. #define UMAL_STADDR1 (PKUNITY_UMAL_BASE + 0x0040)
  70. /*
  71. * MAC address (low 2 bytes) UMAL_STADDR2
  72. */
  73. #define UMAL_STADDR2 (PKUNITY_UMAL_BASE + 0x0044)
  74. /* FIFO MODULE OF UMAL */
  75. /* UMAL's FIFO module provides data queuing for increased system level
  76. * throughput
  77. */
  78. #define UMAL_FIFOCFG0 (PKUNITY_UMAL_BASE + 0x0048)
  79. #define UMAL_FIFOCFG1 (PKUNITY_UMAL_BASE + 0x004c)
  80. #define UMAL_FIFOCFG2 (PKUNITY_UMAL_BASE + 0x0050)
  81. #define UMAL_FIFOCFG3 (PKUNITY_UMAL_BASE + 0x0054)
  82. #define UMAL_FIFOCFG4 (PKUNITY_UMAL_BASE + 0x0058)
  83. #define UMAL_FIFOCFG5 (PKUNITY_UMAL_BASE + 0x005c)
  84. #define UMAL_FIFORAM0 (PKUNITY_UMAL_BASE + 0x0060)
  85. #define UMAL_FIFORAM1 (PKUNITY_UMAL_BASE + 0x0064)
  86. #define UMAL_FIFORAM2 (PKUNITY_UMAL_BASE + 0x0068)
  87. #define UMAL_FIFORAM3 (PKUNITY_UMAL_BASE + 0x006c)
  88. #define UMAL_FIFORAM4 (PKUNITY_UMAL_BASE + 0x0070)
  89. #define UMAL_FIFORAM5 (PKUNITY_UMAL_BASE + 0x0074)
  90. #define UMAL_FIFORAM6 (PKUNITY_UMAL_BASE + 0x0078)
  91. #define UMAL_FIFORAM7 (PKUNITY_UMAL_BASE + 0x007c)
  92. /* MAHBE MODULE OF UMAL */
  93. /* UMAL's MAHBE module interfaces to the host system through 32-bit AHB Master
  94. * and Slave ports.Registers within the M-AHBE provide Control and Status
  95. * information concerning these transfers.
  96. */
  97. /*
  98. * Transmit Control UMAL_DMATxCtrl
  99. */
  100. #define UMAL_DMATxCtrl (PKUNITY_UMAL_BASE + 0x0180)
  101. /*
  102. * Pointer to TX Descripter UMAL_DMATxDescriptor
  103. */
  104. #define UMAL_DMATxDescriptor (PKUNITY_UMAL_BASE + 0x0184)
  105. /*
  106. * Status of Tx Packet Transfers UMAL_DMATxStatus
  107. */
  108. #define UMAL_DMATxStatus (PKUNITY_UMAL_BASE + 0x0188)
  109. /*
  110. * Receive Control UMAL_DMARxCtrl
  111. */
  112. #define UMAL_DMARxCtrl (PKUNITY_UMAL_BASE + 0x018c)
  113. /*
  114. * Pointer to Rx Descriptor UMAL_DMARxDescriptor
  115. */
  116. #define UMAL_DMARxDescriptor (PKUNITY_UMAL_BASE + 0x0190)
  117. /*
  118. * Status of Rx Packet Transfers UMAL_DMARxStatus
  119. */
  120. #define UMAL_DMARxStatus (PKUNITY_UMAL_BASE + 0x0194)
  121. /*
  122. * Interrupt Mask UMAL_DMAIntrMask
  123. */
  124. #define UMAL_DMAIntrMask (PKUNITY_UMAL_BASE + 0x0198)
  125. /*
  126. * Interrupts, read only UMAL_DMAInterrupt
  127. */
  128. #define UMAL_DMAInterrupt (PKUNITY_UMAL_BASE + 0x019c)
  129. /*
  130. * Commands for UMAL_CFG1 register
  131. */
  132. #define UMAL_CFG1_TXENABLE FIELD(1, 1, 0)
  133. #define UMAL_CFG1_RXENABLE FIELD(1, 1, 2)
  134. #define UMAL_CFG1_TXFLOWCTL FIELD(1, 1, 4)
  135. #define UMAL_CFG1_RXFLOWCTL FIELD(1, 1, 5)
  136. #define UMAL_CFG1_CONFLPBK FIELD(1, 1, 8)
  137. #define UMAL_CFG1_RESET FIELD(1, 1, 31)
  138. #define UMAL_CFG1_CONFFLCTL (MAC_TX_FLOW_CTL | MAC_RX_FLOW_CTL)
  139. /*
  140. * Commands for UMAL_CFG2 register
  141. */
  142. #define UMAL_CFG2_FULLDUPLEX FIELD(1, 1, 0)
  143. #define UMAL_CFG2_CRCENABLE FIELD(1, 1, 1)
  144. #define UMAL_CFG2_PADCRC FIELD(1, 1, 2)
  145. #define UMAL_CFG2_LENGTHCHECK FIELD(1, 1, 4)
  146. #define UMAL_CFG2_MODEMASK FMASK(2, 8)
  147. #define UMAL_CFG2_NIBBLEMODE FIELD(1, 2, 8)
  148. #define UMAL_CFG2_BYTEMODE FIELD(2, 2, 8)
  149. #define UMAL_CFG2_PREAMBLENMASK FMASK(4, 12)
  150. #define UMAL_CFG2_DEFPREAMBLEN FIELD(7, 4, 12)
  151. #define UMAL_CFG2_FD100 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_NIBBLEMODE \
  152. | UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \
  153. | UMAL_CFG2_CRCENABLE | UMAL_CFG2_FULLDUPLEX)
  154. #define UMAL_CFG2_FD1000 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_BYTEMODE \
  155. | UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \
  156. | UMAL_CFG2_CRCENABLE | UMAL_CFG2_FULLDUPLEX)
  157. #define UMAL_CFG2_HD100 (UMAL_CFG2_DEFPREAMBLEN | UMAL_CFG2_NIBBLEMODE \
  158. | UMAL_CFG2_LENGTHCHECK | UMAL_CFG2_PADCRC \
  159. | UMAL_CFG2_CRCENABLE)
  160. /*
  161. * Command for UMAL_IFCTRL register
  162. */
  163. #define UMAL_IFCTRL_RESET FIELD(1, 1, 31)
  164. /*
  165. * Command for UMAL_MIICFG register
  166. */
  167. #define UMAL_MIICFG_RESET FIELD(1, 1, 31)
  168. /*
  169. * Command for UMAL_MIICMD register
  170. */
  171. #define UMAL_MIICMD_READ FIELD(1, 1, 0)
  172. /*
  173. * Command for UMAL_MIIIDCT register
  174. */
  175. #define UMAL_MIIIDCT_BUSY FIELD(1, 1, 0)
  176. #define UMAL_MIIIDCT_NOTVALID FIELD(1, 1, 2)
  177. /*
  178. * Commands for DMATxCtrl regesters
  179. */
  180. #define UMAL_DMA_Enable FIELD(1, 1, 0)
  181. /*
  182. * Commands for DMARxCtrl regesters
  183. */
  184. #define UMAL_DMAIntrMask_ENABLEHALFWORD FIELD(1, 1, 16)
  185. /*
  186. * Command for DMARxStatus
  187. */
  188. #define CLR_RX_BUS_ERR FIELD(1, 1, 3)
  189. #define CLR_RX_OVERFLOW FIELD(1, 1, 2)
  190. #define CLR_RX_PKT FIELD(1, 1, 0)
  191. /*
  192. * Command for DMATxStatus
  193. */
  194. #define CLR_TX_BUS_ERR FIELD(1, 1, 3)
  195. #define CLR_TX_UNDERRUN FIELD(1, 1, 1)
  196. #define CLR_TX_PKT FIELD(1, 1, 0)
  197. /*
  198. * Commands for DMAIntrMask and DMAInterrupt register
  199. */
  200. #define INT_RX_MASK FIELD(0xd, 4, 4)
  201. #define INT_TX_MASK FIELD(0xb, 4, 0)
  202. #define INT_RX_BUS_ERR FIELD(1, 1, 7)
  203. #define INT_RX_OVERFLOW FIELD(1, 1, 6)
  204. #define INT_RX_PKT FIELD(1, 1, 4)
  205. #define INT_TX_BUS_ERR FIELD(1, 1, 3)
  206. #define INT_TX_UNDERRUN FIELD(1, 1, 1)
  207. #define INT_TX_PKT FIELD(1, 1, 0)
  208. /*
  209. * MARCOS of UMAL's descriptors
  210. */
  211. #define UMAL_DESC_PACKETSIZE_EMPTY FIELD(1, 1, 31)
  212. #define UMAL_DESC_PACKETSIZE_NONEMPTY FIELD(0, 1, 31)
  213. #define UMAL_DESC_PACKETSIZE_SIZEMASK FMASK(12, 0)