emac_reg.h 164 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063
  1. /**************************************************************************//**
  2. * @file emac_reg.h
  3. * @version V1.00
  4. * @brief EMAC register definition header file
  5. *
  6. * SPDX-License-Identifier: Apache-2.0
  7. * @copyright (C) 2017-2020 Nuvoton Technology Corp. All rights reserved.
  8. *****************************************************************************/
  9. #ifndef __EMAC_REG_H__
  10. #define __EMAC_REG_H__
  11. #if defined ( __CC_ARM )
  12. #pragma anon_unions
  13. #endif
  14. /**
  15. @addtogroup REGISTER Control Register
  16. @{
  17. */
  18. /**
  19. @addtogroup EMAC Ethernet MAC Controller(EMAC)
  20. Memory Mapped Structure for EMAC Controller
  21. @{ */
  22. typedef struct
  23. {
  24. /**
  25. * @var EMAC_T::CAMCTL
  26. * Offset: 0x00 CAM Comparison Control Register
  27. * ---------------------------------------------------------------------------------------------------
  28. * |Bits |Field |Descriptions
  29. * | :----: | :----: | :---- |
  30. * |[0] |AUP |Accept Unicast Packet
  31. * | | |The AUP controls the unicast packet reception
  32. * | | |If AUP is enabled, EMAC receives all incoming packet its destination MAC address is a unicast address.
  33. * | | |0 = EMAC receives packet depends on the CAM comparison result.
  34. * | | |1 = EMAC receives all unicast packets.
  35. * |[1] |AMP |Accept Multicast Packet
  36. * | | |The AMP controls the multicast packet reception
  37. * | | |If AMP is enabled, EMAC receives all incoming packet its destination MAC address is a multicast address.
  38. * | | |0 = EMAC receives packet depends on the CAM comparison result.
  39. * | | |1 = EMAC receives all multicast packets.
  40. * |[2] |ABP |Accept Broadcast Packet
  41. * | | |The ABP controls the broadcast packet reception
  42. * | | |If ABP is enabled, EMAC receives all incoming packet its destination MAC address is a broadcast address.
  43. * | | |0 = EMAC receives packet depends on the CAM comparison result.
  44. * | | |1 = EMAC receives all broadcast packets.
  45. * |[3] |COMPEN |Complement CAM Comparison Enable Bit
  46. * | | |The COMPEN controls the complement of the CAM comparison result
  47. * | | |If the CMPEN and COMPEN are both enabled, the incoming packet with specific destination MAC address
  48. * | | |configured in CAM entry will be dropped
  49. * | | |And the incoming packet with destination MAC address does not configured in any CAM entry will be received.
  50. * | | |0 = Complement CAM comparison result Disabled.
  51. * | | |1 = Complement CAM comparison result Enabled.
  52. * |[4] |CMPEN |CAM Compare Enable Bit
  53. * | | |The CMPEN controls the enable of CAM comparison function for destination MAC address recognition
  54. * | | |If software wants to receive a packet with specific destination MAC address, configures the MAC address
  55. * | | |into CAM 12~0, then enables that CAM entry and set CMPEN to 1.
  56. * | | |0 = CAM comparison function for destination MAC address recognition Disabled.
  57. * | | |1 = CAM comparison function for destination MAC address recognition Enabled.
  58. * @var EMAC_T::CAMEN
  59. * Offset: 0x04 CAM Enable Register
  60. * ---------------------------------------------------------------------------------------------------
  61. * |Bits |Field |Descriptions
  62. * | :----: | :----: | :---- |
  63. * |[0] |CAMxEN |CAM Entry X Enable Bit
  64. * | | |The CAMxEN controls the validation of CAM entry x.
  65. * | | |The CAM entry 13, 14 and 15 are for PAUSE control frame transmission
  66. * | | |If software wants to transmit a PAUSE control frame out to network, the enable bits of these three CAM
  67. * | | |entries all must be enabled first.
  68. * | | |0 = CAM entry x Disabled.
  69. * | | |1 = CAM entry x Enabled.
  70. * @var EMAC_T::CAM0M
  71. * Offset: 0x08 CAM0 Most Significant Word Register
  72. * ---------------------------------------------------------------------------------------------------
  73. * |Bits |Field |Descriptions
  74. * | :----: | :----: | :---- |
  75. * |[7:0] |MACADDR2 |MAC Address Byte 2
  76. * |[15:8] |MACADDR3 |MAC Address Byte 3
  77. * |[23:16] |MACADDR4 |MAC Address Byte 4
  78. * |[31:24] |MACADDR5 |MAC Address Byte 5
  79. * | | |The CAMxM keeps the bit 47~16 of MAC address
  80. * | | |The x can be the 0~14
  81. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  82. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  83. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  84. * @var EMAC_T::CAM0L
  85. * Offset: 0x0C CAM0 Least Significant Word Register
  86. * ---------------------------------------------------------------------------------------------------
  87. * |Bits |Field |Descriptions
  88. * | :----: | :----: | :---- |
  89. * |[23:16] |MACADDR0 |MAC Address Byte 0
  90. * |[31:24] |MACADDR1 |MAC Address Byte 1
  91. * | | |The CAMxL keeps the bit 15~0 of MAC address
  92. * | | |The x can be the 0~14
  93. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  94. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  95. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  96. * @var EMAC_T::CAM1M
  97. * Offset: 0x10 CAM1 Most Significant Word Register
  98. * ---------------------------------------------------------------------------------------------------
  99. * |Bits |Field |Descriptions
  100. * | :----: | :----: | :---- |
  101. * |[7:0] |MACADDR2 |MAC Address Byte 2
  102. * |[15:8] |MACADDR3 |MAC Address Byte 3
  103. * |[23:16] |MACADDR4 |MAC Address Byte 4
  104. * |[31:24] |MACADDR5 |MAC Address Byte 5
  105. * | | |The CAMxM keeps the bit 47~16 of MAC address
  106. * | | |The x can be the 0~14
  107. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  108. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  109. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  110. * @var EMAC_T::CAM1L
  111. * Offset: 0x14 CAM1 Least Significant Word Register
  112. * ---------------------------------------------------------------------------------------------------
  113. * |Bits |Field |Descriptions
  114. * | :----: | :----: | :---- |
  115. * |[23:16] |MACADDR0 |MAC Address Byte 0
  116. * |[31:24] |MACADDR1 |MAC Address Byte 1
  117. * | | |The CAMxL keeps the bit 15~0 of MAC address
  118. * | | |The x can be the 0~14
  119. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  120. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  121. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  122. * @var EMAC_T::CAM2M
  123. * Offset: 0x18 CAM2 Most Significant Word Register
  124. * ---------------------------------------------------------------------------------------------------
  125. * |Bits |Field |Descriptions
  126. * | :----: | :----: | :---- |
  127. * |[7:0] |MACADDR2 |MAC Address Byte 2
  128. * |[15:8] |MACADDR3 |MAC Address Byte 3
  129. * |[23:16] |MACADDR4 |MAC Address Byte 4
  130. * |[31:24] |MACADDR5 |MAC Address Byte 5
  131. * | | |The CAMxM keeps the bit 47~16 of MAC address
  132. * | | |The x can be the 0~14
  133. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  134. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  135. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  136. * @var EMAC_T::CAM2L
  137. * Offset: 0x1C CAM2 Least Significant Word Register
  138. * ---------------------------------------------------------------------------------------------------
  139. * |Bits |Field |Descriptions
  140. * | :----: | :----: | :---- |
  141. * |[23:16] |MACADDR0 |MAC Address Byte 0
  142. * |[31:24] |MACADDR1 |MAC Address Byte 1
  143. * | | |The CAMxL keeps the bit 15~0 of MAC address
  144. * | | |The x can be the 0~14
  145. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  146. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  147. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  148. * @var EMAC_T::CAM3M
  149. * Offset: 0x20 CAM3 Most Significant Word Register
  150. * ---------------------------------------------------------------------------------------------------
  151. * |Bits |Field |Descriptions
  152. * | :----: | :----: | :---- |
  153. * |[7:0] |MACADDR2 |MAC Address Byte 2
  154. * |[15:8] |MACADDR3 |MAC Address Byte 3
  155. * |[23:16] |MACADDR4 |MAC Address Byte 4
  156. * |[31:24] |MACADDR5 |MAC Address Byte 5
  157. * | | |The CAMxM keeps the bit 47~16 of MAC address
  158. * | | |The x can be the 0~14
  159. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  160. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  161. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  162. * @var EMAC_T::CAM3L
  163. * Offset: 0x24 CAM3 Least Significant Word Register
  164. * ---------------------------------------------------------------------------------------------------
  165. * |Bits |Field |Descriptions
  166. * | :----: | :----: | :---- |
  167. * |[23:16] |MACADDR0 |MAC Address Byte 0
  168. * |[31:24] |MACADDR1 |MAC Address Byte 1
  169. * | | |The CAMxL keeps the bit 15~0 of MAC address
  170. * | | |The x can be the 0~14
  171. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  172. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  173. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  174. * @var EMAC_T::CAM4M
  175. * Offset: 0x28 CAM4 Most Significant Word Register
  176. * ---------------------------------------------------------------------------------------------------
  177. * |Bits |Field |Descriptions
  178. * | :----: | :----: | :---- |
  179. * |[7:0] |MACADDR2 |MAC Address Byte 2
  180. * |[15:8] |MACADDR3 |MAC Address Byte 3
  181. * |[23:16] |MACADDR4 |MAC Address Byte 4
  182. * |[31:24] |MACADDR5 |MAC Address Byte 5
  183. * | | |The CAMxM keeps the bit 47~16 of MAC address
  184. * | | |The x can be the 0~14
  185. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  186. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  187. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  188. * @var EMAC_T::CAM4L
  189. * Offset: 0x2C CAM4 Least Significant Word Register
  190. * ---------------------------------------------------------------------------------------------------
  191. * |Bits |Field |Descriptions
  192. * | :----: | :----: | :---- |
  193. * |[23:16] |MACADDR0 |MAC Address Byte 0
  194. * |[31:24] |MACADDR1 |MAC Address Byte 1
  195. * | | |The CAMxL keeps the bit 15~0 of MAC address
  196. * | | |The x can be the 0~14
  197. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  198. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  199. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  200. * @var EMAC_T::CAM5M
  201. * Offset: 0x30 CAM5 Most Significant Word Register
  202. * ---------------------------------------------------------------------------------------------------
  203. * |Bits |Field |Descriptions
  204. * | :----: | :----: | :---- |
  205. * |[7:0] |MACADDR2 |MAC Address Byte 2
  206. * |[15:8] |MACADDR3 |MAC Address Byte 3
  207. * |[23:16] |MACADDR4 |MAC Address Byte 4
  208. * |[31:24] |MACADDR5 |MAC Address Byte 5
  209. * | | |The CAMxM keeps the bit 47~16 of MAC address
  210. * | | |The x can be the 0~14
  211. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  212. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  213. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  214. * @var EMAC_T::CAM5L
  215. * Offset: 0x34 CAM5 Least Significant Word Register
  216. * ---------------------------------------------------------------------------------------------------
  217. * |Bits |Field |Descriptions
  218. * | :----: | :----: | :---- |
  219. * |[23:16] |MACADDR0 |MAC Address Byte 0
  220. * |[31:24] |MACADDR1 |MAC Address Byte 1
  221. * | | |The CAMxL keeps the bit 15~0 of MAC address
  222. * | | |The x can be the 0~14
  223. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  224. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  225. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  226. * @var EMAC_T::CAM6M
  227. * Offset: 0x38 CAM6 Most Significant Word Register
  228. * ---------------------------------------------------------------------------------------------------
  229. * |Bits |Field |Descriptions
  230. * | :----: | :----: | :---- |
  231. * |[7:0] |MACADDR2 |MAC Address Byte 2
  232. * |[15:8] |MACADDR3 |MAC Address Byte 3
  233. * |[23:16] |MACADDR4 |MAC Address Byte 4
  234. * |[31:24] |MACADDR5 |MAC Address Byte 5
  235. * | | |The CAMxM keeps the bit 47~16 of MAC address
  236. * | | |The x can be the 0~14
  237. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  238. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  239. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  240. * @var EMAC_T::CAM6L
  241. * Offset: 0x3C CAM6 Least Significant Word Register
  242. * ---------------------------------------------------------------------------------------------------
  243. * |Bits |Field |Descriptions
  244. * | :----: | :----: | :---- |
  245. * |[23:16] |MACADDR0 |MAC Address Byte 0
  246. * |[31:24] |MACADDR1 |MAC Address Byte 1
  247. * | | |The CAMxL keeps the bit 15~0 of MAC address
  248. * | | |The x can be the 0~14
  249. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  250. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  251. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  252. * @var EMAC_T::CAM7M
  253. * Offset: 0x40 CAM7 Most Significant Word Register
  254. * ---------------------------------------------------------------------------------------------------
  255. * |Bits |Field |Descriptions
  256. * | :----: | :----: | :---- |
  257. * |[7:0] |MACADDR2 |MAC Address Byte 2
  258. * |[15:8] |MACADDR3 |MAC Address Byte 3
  259. * |[23:16] |MACADDR4 |MAC Address Byte 4
  260. * |[31:24] |MACADDR5 |MAC Address Byte 5
  261. * | | |The CAMxM keeps the bit 47~16 of MAC address
  262. * | | |The x can be the 0~14
  263. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  264. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  265. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  266. * @var EMAC_T::CAM7L
  267. * Offset: 0x44 CAM7 Least Significant Word Register
  268. * ---------------------------------------------------------------------------------------------------
  269. * |Bits |Field |Descriptions
  270. * | :----: | :----: | :---- |
  271. * |[23:16] |MACADDR0 |MAC Address Byte 0
  272. * |[31:24] |MACADDR1 |MAC Address Byte 1
  273. * | | |The CAMxL keeps the bit 15~0 of MAC address
  274. * | | |The x can be the 0~14
  275. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  276. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  277. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  278. * @var EMAC_T::CAM8M
  279. * Offset: 0x48 CAM8 Most Significant Word Register
  280. * ---------------------------------------------------------------------------------------------------
  281. * |Bits |Field |Descriptions
  282. * | :----: | :----: | :---- |
  283. * |[7:0] |MACADDR2 |MAC Address Byte 2
  284. * |[15:8] |MACADDR3 |MAC Address Byte 3
  285. * |[23:16] |MACADDR4 |MAC Address Byte 4
  286. * |[31:24] |MACADDR5 |MAC Address Byte 5
  287. * | | |The CAMxM keeps the bit 47~16 of MAC address
  288. * | | |The x can be the 0~14
  289. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  290. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  291. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  292. * @var EMAC_T::CAM8L
  293. * Offset: 0x4C CAM8 Least Significant Word Register
  294. * ---------------------------------------------------------------------------------------------------
  295. * |Bits |Field |Descriptions
  296. * | :----: | :----: | :---- |
  297. * |[23:16] |MACADDR0 |MAC Address Byte 0
  298. * |[31:24] |MACADDR1 |MAC Address Byte 1
  299. * | | |The CAMxL keeps the bit 15~0 of MAC address
  300. * | | |The x can be the 0~14
  301. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  302. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  303. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  304. * @var EMAC_T::CAM9M
  305. * Offset: 0x50 CAM9 Most Significant Word Register
  306. * ---------------------------------------------------------------------------------------------------
  307. * |Bits |Field |Descriptions
  308. * | :----: | :----: | :---- |
  309. * |[7:0] |MACADDR2 |MAC Address Byte 2
  310. * |[15:8] |MACADDR3 |MAC Address Byte 3
  311. * |[23:16] |MACADDR4 |MAC Address Byte 4
  312. * |[31:24] |MACADDR5 |MAC Address Byte 5
  313. * | | |The CAMxM keeps the bit 47~16 of MAC address
  314. * | | |The x can be the 0~14
  315. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  316. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  317. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  318. * @var EMAC_T::CAM9L
  319. * Offset: 0x54 CAM9 Least Significant Word Register
  320. * ---------------------------------------------------------------------------------------------------
  321. * |Bits |Field |Descriptions
  322. * | :----: | :----: | :---- |
  323. * |[23:16] |MACADDR0 |MAC Address Byte 0
  324. * |[31:24] |MACADDR1 |MAC Address Byte 1
  325. * | | |The CAMxL keeps the bit 15~0 of MAC address
  326. * | | |The x can be the 0~14
  327. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  328. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  329. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  330. * @var EMAC_T::CAM10M
  331. * Offset: 0x58 CAM10 Most Significant Word Register
  332. * ---------------------------------------------------------------------------------------------------
  333. * |Bits |Field |Descriptions
  334. * | :----: | :----: | :---- |
  335. * |[7:0] |MACADDR2 |MAC Address Byte 2
  336. * |[15:8] |MACADDR3 |MAC Address Byte 3
  337. * |[23:16] |MACADDR4 |MAC Address Byte 4
  338. * |[31:24] |MACADDR5 |MAC Address Byte 5
  339. * | | |The CAMxM keeps the bit 47~16 of MAC address
  340. * | | |The x can be the 0~14
  341. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  342. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  343. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  344. * @var EMAC_T::CAM10L
  345. * Offset: 0x5C CAM10 Least Significant Word Register
  346. * ---------------------------------------------------------------------------------------------------
  347. * |Bits |Field |Descriptions
  348. * | :----: | :----: | :---- |
  349. * |[23:16] |MACADDR0 |MAC Address Byte 0
  350. * |[31:24] |MACADDR1 |MAC Address Byte 1
  351. * | | |The CAMxL keeps the bit 15~0 of MAC address
  352. * | | |The x can be the 0~14
  353. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  354. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  355. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  356. * @var EMAC_T::CAM11M
  357. * Offset: 0x60 CAM11 Most Significant Word Register
  358. * ---------------------------------------------------------------------------------------------------
  359. * |Bits |Field |Descriptions
  360. * | :----: | :----: | :---- |
  361. * |[7:0] |MACADDR2 |MAC Address Byte 2
  362. * |[15:8] |MACADDR3 |MAC Address Byte 3
  363. * |[23:16] |MACADDR4 |MAC Address Byte 4
  364. * |[31:24] |MACADDR5 |MAC Address Byte 5
  365. * | | |The CAMxM keeps the bit 47~16 of MAC address
  366. * | | |The x can be the 0~14
  367. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  368. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  369. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  370. * @var EMAC_T::CAM11L
  371. * Offset: 0x64 CAM11 Least Significant Word Register
  372. * ---------------------------------------------------------------------------------------------------
  373. * |Bits |Field |Descriptions
  374. * | :----: | :----: | :---- |
  375. * |[23:16] |MACADDR0 |MAC Address Byte 0
  376. * |[31:24] |MACADDR1 |MAC Address Byte 1
  377. * | | |The CAMxL keeps the bit 15~0 of MAC address
  378. * | | |The x can be the 0~14
  379. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  380. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  381. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  382. * @var EMAC_T::CAM12M
  383. * Offset: 0x68 CAM12 Most Significant Word Register
  384. * ---------------------------------------------------------------------------------------------------
  385. * |Bits |Field |Descriptions
  386. * | :----: | :----: | :---- |
  387. * |[7:0] |MACADDR2 |MAC Address Byte 2
  388. * |[15:8] |MACADDR3 |MAC Address Byte 3
  389. * |[23:16] |MACADDR4 |MAC Address Byte 4
  390. * |[31:24] |MACADDR5 |MAC Address Byte 5
  391. * | | |The CAMxM keeps the bit 47~16 of MAC address
  392. * | | |The x can be the 0~14
  393. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  394. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  395. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  396. * @var EMAC_T::CAM12L
  397. * Offset: 0x6C CAM12 Least Significant Word Register
  398. * ---------------------------------------------------------------------------------------------------
  399. * |Bits |Field |Descriptions
  400. * | :----: | :----: | :---- |
  401. * |[23:16] |MACADDR0 |MAC Address Byte 0
  402. * |[31:24] |MACADDR1 |MAC Address Byte 1
  403. * | | |The CAMxL keeps the bit 15~0 of MAC address
  404. * | | |The x can be the 0~14
  405. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  406. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  407. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  408. * @var EMAC_T::CAM13M
  409. * Offset: 0x70 CAM13 Most Significant Word Register
  410. * ---------------------------------------------------------------------------------------------------
  411. * |Bits |Field |Descriptions
  412. * | :----: | :----: | :---- |
  413. * |[7:0] |MACADDR2 |MAC Address Byte 2
  414. * |[15:8] |MACADDR3 |MAC Address Byte 3
  415. * |[23:16] |MACADDR4 |MAC Address Byte 4
  416. * |[31:24] |MACADDR5 |MAC Address Byte 5
  417. * | | |The CAMxM keeps the bit 47~16 of MAC address
  418. * | | |The x can be the 0~14
  419. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  420. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  421. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  422. * @var EMAC_T::CAM13L
  423. * Offset: 0x74 CAM13 Least Significant Word Register
  424. * ---------------------------------------------------------------------------------------------------
  425. * |Bits |Field |Descriptions
  426. * | :----: | :----: | :---- |
  427. * |[23:16] |MACADDR0 |MAC Address Byte 0
  428. * |[31:24] |MACADDR1 |MAC Address Byte 1
  429. * | | |The CAMxL keeps the bit 15~0 of MAC address
  430. * | | |The x can be the 0~14
  431. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  432. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  433. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  434. * @var EMAC_T::CAM14M
  435. * Offset: 0x78 CAM14 Most Significant Word Register
  436. * ---------------------------------------------------------------------------------------------------
  437. * |Bits |Field |Descriptions
  438. * | :----: | :----: | :---- |
  439. * |[7:0] |MACADDR2 |MAC Address Byte 2
  440. * |[15:8] |MACADDR3 |MAC Address Byte 3
  441. * |[23:16] |MACADDR4 |MAC Address Byte 4
  442. * |[31:24] |MACADDR5 |MAC Address Byte 5
  443. * | | |The CAMxM keeps the bit 47~16 of MAC address
  444. * | | |The x can be the 0~14
  445. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  446. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  447. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  448. * @var EMAC_T::CAM14L
  449. * Offset: 0x7C CAM14 Least Significant Word Register
  450. * ---------------------------------------------------------------------------------------------------
  451. * |Bits |Field |Descriptions
  452. * | :----: | :----: | :---- |
  453. * |[23:16] |MACADDR0 |MAC Address Byte 0
  454. * |[31:24] |MACADDR1 |MAC Address Byte 1
  455. * | | |The CAMxL keeps the bit 15~0 of MAC address
  456. * | | |The x can be the 0~14
  457. * | | |The register pair {EMAC_CAMxM, EMAC_CAMxL} represents a CAM entry and keeps a MAC address.
  458. * | | |For example, if the MAC address 00-50-BA-33-BA-44 kept in CAM entry 1, the register EMAC_CAM1M is
  459. * | | |0x0050_BA33 and EMAC_CAM1L is 0xBA44_0000.
  460. * @var EMAC_T::CAM15MSB
  461. * Offset: 0x80 CAM15 Most Significant Word Register
  462. * ---------------------------------------------------------------------------------------------------
  463. * |Bits |Field |Descriptions
  464. * | :----: | :----: | :---- |
  465. * |[15:0] |OPCODE |OP Code Field of PAUSE Control Frame
  466. * | | |In the PAUSE control frame, an op code field defined and is 0x0001.
  467. * |[31:16] |LENGTH |LENGTH Field of PAUSE Control Frame
  468. * | | |In the PAUSE control frame, a LENGTH field defined and is 0x8808.
  469. * @var EMAC_T::CAM15LSB
  470. * Offset: 0x84 CAM15 Least Significant Word Register
  471. * ---------------------------------------------------------------------------------------------------
  472. * |Bits |Field |Descriptions
  473. * | :----: | :----: | :---- |
  474. * |[31:24] |OPERAND |Pause Parameter
  475. * | | |In the PAUSE control frame, an OPERAND field defined and controls how much time the destination
  476. * | | |Ethernet MAC Controller paused
  477. * | | |The unit of the OPERAND is a slot time, the 512-bit time.
  478. * @var EMAC_T::TXDSA
  479. * Offset: 0x88 Transmit Descriptor Link List Start Address Register
  480. * ---------------------------------------------------------------------------------------------------
  481. * |Bits |Field |Descriptions
  482. * | :----: | :----: | :---- |
  483. * |[31:0] |TXDSA |Transmit Descriptor Link-list Start Address
  484. * | | |The TXDSA keeps the start address of transmit descriptor link-list
  485. * | | |If the software enables the bit TXON (EMAC_CTL[8]), the content of TXDSA will be loaded into the
  486. * | | |current transmit descriptor start address register (EMAC_CTXDSA)
  487. * | | |The TXDSA does not be updated by EMAC
  488. * | | |During the operation, EMAC will ignore the bits [1:0] of TXDSA
  489. * | | |This means that TX descriptors must locate at word boundary memory address.
  490. * @var EMAC_T::RXDSA
  491. * Offset: 0x8C Receive Descriptor Link List Start Address Register
  492. * ---------------------------------------------------------------------------------------------------
  493. * |Bits |Field |Descriptions
  494. * | :----: | :----: | :---- |
  495. * |[31:0] |RXDSA |Receive Descriptor Link-list Start Address
  496. * | | |The RXDSA keeps the start address of receive descriptor link-list
  497. * | | |If the S/W enables the bit RXON (EMAC_CTL[0]), the content of RXDSA will be loaded into the current
  498. * | | |receive descriptor start address register (EMAC_CRXDSA)
  499. * | | |The RXDSA does not be updated by EMAC
  500. * | | |During the operation, EMAC will ignore the bits [1:0] of RXDSA
  501. * | | |This means that RX descriptors must locate at word boundary memory address.
  502. * @var EMAC_T::CTL
  503. * Offset: 0x90 MAC Control Register
  504. * ---------------------------------------------------------------------------------------------------
  505. * |Bits |Field |Descriptions
  506. * | :----: | :----: | :---- |
  507. * |[0] |RXON |Frame Reception ON
  508. * | | |The RXON controls the normal packet reception of EMAC
  509. * | | |If the RXON is set to high, the EMAC starts the packet reception process, including the RX
  510. * | | |descriptor fetching, packet reception and RX descriptor modification.
  511. * | | |It is necessary to finish EMAC initial sequence before enable RXON
  512. * | | |Otherwise, the EMAC operation is undefined.
  513. * | | |If the RXON is disabled during EMAC is receiving an incoming packet, the EMAC stops the packet
  514. * | | |reception process after the current packet reception finished.
  515. * | | |0 = Packet reception process stopped.
  516. * | | |1 = Packet reception process started.
  517. * |[1] |ALP |Accept Long Packet
  518. * | | |The ALP controls the long packet, which packet length is greater than 1518 bytes, reception
  519. * | | |If the ALP is set to high, the EMAC will accept the long packet.
  520. * | | |Otherwise, the long packet will be dropped.
  521. * | | |0 = Ethernet MAC controller dropped the long packet.
  522. * | | |1 = Ethernet MAC controller received the long packet.
  523. * |[2] |ARP |Accept Runt Packet
  524. * | | |The ARP controls the runt packet, which length is less than 64 bytes, reception
  525. * | | |If the ARP is set to high, the EMAC will accept the runt packet.
  526. * | | |Otherwise, the runt packet will be dropped.
  527. * | | |0 = Ethernet MAC controller dropped the runt packet.
  528. * | | |1 = Ethernet MAC controller received the runt packet.
  529. * |[3] |ACP |Accept Control Packet
  530. * | | |The ACP controls the control frame reception
  531. * | | |If the ACP is set to high, the EMAC will accept the control frame
  532. * | | |Otherwise, the control frame will be dropped
  533. * | | |It is recommended that S/W only enable ACP while EMAC is operating on full duplex mode.
  534. * | | |0 = Ethernet MAC controller dropped the control frame.
  535. * | | |1 = Ethernet MAC controller received the control frame.
  536. * |[4] |AEP |Accept CRC Error Packet
  537. * | | |The AEP controls the EMAC accepts or drops the CRC error packet
  538. * | | |If the AEP is set to high, the incoming packet with CRC error will be received by EMAC as a good packet.
  539. * | | |0 = Ethernet MAC controller dropped the CRC error packet.
  540. * | | |1 = Ethernet MAC controller received the CRC error packet.
  541. * |[5] |STRIPCRC |Strip CRC Checksum
  542. * | | |The STRIPCRC controls if the length of incoming packet is calculated with 4 bytes CRC checksum
  543. * | | |If the STRIPCRC is set to high, 4 bytes CRC checksum is excluded from length calculation of incoming packet.
  544. * | | |0 = The 4 bytes CRC checksum is included in packet length calculation.
  545. * | | |1 = The 4 bytes CRC checksum is excluded in packet length calculation.
  546. * |[6] |WOLEN |Wake on LAN Enable Bit
  547. * | | |The WOLEN high enables the functionality that Ethernet MAC controller checked if the incoming packet
  548. * | | |is Magic Packet and wakeup system from Power-down mode.
  549. * | | |If incoming packet was a Magic Packet and the system was in Power-down, the Ethernet MAC controller
  550. * | | |would generate a wakeup event to wake system up from Power-down mode.
  551. * | | |0 = Wake-up by Magic Packet function Disabled.
  552. * | | |1 = Wake-up by Magic Packet function Enabled.
  553. * |[8] |TXON |Frame Transmission ON
  554. * | | |The TXON controls the normal packet transmission of EMAC
  555. * | | |If the TXON is set to high, the EMAC starts the packet transmission process, including the TX
  556. * | | |descriptor fetching, packet transmission and TX descriptor modification.
  557. * | | |It is must to finish EMAC initial sequence before enable TXON
  558. * | | |Otherwise, the EMAC operation is undefined.
  559. * | | |If the TXON is disabled during EMAC is transmitting a packet out, the EMAC stops the packet
  560. * | | |transmission process after the current packet transmission finished.
  561. * | | |0 = Packet transmission process stopped.
  562. * | | |1 = Packet transmission process started.
  563. * |[9] |NODEF |No Deferral
  564. * | | |The NODEF controls the enable of deferral exceed counter
  565. * | | |If NODEF is set to high, the deferral exceed counter is disabled
  566. * | | |The NODEF is only useful while EMAC is operating on half duplex mode.
  567. * | | |0 = The deferral exceed counter Enabled.
  568. * | | |1 = The deferral exceed counter Disabled.
  569. * |[16] |SDPZ |Send PAUSE Frame
  570. * | | |The SDPZ controls the PAUSE control frame transmission.
  571. * | | |If S/W wants to send a PAUSE control frame out, the CAM entry 13, 14 and 15 must be configured
  572. * | | |first and the corresponding CAM enable bit of CAMEN register also must be set.
  573. * | | |Then, set SDPZ to 1 enables the PAUSE control frame transmission.
  574. * | | |The SDPZ is a self-clear bit
  575. * | | |This means after the PAUSE control frame transmission has completed, the SDPZ will be cleared automatically.
  576. * | | |It is recommended that only enabling SNDPAUSE while EMAC is operating in Full Duplex mode.
  577. * | | |0 = PAUSE control frame transmission completed.
  578. * | | |1 = PAUSE control frame transmission Enabled.
  579. * |[17] |SQECHKEN |SQE Checking Enable Bit
  580. * | | |The SQECHKEN controls the enable of SQE checking
  581. * | | |The SQE checking is only available while EMAC is operating on 10M bps and half duplex mode
  582. * | | |In other words, the SQECHKEN cannot affect EMAC operation, if the EMAC is operating on 100Mbps
  583. * | | |or full duplex mode.
  584. * | | |0 = SQE checking Disabled while EMAC is operating in 10Mbps and Half Duplex mode.
  585. * | | |1 = SQE checking Enabled while EMAC is operating in 10Mbps and Half Duplex mode.
  586. * |[18] |FUDUP |Full Duplex Mode Selection
  587. * | | |The FUDUP controls that if EMAC is operating on full or half duplex mode.
  588. * | | |0 = EMAC operates in half duplex mode.
  589. * | | |1 = EMAC operates in full duplex mode.
  590. * |[19] |RMIIRXCTL |RMII RX Control
  591. * | | |The RMIIRXCTL control the receive data sample in RMII mode
  592. * | | |It's necessary to set this bit high when RMIIEN (EMAC_CTL[ [22]) is high.
  593. * | | |0 = RMII RX control disabled.
  594. * | | |1 = RMII RX control enabled.
  595. * |[20] |OPMODE |Operation Mode Selection
  596. * | | |The OPMODE defines that if the EMAC is operating on 10M or 100M bps mode
  597. * | | |The RST (EMAC_CTL[24]) would not affect OPMODE value.
  598. * | | |0 = EMAC operates in 10Mbps mode.
  599. * | | |1 = EMAC operates in 100Mbps mode.
  600. * |[22] |RMIIEN |RMII Mode Enable Bit
  601. * | | |This bit controls if Ethernet MAC controller connected with off-chip Ethernet PHY by MII
  602. * | | |interface or RMII interface
  603. * | | |The RST (EMAC_CTL[24]) would not affect RMIIEN value.
  604. * | | |0 = Ethernet MAC controller RMII mode Disabled.
  605. * | | |1 = Ethernet MAC controller RMII mode Enabled.
  606. * | | |NOTE: This field must keep 1.
  607. * |[24] |RST |Software Reset
  608. * | | |The RST implements a reset function to make the EMAC return default state
  609. * | | |The RST is a self-clear bit
  610. * | | |This means after the software reset finished, the RST will be cleared automatically
  611. * | | |Enable RST can also reset all control and status registers, exclusive of the control bits
  612. * | | |RMIIEN (EMAC_CTL[22]), and OPMODE (EMAC_CTL[20]).
  613. * | | |The EMAC re-initial is necessary after the software reset completed.
  614. * | | |0 = Software reset completed.
  615. * | | |1 = Software reset Enabled.
  616. * @var EMAC_T::MIIMDAT
  617. * Offset: 0x94 MII Management Data Register
  618. * ---------------------------------------------------------------------------------------------------
  619. * |Bits |Field |Descriptions
  620. * | :----: | :----: | :---- |
  621. * |[15:0] |DATA |MII Management Data
  622. * | | |The DATA is the 16 bits data that will be written into the registers of external PHY for MII
  623. * | | |Management write command or the data from the registers of external PHY for MII Management read command.
  624. * @var EMAC_T::MIIMCTL
  625. * Offset: 0x98 MII Management Control and Address Register
  626. * ---------------------------------------------------------------------------------------------------
  627. * |Bits |Field |Descriptions
  628. * | :----: | :----: | :---- |
  629. * |[4:0] |PHYREG |PHY Register Address
  630. * | | |The PHYREG keeps the address to indicate which register of external PHY is the target of the
  631. * | | |MII management command.
  632. * |[12:8] |PHYADDR |PHY Address
  633. * | | |The PHYADDR keeps the address to differentiate which external PHY is the target of the MII management command.
  634. * |[16] |WRITE |Write Command
  635. * | | |The Write defines the MII management command is a read or write.
  636. * | | |0 = MII management command is a read command.
  637. * | | |1 = MII management command is a write command.
  638. * |[17] |BUSY |Busy Bit
  639. * | | |The BUSY controls the enable of the MII management frame generation
  640. * | | |If S/W wants to access registers of external PHY, it set BUSY to high and EMAC generates
  641. * | | |the MII management frame to external PHY through MII Management I/F
  642. * | | |The BUSY is a self-clear bit
  643. * | | |This means the BUSY will be cleared automatically after the MII management command finished.
  644. * | | |0 = MII management command generation finished.
  645. * | | |1 = MII management command generation Enabled.
  646. * |[18] |PREAMSP |Preamble Suppress
  647. * | | |The PREAMSP controls the preamble field generation of MII management frame
  648. * | | |If the PREAMSP is set to high, the preamble field generation of MII management frame is skipped.
  649. * | | |0 = Preamble field generation of MII management frame not skipped.
  650. * | | |1 = Preamble field generation of MII management frame skipped.
  651. * |[19] |MDCON |MDC Clock ON
  652. * | | |The MDC controls the MDC clock generation. If the MDCON is set to high, the MDC clock is turned on.
  653. * | | |0 = MDC clock off.
  654. * | | |1 = MDC clock on.
  655. * @var EMAC_T::FIFOCTL
  656. * Offset: 0x9C FIFO Threshold Control Register
  657. * ---------------------------------------------------------------------------------------------------
  658. * |Bits |Field |Descriptions
  659. * | :----: | :----: | :---- |
  660. * |[1:0] |RXFIFOTH |RXFIFO Low Threshold
  661. * | | |The RXFIFOTH controls when RXDMA requests internal arbiter for data transfer between RXFIFO
  662. * | | |and system memory
  663. * | | |The RXFIFOTH defines not only the high threshold of RXFIFO, but also the low threshold
  664. * | | |The low threshold is the half of high threshold always
  665. * | | |During the packet reception, if the RXFIFO reaches the high threshold, the RXDMA starts to
  666. * | | |transfer frame data from RXFIFO to system memory
  667. * | | |If the frame data in RXFIFO is less than low threshold, RXDMA stops to transfer the frame
  668. * | | |data to system memory.
  669. * | | |00 = Depend on the burst length setting
  670. * | | |If the burst length is 8 words, high threshold is 8 words, too.
  671. * | | |01 = RXFIFO high threshold is 64B and low threshold is 32B.
  672. * | | |10 = RXFIFO high threshold is 128B and low threshold is 64B.
  673. * | | |11 = RXFIFO high threshold is 192B and low threshold is 96B.
  674. * |[9:8] |TXFIFOTH |TXFIFO Low Threshold
  675. * | | |The TXFIFOTH controls when TXDMA requests internal arbiter for data transfer between system
  676. * | | |memory and TXFIFO
  677. * | | |The TXFIFOTH defines not only the low threshold of TXFIFO, but also the high threshold
  678. * | | |The high threshold is the twice of low threshold always
  679. * | | |During the packet transmission, if the TXFIFO reaches the high threshold, the TXDMA stops
  680. * | | |generate request to transfer frame data from system memory to TXFIFO
  681. * | | |If the frame data in TXFIFO is less than low threshold, TXDMA starts to transfer frame data
  682. * | | |from system memory to TXFIFO.
  683. * | | |The TXFIFOTH also defines when the TXMAC starts to transmit frame out to network
  684. * | | |The TXMAC starts to transmit the frame out while the TXFIFO first time reaches the high threshold
  685. * | | |during the transmission of the frame
  686. * | | |If the frame data length is less than TXFIFO high threshold, the TXMAC starts to transmit the frame
  687. * | | |out after the frame data are all inside the TXFIFO.
  688. * | | |00 = Undefined.
  689. * | | |01 = TXFIFO low threshold is 64B and high threshold is 128B.
  690. * | | |10 = TXFIFO low threshold is 80B and high threshold is 160B.
  691. * | | |11 = TXFIFO low threshold is 96B and high threshold is 192B.
  692. * |[21:20] |BURSTLEN |DMA Burst Length
  693. * | | |This defines the burst length of AHB bus cycle while EMAC accesses system memory.
  694. * | | |00 = 4 words.
  695. * | | |01 = 8 words.
  696. * | | |10 = 16 words.
  697. * | | |11 = 16 words.
  698. * @var EMAC_T::TXST
  699. * Offset: 0xA0 Transmit Start Demand Register
  700. * ---------------------------------------------------------------------------------------------------
  701. * |Bits |Field |Descriptions
  702. * | :----: | :----: | :---- |
  703. * |[31:0] |TXST |Transmit Start Demand
  704. * | | |If the TX descriptor is not available for use of TXDMA after the TXON (EMAC_CTL[8]) is enabled,
  705. * | | |the FSM (Finite State Machine) of TXDMA enters the Halt state and the frame transmission is halted
  706. * | | |After the S/W has prepared the new TX descriptor for frame transmission, it must issue a write
  707. * | | |command to EMAC_TXST register to make TXDMA to leave Halt state and continue the frame transmission.
  708. * | | |The EMAC_TXST is a write only register and read from this register is undefined.
  709. * | | |The write to EMAC_TXST register takes effect only when TXDMA stayed at Halt state.
  710. * @var EMAC_T::RXST
  711. * Offset: 0xA4 Receive Start Demand Register
  712. * ---------------------------------------------------------------------------------------------------
  713. * |Bits |Field |Descriptions
  714. * | :----: | :----: | :---- |
  715. * |[31:0] |RXST |Receive Start Demand
  716. * | | |If the RX descriptor is not available for use of RXDMA after the RXON (EMAC_CTL[0]) is enabled,
  717. * | | |the FSM (Finite State Machine) of RXDMA enters the Halt state and the frame reception is halted
  718. * | | |After the S/W has prepared the new RX descriptor for frame reception, it must issue a write
  719. * | | |command to EMAC_RXST register to make RXDMA to leave Halt state and continue the frame reception.
  720. * | | |The EMAC_RXST is a write only register and read from this register is undefined.
  721. * | | |The write to EMAC_RXST register take effect only when RXDMA stayed at Halt state.
  722. * @var EMAC_T::MRFL
  723. * Offset: 0xA8 Maximum Receive Frame Control Register
  724. * ---------------------------------------------------------------------------------------------------
  725. * |Bits |Field |Descriptions
  726. * | :----: | :----: | :---- |
  727. * |[15:0] |MRFL |Maximum Receive Frame Length
  728. * | | |The MRFL defines the maximum frame length for received frame
  729. * | | |If the frame length of received frame is greater than MRFL, and bit MFLEIEN (EMAC_INTEN[8])
  730. * | | |is also enabled, the bit MFLEIF (EMAC_INTSTS[8]) is set and the RX interrupt is triggered.
  731. * | | |It is recommended that only use MRFL to qualify the length of received frame while S/W wants to
  732. * | | |receive a frame which length is greater than 1518 bytes.
  733. * @var EMAC_T::INTEN
  734. * Offset: 0xAC MAC Interrupt Enable Register
  735. * ---------------------------------------------------------------------------------------------------
  736. * |Bits |Field |Descriptions
  737. * | :----: | :----: | :---- |
  738. * |[0] |RXIEN |Receive Interrupt Enable Bit
  739. * | | |The RXIEN controls the RX interrupt generation.
  740. * | | |If RXIEN is enabled and RXIF (EMAC_INTSTS[0]) is high, EMAC generates the RX interrupt to CPU
  741. * | | |If RXIEN is disabled, no RX interrupt is generated to CPU even any status bit EMAC_INTSTS[15:1]
  742. * | | |is set and the corresponding bit of EMAC_INTEN is enabled
  743. * | | |In other words, if S/W wants to receive RX interrupt from EMAC, this bit must be enabled
  744. * | | |And, if S/W doesn't want to receive any RX interrupt from EMAC, disables this bit.
  745. * | | |0 = RXIF (EMAC_INTSTS[0]) is masked and RX interrupt generation Disabled.
  746. * | | |1 = RXIF (EMAC_INTSTS[0]) is not masked and RX interrupt generation Enabled.
  747. * |[1] |CRCEIEN |CRC Error Interrupt Enable Bit
  748. * | | |The CRCEIEN controls the CRCEIF (EMAC_INTSTS[1]) interrupt generation
  749. * | | |If CRCEIF (EMAC_INTSTS[1]) is set, and both CRCEIEN and RXIEN (EMAC_INTEN[0]) are enabled, the
  750. * | | |EMAC generates the RX interrupt to CPU
  751. * | | |If CRCEIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  752. * | | |CRCEIF (EMAC_INTSTS[1]) is set.
  753. * | | |0 = CRCEIF (EMAC_INTSTS[1]) trigger RX interrupt Disabled.
  754. * | | |1 = CRCEIF (EMAC_INTSTS[1]) trigger RX interrupt Enabled.
  755. * |[2] |RXOVIEN |Receive FIFO Overflow Interrupt Enable Bit
  756. * | | |The RXOVIEN controls the RXOVIF (EMAC_INTSTS[2]) interrupt generation
  757. * | | |If RXOVIF (EMAC_INTSTS[2]) is set, and both RXOVIEN and RXIEN (EMAC_INTEN[0]) are enabled, the
  758. * | | |EMAC generates the RX interrupt to CPU
  759. * | | |If RXOVIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  760. * | | |RXOVIF (EMAC_INTSTS[2]) is set.
  761. * | | |0 = RXOVIF (EMAC_INTSTS[2]) trigger RX interrupt Disabled.
  762. * | | |1 = RXOVIF (EMAC_INTSTS[2]) trigger RX interrupt Enabled.
  763. * |[3] |LPIEN |Long Packet Interrupt Enable Bit
  764. * | | |The LPIEN controls the LPIF (EMAC_INTSTS[3]) interrupt generation
  765. * | | |If LPIF (EMAC_INTSTS[3]) is set, and both LPIEN and RXIEN (EMAC_INTEN[0]) are enabled, the EMAC
  766. * | | |generates the RX interrupt to CPU
  767. * | | |If LPIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the LPIF
  768. * | | |(EMAC_INTSTS[3]) is set.
  769. * | | |0 = LPIF (EMAC_INTSTS[3]) trigger RX interrupt Disabled.
  770. * | | |1 = LPIF (EMAC_INTSTS[3]) trigger RX interrupt Enabled.
  771. * |[4] |RXGDIEN |Receive Good Interrupt Enable Bit
  772. * | | |The RXGDIEN controls the RXGDIF (EMAC_INTSTS[4]) interrupt generation
  773. * | | |If RXGDIF (EMAC_INTSTS[4]) is set, and both RXGDIEN and RXIEN (EMAC_INTEN[0]) are enabled, the
  774. * | | |EMAC generates the RX interrupt to CPU
  775. * | | |If RXGDIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  776. * | | |RXGDIF (EMAC_INTSTS[4]) is set.
  777. * | | |0 = RXGDIF (EMAC_INTSTS[4]) trigger RX interrupt Disabled.
  778. * | | |1 = RXGDIF (EMAC_INTSTS[4]) trigger RX interrupt Enabled.
  779. * |[5] |ALIEIEN |Alignment Error Interrupt Enable Bit
  780. * | | |The ALIEIEN controls the ALIEIF (EMAC_INTSTS[5]) interrupt generation
  781. * | | |If ALIEIF (EMAC_INTSTS[5]) is set, and both ALIEIEN and RXIEN (EMAC_INTEN[0]) are enabled, the
  782. * | | |EMAC generates the RX interrupt to CPU
  783. * | | |If ALIEIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  784. * | | |ALIEIF (EMAC_INTSTS[5]) is set.
  785. * | | |0 = ALIEIF (EMAC_INTSTS[5]) trigger RX interrupt Disabled.
  786. * | | |1 = ALIEIF (EMAC_INTSTS[5]) trigger RX interrupt Enabled.
  787. * |[6] |RPIEN |Runt Packet Interrupt Enable Bit
  788. * | | |The RPIEN controls the RPIF (EMAC_INTSTS[6]) interrupt generation
  789. * | | |If RPIF (EMAC_INTSTS[6]) is set, and both RPIEN and RXIEN (EMAC_INTEN[0]) are enabled, the EMAC
  790. * | | |generates the RX interrupt to CPU
  791. * | | |If RPIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  792. * | | |RPIF (EMAC_INTSTS[6]) is set.
  793. * | | |0 = RPIF (EMAC_INTSTS[6]) trigger RX interrupt Disabled.
  794. * | | |1 = RPIF (EMAC_INTSTS[6]) trigger RX interrupt Enabled.
  795. * |[7] |MPCOVIEN |Miss Packet Counter Overrun Interrupt Enable Bit
  796. * | | |The MPCOVIEN controls the MPCOVIF (EMAC_INTSTS[7]) interrupt generation
  797. * | | |If MPCOVIF (EMAC_INTSTS[7]) is set, and both MPCOVIEN and RXIEN (EMAC_INTEN[0]) are enabled,
  798. * | | |the EMAC generates the RX interrupt to CPU
  799. * | | |If MPCOVIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  800. * | | |MPCOVIF (EMAC_INTSTS[7]) is set.
  801. * | | |0 = MPCOVIF (EMAC_INTSTS[7]) trigger RX interrupt Disabled.
  802. * | | |1 = MPCOVIF (EMAC_INTSTS[7]) trigger RX interrupt Enabled.
  803. * |[8] |MFLEIEN |Maximum Frame Length Exceed Interrupt Enable Bit
  804. * | | |The MFLEIEN controls the MFLEIF (EMAC_INTSTS[8]) interrupt generation
  805. * | | |If MFLEIF (EMAC_INTSTS[8]) is set, and both MFLEIEN and RXIEN (EMAC_INTEN[0]) are enabled, the
  806. * | | |EMAC generates the RX interrupt to CPU
  807. * | | |If MFLEIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  808. * | | |MFLEIF (EMAC_INTSTS[8]) is set.
  809. * | | |0 = MFLEIF (EMAC_INTSTS[8]) trigger RX interrupt Disabled.
  810. * | | |1 = MFLEIF (EMAC_INTSTS[8]) trigger RX interrupt Enabled.
  811. * |[9] |DENIEN |DMA Early Notification Interrupt Enable Bit
  812. * | | |The DENIEN controls the DENIF (EMAC_INTSTS[9]) interrupt generation
  813. * | | |If DENIF (EMAC_INTSTS[9]) is set, and both DENIEN and RXIEN (EMAC_INTEN[0]) are enabled, the
  814. * | | |EMAC generates the RX interrupt to CPU
  815. * | | |If DENIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  816. * | | |DENIF (EMAC_INTSTS[9]) is set.
  817. * | | |0 = TDENIF (EMAC_INTSTS[9]) trigger RX interrupt Disabled.
  818. * | | |1 = TDENIF (EMAC_INTSTS[9]) trigger RX interrupt Enabled.
  819. * |[10] |RDUIEN |Receive Descriptor Unavailable Interrupt Enable Bit
  820. * | | |The RDUIEN controls the RDUIF (EMAC_INTSTS[10]) interrupt generation
  821. * | | |If RDUIF (EMAC_INTSTS[10]) is set, and both RDUIEN and RXIEN (EMAC_INTEN[0]) are enabled, the
  822. * | | |EMAC generates the RX interrupt to CPU
  823. * | | |If RDUIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  824. * | | |RDUIF (EMAC_MIOSTA[10]) register is set.
  825. * | | |0 = RDUIF (EMAC_INTSTS[10]) trigger RX interrupt Disabled.
  826. * | | |1 = RDUIF (EMAC_INTSTS[10]) trigger RX interrupt Enabled.
  827. * |[11] |RXBEIEN |Receive Bus Error Interrupt Enable Bit
  828. * | | |The RXBEIEN controls the RXBEIF (EMAC_INTSTS[11]) interrupt generation
  829. * | | |If RXBEIF (EMAC_INTSTS[11]) is set, and both RXBEIEN and RXIEN (EMAC_INTEN[0]) are enabled, the
  830. * | | |EMAC generates the RX interrupt to CPU
  831. * | | |If RXBEIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  832. * | | |RXBEIF (EMAC_INTSTS[11]) is set.
  833. * | | |0 = RXBEIF (EMAC_INTSTS[11]) trigger RX interrupt Disabled.
  834. * | | |1 = RXBEIF (EMAC_INTSTS[11]) trigger RX interrupt Enabled.
  835. * |[14] |CFRIEN |Control Frame Receive Interrupt Enable Bit
  836. * | | |The CFRIEN controls the CFRIF (EMAC_INTSTS[14]) interrupt generation
  837. * | | |If CFRIF (EMAC_INTSTS[14]) is set, and both CFRIEN and RXIEN (EMAC_INTEN[0]) are enabled, the
  838. * | | |EMAC generates the RX interrupt to CPU
  839. * | | |If CFRIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  840. * | | |CFRIF (EMAC_INTSTS[14]) register is set.
  841. * | | |0 = CFRIF (EMAC_INTSTS[14]) trigger RX interrupt Disabled.
  842. * | | |1 = CFRIF (EMAC_INTSTS[14]) trigger RX interrupt Enabled.
  843. * |[15] |WOLIEN |Wake on LAN Interrupt Enable Bit
  844. * | | |The WOLIEN controls the WOLIF (EMAC_INTSTS[15]) interrupt generation
  845. * | | |If WOLIF (EMAC_INTSTS[15]) is set, and both WOLIEN and RXIEN (EMAC_INTEN[0]) are enabled,
  846. * | | |the EMAC generates the RX interrupt to CPU
  847. * | | |If WOLIEN or RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated to CPU even the
  848. * | | |WOLIF (EMAC_INTSTS[15]) is set.
  849. * | | |0 = WOLIF (EMAC_INTSTS[15]) trigger RX interrupt Disabled.
  850. * | | |1 = WOLIF (EMAC_INTSTS[15]) trigger RX interrupt Enabled.
  851. * |[16] |TXIEN |Transmit Interrupt Enable Bit
  852. * | | |The TXIEN controls the TX interrupt generation.
  853. * | | |If TXIEN is enabled and TXIF (EMAC_INTSTS[16]) is high, EMAC generates the TX interrupt to CPU
  854. * | | |If TXIEN is disabled, no TX interrupt is generated to CPU even any status bit of
  855. * | | |EMAC_INTSTS[24:17] set and the corresponding bit of EMAC_INTEN is enabled
  856. * | | |In other words, if S/W wants to receive TX interrupt from EMAC, this bit must be enabled
  857. * | | |And, if S/W doesn't want to receive any TX interrupt from EMAC, disables this bit.
  858. * | | |0 = TXIF (EMAC_INTSTS[16]) is masked and TX interrupt generation Disabled.
  859. * | | |1 = TXIF (EMAC_INTSTS[16]) is not masked and TX interrupt generation Enabled.
  860. * |[17] |TXUDIEN |Transmit FIFO Underflow Interrupt Enable Bit
  861. * | | |The TXUDIEN controls the TXUDIF (EMAC_INTSTS[17]) interrupt generation
  862. * | | |If TXUDIF (EMAC_INTSTS[17]) is set, and both TXUDIEN and TXIEN (EMAC_INTEN[16]) are enabled,
  863. * | | |the EMAC generates the TX interrupt to CPU
  864. * | | |If TXUDIEN or TXIEN (EMAC_INTEN[16]) is disabled, no TX interrupt is generated to CPU even
  865. * | | |the TXUDIF (EMAC_INTSTS[17]) is set.
  866. * | | |0 = TXUDIF (EMAC_INTSTS[17]) TX interrupt Disabled.
  867. * | | |1 = TXUDIF (EMAC_INTSTS[17]) TX interrupt Enabled.
  868. * |[18] |TXCPIEN |Transmit Completion Interrupt Enable Bit
  869. * | | |The TXCPIEN controls the TXCPIF (EMAC_INTSTS[18]) interrupt generation
  870. * | | |If TXCPIF (EMAC_INTSTS[18]) is set, and both TXCPIEN and TXIEN (EMAC_INTEN[16]) are enabled,
  871. * | | |the EMAC generates the TX interrupt to CPU
  872. * | | |If TXCPIEN or TXIEN (EMAC_INTEN[16]) is disabled, no TX interrupt is generated to CPU even the
  873. * | | |TXCPIF (EMAC_INTSTS[18]) is set.
  874. * | | |0 = TXCPIF (EMAC_INTSTS[18]) trigger TX interrupt Disabled.
  875. * | | |1 = TXCPIF (EMAC_INTSTS[18]) trigger TX interrupt Enabled.
  876. * |[19] |EXDEFIEN |Defer Exceed Interrupt Enable Bit
  877. * | | |The EXDEFIEN controls the EXDEFIF (EMAC_INTSTS[19]) interrupt generation
  878. * | | |If EXDEFIF (EMAC_INTSTS[19]) is set, and both EXDEFIEN and TXIEN (EMAC_INTEN[16]) are enabled,
  879. * | | |the EMAC generates the TX interrupt to CPU
  880. * | | |If EXDEFIEN or TXIEN (EMAC_INTEN[16]) is disabled, no TX interrupt is generated to CPU even the
  881. * | | |EXDEFIF (EMAC_INTSTS[19]) is set.
  882. * | | |0 = EXDEFIF (EMAC_INTSTS[19]) trigger TX interrupt Disabled.
  883. * | | |1 = EXDEFIF (EMAC_INTSTS[19]) trigger TX interrupt Enabled.
  884. * |[20] |NCSIEN |No Carrier Sense Interrupt Enable Bit
  885. * | | |The NCSIEN controls the NCSIF (EMAC_INTSTS[20]) interrupt generation
  886. * | | |If NCSIF (EMAC_INTSTS[20]) is set, and both NCSIEN and TXIEN (EMAC_INTEN[16]) are enabled, the
  887. * | | |EMAC generates the TX interrupt to CPU
  888. * | | |If NCSIEN or TXIEN (EMAC_INTEN[16]) is disabled, no TX interrupt is generated to CPU even the
  889. * | | |NCSIF (EMAC_INTSTS[20]) is set.
  890. * | | |0 = NCSIF (EMAC_INTSTS[20]) trigger TX interrupt Disabled.
  891. * | | |1 = NCSIF (EMAC_INTSTS[20]) trigger TX interrupt Enabled.
  892. * |[21] |TXABTIEN |Transmit Abort Interrupt Enable Bit
  893. * | | |The TXABTIEN controls the TXABTIF (EMAC_INTSTS[21]) interrupt generation
  894. * | | |If TXABTIF (EMAC_INTSTS[21]) is set, and both TXABTIEN and TXIEN (EMAC_INTEN[16]) are enabled,
  895. * | | |the EMAC generates the TX interrupt to CPU
  896. * | | |If TXABTIEN or TXIEN (EMAC_INTEN[16]) is disabled, no TX interrupt is generated to CPU even the
  897. * | | |TXABTIF (EMAC_INTSTS[21]) is set.
  898. * | | |0 = TXABTIF (EMAC_INTSTS[21]) trigger TX interrupt Disabled.
  899. * | | |1 = TXABTIF (EMAC_INTSTS[21]) trigger TX interrupt Enabled.
  900. * |[22] |LCIEN |Late Collision Interrupt Enable Bit
  901. * | | |The LCIEN controls the LCIF (EMAC_INTSTS[22]) interrupt generation
  902. * | | |If LCIF (EMAC_INTSTS[22]) is set, and both LCIEN and TXIEN (EMAC_INTEN[16]) are enabled, the
  903. * | | |EMAC generates the TX interrupt to CPU
  904. * | | |If LCIEN or TXIEN (EMAC_INTEN[16]) is disabled, no TX interrupt is generated to CPU even the
  905. * | | |LCIF (EMAC_INTSTS[22]) is set.
  906. * | | |0 = LCIF (EMAC_INTSTS[22]) trigger TX interrupt Disabled.
  907. * | | |1 = LCIF (EMAC_INTSTS[22]) trigger TX interrupt Enabled.
  908. * |[23] |TDUIEN |Transmit Descriptor Unavailable Interrupt Enable Bit
  909. * | | |The TDUIEN controls the TDUIF (EMAC_INTSTS[23]) interrupt generation
  910. * | | |If TDUIF (EMAC_INTSTS[23]) is set, and both TDUIEN and TXIEN (EMAC_INTEN[16]) are enabled, the
  911. * | | |EMAC generates the TX interrupt to CPU
  912. * | | |If TDUIEN or TXIEN (EMAC_INTEN[16]) is disabled, no TX interrupt is generated to CPU even the
  913. * | | |TDUIF (EMAC_INTSTS[23]) is set.
  914. * | | |0 = TDUIF (EMAC_INTSTS[23]) trigger TX interrupt Disabled.
  915. * | | |1 = TDUIF (EMAC_INTSTS[23]) trigger TX interrupt Enabled.
  916. * |[24] |TXBEIEN |Transmit Bus Error Interrupt Enable Bit
  917. * | | |The TXBEIEN controls the TXBEIF (EMAC_INTSTS[24]) interrupt generation
  918. * | | |If TXBEIF (EMAC_INTSTS[24]) is set, and both TXBEIEN and TXIEN (EMAC_INTEN[16]) are enabled, the
  919. * | | |EMAC generates the TX interrupt to CPU
  920. * | | |If TXBEIEN or TXIEN (EMAC_INTEN[16]) is disabled, no TX interrupt is generated to CPU even the
  921. * | | |TXBEIF (EMAC_INTSTS[24]) is set.
  922. * | | |0 = TXBEIF (EMAC_INTSTS[24]) trigger TX interrupt Disabled.
  923. * | | |1 = TXBEIF (EMAC_INTSTS[24]) trigger TX interrupt Enabled.
  924. * |[28] |TSALMIEN |Time Stamp Alarm Interrupt Enable Bit
  925. * | | |The TSALMIEN controls the TSALMIF (EMAC_INTSTS[28]) interrupt generation
  926. * | | |If TSALMIF (EMAC_INTSTS[28]) is set, and both TSALMIEN and TXIEN (EMAC_INTEN[16]) enabled, the
  927. * | | |EMAC generates the TX interrupt to CPU
  928. * | | |If TSALMIEN or TXIEN (EMAC_INTEN[16]) disabled, no TX interrupt generated to CPU even the
  929. * | | |TXTSALMIF (EMAC_INTEN[28]) is set.
  930. * | | |0 = TXTSALMIF (EMAC_INTSTS[28]) trigger TX interrupt Disabled.
  931. * | | |1 = TXTSALMIF (EMAC_INTSTS[28]) trigger TX interrupt Enabled.
  932. * @var EMAC_T::INTSTS
  933. * Offset: 0xB0 MAC Interrupt Status Register
  934. * ---------------------------------------------------------------------------------------------------
  935. * |Bits |Field |Descriptions
  936. * | :----: | :----: | :---- |
  937. * |[0] |RXIF |Receive Interrupt
  938. * | | |The RXIF indicates the RX interrupt status.
  939. * | | |If RXIF high and its corresponding enable bit, RXIEN (EMAC_INTEN[0]), is also high indicates
  940. * | | |the EMAC generates RX interrupt to CPU
  941. * | | |If RXIF is high but RXIEN (EMAC_INTEN[0]) is disabled, no RX interrupt is generated.
  942. * | | |The RXIF is logic OR result of bit logic AND result of EMAC_INTSTS[15:1] and EMAC_INTEN[15:1]
  943. * | | |In other words, if any bit of EMAC_INTSTS[15:1] is high and its corresponding enable bit in
  944. * | | |EMAC_INTEN[15:1] is also enabled, the RXIF will be high.
  945. * | | |Because the RXIF is a logic OR result, clears EMAC_INTSTS[15:1] makes RXIF be cleared, too.
  946. * | | |0 = No status bit in EMAC_INTSTS[15:1] is set or no enable bit in EMAC_INTEN[15:1] is enabled.
  947. * | | |1 = At least one status in EMAC_INTSTS[15:1] is set and its corresponding enable bit in
  948. * | | |EMAC_INTEN[15:1] is enabled, too.
  949. * |[1] |CRCEIF |CRC Error Interrupt
  950. * | | |The CRCEIF high indicates the incoming packet incurred the CRC error and the packet is dropped
  951. * | | |If the AEP (EMAC_CTL[4]) is set, the CRC error packet will be regarded as a good packet and
  952. * | | |CRCEIF will not be set.
  953. * | | |If the CRCEIF is high and CRCEIEN (EMAC_INTEN[1]) is enabled, the RXIF will be high
  954. * | | |Write 1 to this bit clears the CRCEIF status.
  955. * | | |0 = The frame does not incur CRC error.
  956. * | | |1 = The frame incurred CRC error.
  957. * |[2] |RXOVIF |Receive FIFO Overflow Interrupt
  958. * | | |The RXOVIF high indicates the RXFIFO overflow occurred during packet reception
  959. * | | |While the RXFIFO overflow occurred, the EMAC drops the current receiving packer
  960. * | | |If the RXFIFO overflow occurred often, it is recommended that modify RXFIFO threshold control,
  961. * | | |the RXFIFOTH of FFTCR register, to higher level.
  962. * | | |If the RXOVIF is high and RXOVIEN (EMAC_INTEN[2]) is enabled, the RXIF will be high
  963. * | | |Write 1 to this bit clears the RXOVIF status.
  964. * | | |0 = No RXFIFO overflow occurred during packet reception.
  965. * | | |1 = RXFIFO overflow occurred during packet reception.
  966. * |[3] |LPIF |Long Packet Interrupt Flag
  967. * | | |The LPIF high indicates the length of the incoming packet is greater than 1518 bytes and the
  968. * | | |incoming packet is dropped
  969. * | | |If the ALP (EMAC_CTL[1]) is set, the long packet will be regarded as a good packet and LPIF will not be set.
  970. * | | |If the LPIF is high and LPIEN (EMAC_INTEN[3]) is enabled, the RXIF will be high
  971. * | | |Write 1 to this bit clears the LPIF status.
  972. * | | |0 = The incoming frame is not a long frame or S/W wants to receive a long frame.
  973. * | | |1 = The incoming frame is a long frame and dropped.
  974. * |[4] |RXGDIF |Receive Good Interrupt
  975. * | | |The RXGDIF high indicates the frame reception has completed.
  976. * | | |If the RXGDIF is high and RXGDIEN (EAMC_MIEN[4]) is enabled, the RXIF will be high
  977. * | | |Write 1 to this bit clears the RXGDIF status.
  978. * | | |0 = The frame reception has not complete yet.
  979. * | | |1 = The frame reception has completed.
  980. * |[5] |ALIEIF |Alignment Error Interrupt
  981. * | | |The ALIEIF high indicates the length of the incoming frame is not a multiple of byte
  982. * | | |If the ALIEIF is high and ALIEIEN (EMAC_INTEN[5]) is enabled, the RXIF will be high
  983. * | | |Write 1 to this bit clears the ALIEIF status.
  984. * | | |0 = The frame length is a multiple of byte.
  985. * | | |1 = The frame length is not a multiple of byte.
  986. * |[6] |RPIF |Runt Packet Interrupt
  987. * | | |The RPIF high indicates the length of the incoming packet is less than 64 bytes and the packet is dropped
  988. * | | |If the ARP (EMAC_CTL[2]) is set, the short packet is regarded as a good packet and RPIF will not be set.
  989. * | | |If the RPIF is high and RPIEN (EMAC_INTEN[6]) is enabled, the RXIF will be high
  990. * | | |Write 1 to this bit clears the RPIF status.
  991. * | | |0 = The incoming frame is not a short frame or S/W wants to receive a short frame.
  992. * | | |1 = The incoming frame is a short frame and dropped.
  993. * |[7] |MPCOVIF |Missed Packet Counter Overrun Interrupt Flag
  994. * | | |The MPCOVIF high indicates the MPCNT, Missed Packet Count, has overflow
  995. * | | |If the MPCOVIF is high and MPCOVIEN (EMAC_INTEN[7]) is enabled, the RXIF will be high
  996. * | | |Write 1 to this bit clears the MPCOVIF status.
  997. * | | |0 = The MPCNT has not rolled over yet.
  998. * | | |1 = The MPCNT has rolled over yet.
  999. * |[8] |MFLEIF |Maximum Frame Length Exceed Interrupt Flag
  1000. * | | |The MFLEIF high indicates the length of the incoming packet has exceeded the length limitation
  1001. * | | |configured in DMARFC register and the incoming packet is dropped
  1002. * | | |If the MFLEIF is high and MFLEIEN (EMAC_INTEN[8]) is enabled, the RXIF will be high
  1003. * | | |Write 1 to this bit clears the MFLEIF status.
  1004. * | | |0 = The length of the incoming packet does not exceed the length limitation configured in DMARFC.
  1005. * | | |1 = The length of the incoming packet has exceeded the length limitation configured in DMARFC.
  1006. * |[9] |DENIF |DMA Early Notification Interrupt
  1007. * | | |The DENIF high indicates the EMAC has received the LENGTH field of the incoming packet.
  1008. * | | |If the DENIF is high and DENIENI (EMAC_INTEN[9]) is enabled, the RXIF will be high
  1009. * | | |Write 1 to this bit clears the DENIF status.
  1010. * | | |0 = The LENGTH field of incoming packet has not received yet.
  1011. * | | |1 = The LENGTH field of incoming packet has received.
  1012. * |[10] |RDUIF |Receive Descriptor Unavailable Interrupt
  1013. * | | |The RDUIF high indicates that there is no available RX descriptor for packet reception and
  1014. * | | |RXDMA will stay at Halt state
  1015. * | | |Once, the RXDMA enters the Halt state, S/W must issues a write command to RSDR register to
  1016. * | | |make RXDMA leave Halt state while new RX descriptor is available.
  1017. * | | |If the RDUIF is high and RDUIEN (EMAC_INTEN[10]) is enabled, the RXIF will be high
  1018. * | | |Write 1 to this bit clears the RDUIF status.
  1019. * | | |0 = RX descriptor is available.
  1020. * | | |1 = RX descriptor is unavailable.
  1021. * |[11] |RXBEIF |Receive Bus Error Interrupt
  1022. * | | |The RXBEIF high indicates the memory controller replies ERROR response while EMAC access
  1023. * | | |system memory through RXDMA during packet reception process
  1024. * | | |Reset EMAC is recommended while RXBEIF status is high.
  1025. * | | |If the RXBEIF is high and RXBEIEN (EMAC_INTEN[11]) is enabled, the RXIF will be high
  1026. * | | |Write 1 to this bit clears the RXBEIF status.
  1027. * | | |0 = No ERROR response is received.
  1028. * | | |1 = ERROR response is received.
  1029. * |[14] |CFRIF |Control Frame Receive Interrupt
  1030. * | | |The CFRIF high indicates EMAC receives a flow control frame
  1031. * | | |The CFRIF only available while EMAC is operating on full duplex mode.
  1032. * | | |If the CFRIF is high and CFRIEN (EMAC_INTEN[14]) is enabled, the RXIF will be high
  1033. * | | |Write 1 to this bit clears the CFRIF status.
  1034. * | | |0 = The EMAC does not receive the flow control frame.
  1035. * | | |1 = The EMAC receives a flow control frame.
  1036. * |[15] |WOLIF |Wake on LAN Interrupt Flag
  1037. * | | |The WOLIF high indicates EMAC receives a Magic Packet
  1038. * | | |The CFRIF only available while system is in power down mode and WOLEN is set high.
  1039. * | | |If the WOLIF is high and WOLIEN (EMAC_INTEN[15]) is enabled, the RXIF will be high
  1040. * | | |Write 1 to this bit clears the WOLIF status.
  1041. * | | |0 = The EMAC does not receive the Magic Packet.
  1042. * | | |1 = The EMAC receives a Magic Packet.
  1043. * |[16] |TXIF |Transmit Interrupt
  1044. * | | |The TXIF indicates the TX interrupt status.
  1045. * | | |If TXIF high and its corresponding enable bit, TXIEN (EMAC_INTEN[16]), is also high indicates
  1046. * | | |the EMAC generates TX interrupt to CPU
  1047. * | | |If TXIF is high but TXIEN (EMAC_INTEN[16]) is disabled, no TX interrupt is generated.
  1048. * | | |The TXIF is logic OR result of bit logic AND result of EMAC_INTSTS[28:17] and EMAC_INTEN[28:17]
  1049. * | | |In other words, if any bit of EMAC_INTSTS[28:17] is high and its corresponding enable bit
  1050. * | | |in EMAC_INTEN[28:17] is also enabled, the TXIF will be high
  1051. * | | |Because the TXIF is a logic OR result, clears EMAC_INTSTS[28:17] makes TXIF be cleared, too.
  1052. * | | |0 = No status bit in EMAC_INTSTS[28:17] is set or no enable bit in EMAC_INTEN[28:17] is enabled.
  1053. * | | |1 = At least one status in EMAC_INTSTS[28:17] is set and its corresponding enable bit
  1054. * | | |in EMAC_INTEN[28:17] is enabled, too.
  1055. * |[17] |TXUDIF |Transmit FIFO Underflow Interrupt
  1056. * | | |The TXUDIF high indicates the TXFIFO underflow occurred during packet transmission
  1057. * | | |While the TXFIFO underflow occurred, the EMAC will retransmit the packet automatically
  1058. * | | |without S/W intervention
  1059. * | | |If the TXFIFO underflow occurred often, it is recommended that modify TXFIFO threshold control,
  1060. * | | |the TXFIFOTH of FFTCR register, to higher level.
  1061. * | | |If the TXUDIF is high and TXUDIEN (EMAC_INTEN[17]) is enabled, the TXIF will be high
  1062. * | | |Write 1 to this bit clears the TXUDIF status.
  1063. * | | |0 = No TXFIFO underflow occurred during packet transmission.
  1064. * | | |1 = TXFIFO underflow occurred during packet transmission.
  1065. * |[18] |TXCPIF |Transmit Completion Interrupt
  1066. * | | |The TXCPIF indicates the packet transmission has completed correctly.
  1067. * | | |If the TXCPIF is high and TXCPIEN (EMAC_INTEN[18]) is enabled, the TXIF will be high
  1068. * | | |Write 1 to this bit clears the TXCPIF status.
  1069. * | | |0 = The packet transmission not completed.
  1070. * | | |1 = The packet transmission has completed.
  1071. * |[19] |EXDEFIF |Defer Exceed Interrupt
  1072. * | | |The EXDEFIF high indicates the frame waiting for transmission has deferred over 0.32768ms
  1073. * | | |on 100Mbps mode, or 3.2768ms on 10Mbps mode.
  1074. * | | |The deferral exceed check will only be done while bit NODEF of MCMDR is disabled, and EMAC
  1075. * | | |is operating on half-duplex mode.
  1076. * | | |If the EXDEFIF is high and EXDEFIEN (EMAC_INTEN[19]) is enabled, the TXIF will be high
  1077. * | | |Write 1 to this bit clears the EXDEFIF status.
  1078. * | | |0 = Frame waiting for transmission has not deferred over 0.32768ms (100Mbps) or 3.2768ms (10Mbps).
  1079. * | | |1 = Frame waiting for transmission has deferred over 0.32768ms (100Mbps) or 3.2768ms (10Mbps).
  1080. * |[20] |NCSIF |No Carrier Sense Interrupt
  1081. * | | |The NCSIF high indicates the MII I/F signal CRS does not active at the start of or during
  1082. * | | |the packet transmission
  1083. * | | |The NCSIF is only available while EMAC is operating on half-duplex mode
  1084. * | | |If the NCSIF is high and NCSIEN (EMAC_INTEN[20]) is enabled, the TXIF will be high.
  1085. * | | |Write 1 to this bit clears the NCSIF status.
  1086. * | | |0 = CRS signal actives correctly.
  1087. * | | |1 = CRS signal does not active at the start of or during the packet transmission.
  1088. * |[21] |TXABTIF |Transmit Abort Interrupt
  1089. * | | |The TXABTIF high indicates the packet incurred 16 consecutive collisions during transmission,
  1090. * | | |and then the transmission process for this packet is aborted
  1091. * | | |The transmission abort is only available while EMAC is operating on half-duplex mode.
  1092. * | | |If the TXABTIF is high and TXABTIEN (EMAC_INTEN[21]) is enabled, the TXIF will be high
  1093. * | | |Write 1 to this bit clears the TXABTIF status.
  1094. * | | |0 = Packet does not incur 16 consecutive collisions during transmission.
  1095. * | | |1 = Packet incurred 16 consecutive collisions during transmission.
  1096. * |[22] |LCIF |Late Collision Interrupt
  1097. * | | |The LCIF high indicates the collision occurred in the outside of 64 bytes collision window
  1098. * | | |This means after the 64 bytes of a frame has been transmitted out to the network, the collision
  1099. * | | |still occurred.
  1100. * | | |The late collision check will only be done while EMAC is operating on half-duplex mode
  1101. * | | |If the LCIF is high and LCIEN (EMAC_INTEN[22]) is enabled, the TXIF will be high.
  1102. * | | |Write 1 to this bit clears the LCIF status.
  1103. * | | |0 = No collision occurred in the outside of 64 bytes collision window.
  1104. * | | |1 = Collision occurred in the outside of 64 bytes collision window.
  1105. * |[23] |TDUIF |Transmit Descriptor Unavailable Interrupt
  1106. * | | |The TDUIF high indicates that there is no available TX descriptor for packet transmission and
  1107. * | | |TXDMA will stay at Halt state.
  1108. * | | |Once, the TXDMA enters the Halt state, S/W must issues a write command to TSDR register to make
  1109. * | | |TXDMA leave Halt state while new TX descriptor is available.
  1110. * | | |If the TDUIF is high and TDUIEN (EMAC_INTEN[23]) is enabled, the TXIF will be high.
  1111. * | | |Write 1 to this bit clears the TDUIF status.
  1112. * | | |0 = TX descriptor is available.
  1113. * | | |1 = TX descriptor is unavailable.
  1114. * |[24] |TXBEIF |Transmit Bus Error Interrupt
  1115. * | | |The TXBEIF high indicates the memory controller replies ERROR response while EMAC access system
  1116. * | | |memory through TXDMA during packet transmission process
  1117. * | | |Reset EMAC is recommended while TXBEIF status is high.
  1118. * | | |If the TXBEIF is high and TXBEIEN (EMAC_INTEN[24]) is enabled, the TXIF will be high.
  1119. * | | |Write 1 to this bit clears the TXBEIF status.
  1120. * | | |0 = No ERROR response is received.
  1121. * | | |1 = ERROR response is received.
  1122. * |[28] |TSALMIF |Time Stamp Alarm Interrupt
  1123. * | | |The TSALMIF high indicates the EMAC_TSSEC register value equals to EMAC_ALMSEC register and
  1124. * | | |EMAC_TSSUBSEC register value equals to register EMAC_ALMSUBLSR.
  1125. * | | |If TSALMIF is high and TSALMIEN (EMAC_INTEN[28]) enabled, the TXIF will be high.
  1126. * | | |Write 1 to this bit clears the TSALMIF status.
  1127. * | | |0 = EMAC_TSSEC did not equal EMAC_ALMSEC or EMAC_TSSUBSEC did not equal EMAC_ALMSUBSEC.
  1128. * | | |1 = EMAC_TSSEC equals EMAC_ALMSEC and EMAC_TSSUBSEC equals EMAC_ALMSUBSEC.
  1129. * @var EMAC_T::GENSTS
  1130. * Offset: 0xB4 MAC General Status Register
  1131. * ---------------------------------------------------------------------------------------------------
  1132. * |Bits |Field |Descriptions
  1133. * | :----: | :----: | :---- |
  1134. * |[0] |CFR |Control Frame Received
  1135. * | | |The CFRIF high indicates EMAC receives a flow control frame
  1136. * | | |The CFRIF only available while EMAC is operating on full duplex mode.
  1137. * | | |0 = The EMAC does not receive the flow control frame.
  1138. * | | |1 = The EMAC receives a flow control frame.
  1139. * |[1] |RXHALT |Receive Halted
  1140. * | | |The RXHALT high indicates the next normal packet reception process will be halted because
  1141. * | | |the bit RXON of MCMDR is disabled be S/W.
  1142. * | | |0 = Next normal packet reception process will go on.
  1143. * | | |1 = Next normal packet reception process will be halted.
  1144. * |[2] |RXFFULL |RXFIFO Full
  1145. * | | |The RXFFULL indicates the RXFIFO is full due to four 64-byte packets are kept in RXFIFO
  1146. * | | |and the following incoming packet will be dropped.
  1147. * | | |0 = The RXFIFO is not full.
  1148. * | | |1 = The RXFIFO is full and the following incoming packet will be dropped.
  1149. * |[7:4] |COLCNT |Collision Count
  1150. * | | |The COLCNT indicates that how many collisions occurred consecutively during a packet transmission
  1151. * | | |If the packet incurred 16 consecutive collisions during transmission, the COLCNT will be
  1152. * | | |0 and bit TXABTIF will be set to 1.
  1153. * |[8] |DEF |Deferred Transmission
  1154. * | | |The DEF high indicates the packet transmission has deferred once
  1155. * | | |The DEF is only available while EMAC is operating on half-duplex mode.
  1156. * | | |0 = Packet transmission does not defer.
  1157. * | | |1 = Packet transmission has deferred once.
  1158. * |[9] |TXPAUSED |Transmission Paused
  1159. * | | |The TXPAUSED high indicates the next normal packet transmission process will be paused temporally
  1160. * | | |because EMAC received a PAUSE control frame.
  1161. * | | |0 = Next normal packet transmission process will go on.
  1162. * | | |1 = Next normal packet transmission process will be paused.
  1163. * |[10] |SQE |Signal Quality Error
  1164. * | | |The SQE high indicates the SQE error found at end of packet transmission on 10Mbps half-duplex mode
  1165. * | | |The SQE error check will only be done while both bit SQECHKEN (EMAC_CTL[17]) is enabled and EMAC
  1166. * | | |is operating on 10Mbps half-duplex mode.
  1167. * | | |0 = No SQE error found at end of packet transmission.
  1168. * | | |1 = SQE error found at end of packet transmission.
  1169. * |[11] |TXHALT |Transmission Halted
  1170. * | | |The TXHALT high indicates the next normal packet transmission process will be halted because
  1171. * | | |the bit TXON (EMAC_CTL[8]) is disabled be S/W.
  1172. * | | |0 = Next normal packet transmission process will go on.
  1173. * | | |1 = Next normal packet transmission process will be halted.
  1174. * |[12] |RPSTS |Remote Pause Status
  1175. * | | |The RPSTS indicates that remote pause counter down counting actives.
  1176. * | | |After Ethernet MAC controller sent PAUSE frame out successfully, it starts the remote pause
  1177. * | | |counter down counting
  1178. * | | |When this bit high, it's predictable that remote Ethernet MAC controller wouldn't start the packet
  1179. * | | |transmission until the down counting done.
  1180. * | | |0 = Remote pause counter down counting done.
  1181. * | | |1 = Remote pause counter down counting actives.
  1182. * @var EMAC_T::MPCNT
  1183. * Offset: 0xB8 Missed Packet Count Register
  1184. * ---------------------------------------------------------------------------------------------------
  1185. * |Bits |Field |Descriptions
  1186. * | :----: | :----: | :---- |
  1187. * |[15:0] |MPCNT |Miss Packet Count
  1188. * | | |The MPCNT indicates the number of packets that were dropped due to various types of receive errors
  1189. * | | |The following type of receiving error makes missed packet counter increase:
  1190. * | | |1. Incoming packet is incurred RXFIFO overflow.
  1191. * | | |2. Incoming packet is dropped due to RXON is disabled.
  1192. * | | |3. Incoming packet is incurred CRC error.
  1193. * @var EMAC_T::RPCNT
  1194. * Offset: 0xBC MAC Receive Pause Count Register
  1195. * ---------------------------------------------------------------------------------------------------
  1196. * |Bits |Field |Descriptions
  1197. * | :----: | :----: | :---- |
  1198. * |[15:0] |RPCNT |MAC Receive Pause Count
  1199. * | | |The RPCNT keeps the OPERAND field of the PAUSE control frame
  1200. * | | |It indicates how many slot time (512 bit time) the TX of EMAC will be paused.
  1201. * @var EMAC_T::FRSTS
  1202. * Offset: 0xC8 DMA Receive Frame Status Register
  1203. * ---------------------------------------------------------------------------------------------------
  1204. * |Bits |Field |Descriptions
  1205. * | :----: | :----: | :---- |
  1206. * |[15:0] |RXFLT |Receive Frame LENGTH
  1207. * | | |The RXFLT keeps the LENGTH field of each incoming Ethernet packet
  1208. * | | |If the bit DENIEN (EMAC_INTEN[9]) is enabled and the LENGTH field of incoming packet has
  1209. * | | |received, the bit DENIF (EMAC_INTSTS[9]) will be set and trigger interrupt.
  1210. * | | |And, the content of LENGTH field will be stored in RXFLT.
  1211. * @var EMAC_T::CTXDSA
  1212. * Offset: 0xCC Current Transmit Descriptor Start Address Register
  1213. * ---------------------------------------------------------------------------------------------------
  1214. * |Bits |Field |Descriptions
  1215. * | :----: | :----: | :---- |
  1216. * |[31:0] |CTXDSA |Current Transmit Descriptor Start Address
  1217. * | | |The CTXDSA keeps the start address of TX descriptor that is used by TXDMA currently
  1218. * | | |The CTXDSA is read only and write to this register has no effect.
  1219. * @var EMAC_T::CTXBSA
  1220. * Offset: 0xD0 Current Transmit Buffer Start Address Register
  1221. * ---------------------------------------------------------------------------------------------------
  1222. * |Bits |Field |Descriptions
  1223. * | :----: | :----: | :---- |
  1224. * |[31:0] |CTXBSA |Current Transmit Buffer Start Address
  1225. * | | |The CTXDSA keeps the start address of TX frame buffer that is used by TXDMA currently
  1226. * | | |The CTXBSA is read only and write to this register has no effect.
  1227. * @var EMAC_T::CRXDSA
  1228. * Offset: 0xD4 Current Receive Descriptor Start Address Register
  1229. * ---------------------------------------------------------------------------------------------------
  1230. * |Bits |Field |Descriptions
  1231. * | :----: | :----: | :---- |
  1232. * |[31:0] |CRXDSA |Current Receive Descriptor Start Address
  1233. * | | |The CRXDSA keeps the start address of RX descriptor that is used by RXDMA currently
  1234. * | | |The CRXDSA is read only and write to this register has no effect.
  1235. * @var EMAC_T::CRXBSA
  1236. * Offset: 0xD8 Current Receive Buffer Start Address Register
  1237. * ---------------------------------------------------------------------------------------------------
  1238. * |Bits |Field |Descriptions
  1239. * | :----: | :----: | :---- |
  1240. * |[31:0] |CRXBSA |Current Receive Buffer Start Address
  1241. * | | |The CRXBSA keeps the start address of RX frame buffer that is used by RXDMA currently
  1242. * | | |The CRXBSA is read only and write to this register has no effect.
  1243. * @var EMAC_T::TSCTL
  1244. * Offset: 0x100 Time Stamp Control Register
  1245. * ---------------------------------------------------------------------------------------------------
  1246. * |Bits |Field |Descriptions
  1247. * | :----: | :----: | :---- |
  1248. * |[0] |TSEN |Time Stamp Function Enable Bit
  1249. * | | |This bit controls if the IEEE 1588 PTP time stamp function is enabled or not.
  1250. * | | |Set this bit high to enable IEEE 1588 PTP time stamp function while set this bit low
  1251. * | | |to disable IEEE 1588 PTP time stamp function.
  1252. * | | |0 = I EEE 1588 PTP time stamp function Disabled.
  1253. * | | |1 = IEEE 1588 PTP time stamp function Enabled.
  1254. * |[1] |TSIEN |Time Stamp Counter Initialization Enable Bit
  1255. * | | |Set this bit high enables Ethernet MAC controller to load value of register EMAC_UPDSEC
  1256. * | | |and EMAC_UPDSUBSEC to PTP time stamp counter.
  1257. * | | |After the load operation finished, Ethernet MAC controller clear this bit to low automatically.
  1258. * | | |0 = Time stamp counter initialization done.
  1259. * | | |1 = Time stamp counter initialization Enabled.
  1260. * |[2] |TSMODE |Time Stamp Fine Update Enable Bit
  1261. * | | |This bit chooses the time stamp counter update mode.
  1262. * | | |0 = Time stamp counter is in coarse update mode.
  1263. * | | |1 = Time stamp counter is in fine update mode.
  1264. * |[3] |TSUPDATE |Time Stamp Counter Time Update Enable Bit
  1265. * | | |Set this bit high enables Ethernet MAC controller to add value of register EMAC_UPDSEC and
  1266. * | | |EMAC_UPDSUBSEC to PTP time stamp counter.
  1267. * | | |After the add operation finished, Ethernet MAC controller clear this bit to low automatically.
  1268. * | | |0 = No action.
  1269. * | | |1 = EMAC_UPDSEC updated to EMAC_TSSEC and EMAC_UPDSUBSEC updated to EMAC_TSSUBSEC.
  1270. * |[5] |TSALMEN |Time Stamp Alarm Enable Bit
  1271. * | | |Set this bit high enable Ethernet MAC controller to set TSALMIF (EMAC_INTSTS[28]) high when
  1272. * | | |EMAC_TSSEC equals to EMAC_ALMSEC and EMAC_TSSUBSEC equals to EMAC_ALMSUBSEC.
  1273. * | | |0 = Alarm disabled when EMAC_TSSEC equals to EMAC_ALMSEC and EMAC_TSSUBSEC equals to EMAC_ALMSUBSEC.
  1274. * | | |1 = Alarm enabled when EMAC_TSSEC equals to EMAC_ALMSEC and EMAC_TSSUBSEC equals to EMAC_ALMSUBSEC.
  1275. * @var EMAC_T::TSSEC
  1276. * Offset: 0x110 Time Stamp Counter Second Register
  1277. * ---------------------------------------------------------------------------------------------------
  1278. * |Bits |Field |Descriptions
  1279. * | :----: | :----: | :---- |
  1280. * |[31:0] |SEC |Time Stamp Counter Second
  1281. * | | |This register reflects the bit [63:32] value of 64-bit reference timing counter
  1282. * | | |This 32-bit value is used as the second part of time stamp when TSEN (EMAC_TSCTL[0]) is high.
  1283. * @var EMAC_T::TSSUBSEC
  1284. * Offset: 0x114 Time Stamp Counter Sub Second Register
  1285. * ---------------------------------------------------------------------------------------------------
  1286. * |Bits |Field |Descriptions
  1287. * | :----: | :----: | :---- |
  1288. * |[31:0] |SUBSEC |Time Stamp Counter Sub-second
  1289. * | | |This register reflects the bit [31:0] value of 64-bit reference timing counter
  1290. * | | |This 32-bit value is used as the sub-second part of time stamp when TSEN (EMAC_TSCTL[0]) is high.
  1291. * @var EMAC_T::TSINC
  1292. * Offset: 0x118 Time Stamp Increment Register
  1293. * ---------------------------------------------------------------------------------------------------
  1294. * |Bits |Field |Descriptions
  1295. * | :----: | :----: | :---- |
  1296. * |[7:0] |CNTINC |Time Stamp Counter Increment
  1297. * | | |Time stamp counter increment value.
  1298. * | | |If TSEN (EMAC_TSCTL[0]) is high, EMAC adds EMAC_TSSUBSEC with this 8-bit value every
  1299. * | | |time when it wants to increase the EMAC_TSSUBSEC value.
  1300. * @var EMAC_T::TSADDEND
  1301. * Offset: 0x11C Time Stamp Addend Register
  1302. * ---------------------------------------------------------------------------------------------------
  1303. * |Bits |Field |Descriptions
  1304. * | :----: | :----: | :---- |
  1305. * |[31:0] |ADDEND |Time Stamp Counter Addend
  1306. * | | |This register keeps a 32-bit value for accumulator to enable increment of EMAC_TSSUBSEC.
  1307. * | | |If TSEN (EMAC_TSCTL[0]) and TSMODE (EMAC_TSCTL[2]) are both high, EMAC increases accumulator
  1308. * | | |with this 32-bit value in each HCLK
  1309. * | | |Once the accumulator is overflow, it generates a enable to increase EMAC_TSSUBSEC with an 8-bit
  1310. * | | |value kept in register EMAC_TSINC.
  1311. * @var EMAC_T::UPDSEC
  1312. * Offset: 0x120 Time Stamp Update Second Register
  1313. * ---------------------------------------------------------------------------------------------------
  1314. * |Bits |Field |Descriptions
  1315. * | :----: | :----: | :---- |
  1316. * |[31:0] |SEC |Time Stamp Counter Second Update
  1317. * | | |When TSIEN (EMAC_TSCTL[1]) is high
  1318. * | | |EMAC loads this 32-bit value to EMAC_TSSEC directly
  1319. * | | |When TSUPDATE (EMAC_TSCTL[3]) is high, EMAC increases EMAC_TSSEC with this 32-bit value.
  1320. * @var EMAC_T::UPDSUBSEC
  1321. * Offset: 0x124 Time Stamp Update Sub Second Register
  1322. * ---------------------------------------------------------------------------------------------------
  1323. * |Bits |Field |Descriptions
  1324. * | :----: | :----: | :---- |
  1325. * |[31:0] |SUBSEC |Time Stamp Counter Sub-second Update
  1326. * | | |When TSIEN (EMAC_TSCTL[1]) is high
  1327. * | | |EMAC loads this 32-bit value to EMAC_TSSUBSEC directly
  1328. * | | |When TSUPDATE (EMAC_TSCTL[3]) is high, EMAC increases EMAC_TSSUBSEC with this 32-bit value.
  1329. * @var EMAC_T::ALMSEC
  1330. * Offset: 0x128 Time Stamp Alarm Second Register
  1331. * ---------------------------------------------------------------------------------------------------
  1332. * |Bits |Field |Descriptions
  1333. * | :----: | :----: | :---- |
  1334. * |[31:0] |SEC |Time Stamp Counter Second Alarm
  1335. * | | |Time stamp counter second part alarm value.
  1336. * | | |This value is only useful when ALMEN (EMAC_TSCTL[5]) high
  1337. * | | |If ALMEN (EMAC_TSCTL[5]) is high, EMAC_TSSEC equals to EMAC_ALMSEC and EMAC_TSSUBSEC equals to
  1338. * | | |EMAC_ALMSUBSEC, Ethernet MAC controller set TSALMIF (EMAC_INTSTS[28]) high.
  1339. * @var EMAC_T::ALMSUBSEC
  1340. * Offset: 0x12C Time Stamp Alarm Sub Second Register
  1341. * ---------------------------------------------------------------------------------------------------
  1342. * |Bits |Field |Descriptions
  1343. * | :----: | :----: | :---- |
  1344. * |[31:0] |SUBSEC |Time Stamp Counter Sub-second Alarm
  1345. * | | |Time stamp counter sub-second part alarm value.
  1346. * | | |This value is only useful when ALMEN (EMAC_TSCTL[5]) high
  1347. * | | |If ALMEN (EMAC_TSCTL[5]) is high, EMAC_TSSEC equals to EMAC_ALMSEC and EMAC_TSSUBSEC equals to
  1348. * | | |EMAC_ALMSUBSEC, Ethernet MAC controller set TSALMIF (EMAC_INTSTS[28]) high.
  1349. */
  1350. __IO uint32_t CAMCTL; /*!< [0x0000] CAM Comparison Control Register */
  1351. __IO uint32_t CAMEN; /*!< [0x0004] CAM Enable Register */
  1352. __IO uint32_t CAM0M; /*!< [0x0008] CAM0 Most Significant Word Register */
  1353. __IO uint32_t CAM0L; /*!< [0x000c] CAM0 Least Significant Word Register */
  1354. __IO uint32_t CAM1M; /*!< [0x0010] CAM1 Most Significant Word Register */
  1355. __IO uint32_t CAM1L; /*!< [0x0014] CAM1 Least Significant Word Register */
  1356. __IO uint32_t CAM2M; /*!< [0x0018] CAM2 Most Significant Word Register */
  1357. __IO uint32_t CAM2L; /*!< [0x001c] CAM2 Least Significant Word Register */
  1358. __IO uint32_t CAM3M; /*!< [0x0020] CAM3 Most Significant Word Register */
  1359. __IO uint32_t CAM3L; /*!< [0x0024] CAM3 Least Significant Word Register */
  1360. __IO uint32_t CAM4M; /*!< [0x0028] CAM4 Most Significant Word Register */
  1361. __IO uint32_t CAM4L; /*!< [0x002c] CAM4 Least Significant Word Register */
  1362. __IO uint32_t CAM5M; /*!< [0x0030] CAM5 Most Significant Word Register */
  1363. __IO uint32_t CAM5L; /*!< [0x0034] CAM5 Least Significant Word Register */
  1364. __IO uint32_t CAM6M; /*!< [0x0038] CAM6 Most Significant Word Register */
  1365. __IO uint32_t CAM6L; /*!< [0x003c] CAM6 Least Significant Word Register */
  1366. __IO uint32_t CAM7M; /*!< [0x0040] CAM7 Most Significant Word Register */
  1367. __IO uint32_t CAM7L; /*!< [0x0044] CAM7 Least Significant Word Register */
  1368. __IO uint32_t CAM8M; /*!< [0x0048] CAM8 Most Significant Word Register */
  1369. __IO uint32_t CAM8L; /*!< [0x004c] CAM8 Least Significant Word Register */
  1370. __IO uint32_t CAM9M; /*!< [0x0050] CAM9 Most Significant Word Register */
  1371. __IO uint32_t CAM9L; /*!< [0x0054] CAM9 Least Significant Word Register */
  1372. __IO uint32_t CAM10M; /*!< [0x0058] CAM10 Most Significant Word Register */
  1373. __IO uint32_t CAM10L; /*!< [0x005c] CAM10 Least Significant Word Register */
  1374. __IO uint32_t CAM11M; /*!< [0x0060] CAM11 Most Significant Word Register */
  1375. __IO uint32_t CAM11L; /*!< [0x0064] CAM11 Least Significant Word Register */
  1376. __IO uint32_t CAM12M; /*!< [0x0068] CAM12 Most Significant Word Register */
  1377. __IO uint32_t CAM12L; /*!< [0x006c] CAM12 Least Significant Word Register */
  1378. __IO uint32_t CAM13M; /*!< [0x0070] CAM13 Most Significant Word Register */
  1379. __IO uint32_t CAM13L; /*!< [0x0074] CAM13 Least Significant Word Register */
  1380. __IO uint32_t CAM14M; /*!< [0x0078] CAM14 Most Significant Word Register */
  1381. __IO uint32_t CAM14L; /*!< [0x007c] CAM14 Least Significant Word Register */
  1382. __IO uint32_t CAM15MSB; /*!< [0x0080] CAM15 Most Significant Word Register */
  1383. __IO uint32_t CAM15LSB; /*!< [0x0084] CAM15 Least Significant Word Register */
  1384. __IO uint32_t TXDSA; /*!< [0x0088] Transmit Descriptor Link List Start Address Register */
  1385. __IO uint32_t RXDSA; /*!< [0x008c] Receive Descriptor Link List Start Address Register */
  1386. __IO uint32_t CTL; /*!< [0x0090] MAC Control Register */
  1387. __IO uint32_t MIIMDAT; /*!< [0x0094] MII Management Data Register */
  1388. __IO uint32_t MIIMCTL; /*!< [0x0098] MII Management Control and Address Register */
  1389. __IO uint32_t FIFOCTL; /*!< [0x009c] FIFO Threshold Control Register */
  1390. __O uint32_t TXST; /*!< [0x00a0] Transmit Start Demand Register */
  1391. __O uint32_t RXST; /*!< [0x00a4] Receive Start Demand Register */
  1392. __IO uint32_t MRFL; /*!< [0x00a8] Maximum Receive Frame Control Register */
  1393. __IO uint32_t INTEN; /*!< [0x00ac] MAC Interrupt Enable Register */
  1394. __IO uint32_t INTSTS; /*!< [0x00b0] MAC Interrupt Status Register */
  1395. __IO uint32_t GENSTS; /*!< [0x00b4] MAC General Status Register */
  1396. __IO uint32_t MPCNT; /*!< [0x00b8] Missed Packet Count Register */
  1397. __I uint32_t RPCNT; /*!< [0x00bc] MAC Receive Pause Count Register */
  1398. /** @cond HIDDEN_SYMBOLS */
  1399. __I uint32_t RESERVE0[2];
  1400. /** @endcond */
  1401. __IO uint32_t FRSTS; /*!< [0x00c8] DMA Receive Frame Status Register */
  1402. __I uint32_t CTXDSA; /*!< [0x00cc] Current Transmit Descriptor Start Address Register */
  1403. __I uint32_t CTXBSA; /*!< [0x00d0] Current Transmit Buffer Start Address Register */
  1404. __I uint32_t CRXDSA; /*!< [0x00d4] Current Receive Descriptor Start Address Register */
  1405. __I uint32_t CRXBSA; /*!< [0x00d8] Current Receive Buffer Start Address Register */
  1406. /** @cond HIDDEN_SYMBOLS */
  1407. __I uint32_t RESERVE1[9];
  1408. /** @endcond */
  1409. __IO uint32_t TSCTL; /*!< [0x0100] Time Stamp Control Register */
  1410. /** @cond HIDDEN_SYMBOLS */
  1411. __I uint32_t RESERVE2[3];
  1412. /** @endcond */
  1413. __I uint32_t TSSEC; /*!< [0x0110] Time Stamp Counter Second Register */
  1414. __I uint32_t TSSUBSEC; /*!< [0x0114] Time Stamp Counter Sub Second Register */
  1415. __IO uint32_t TSINC; /*!< [0x0118] Time Stamp Increment Register */
  1416. __IO uint32_t TSADDEND; /*!< [0x011c] Time Stamp Addend Register */
  1417. __IO uint32_t UPDSEC; /*!< [0x0120] Time Stamp Update Second Register */
  1418. __IO uint32_t UPDSUBSEC; /*!< [0x0124] Time Stamp Update Sub Second Register */
  1419. __IO uint32_t ALMSEC; /*!< [0x0128] Time Stamp Alarm Second Register */
  1420. __IO uint32_t ALMSUBSEC; /*!< [0x012c] Time Stamp Alarm Sub Second Register */
  1421. } EMAC_T;
  1422. /**
  1423. @addtogroup EMAC_CONST EMAC Bit Field Definition
  1424. Constant Definitions for EMAC Controller
  1425. @{ */
  1426. #define EMAC_CAMCTL_AUP_Pos (0) /*!< EMAC_T::CAMCTL: AUP Position */
  1427. #define EMAC_CAMCTL_AUP_Msk (0x1ul << EMAC_CAMCTL_AUP_Pos) /*!< EMAC_T::CAMCTL: AUP Mask */
  1428. #define EMAC_CAMCTL_AMP_Pos (1) /*!< EMAC_T::CAMCTL: AMP Position */
  1429. #define EMAC_CAMCTL_AMP_Msk (0x1ul << EMAC_CAMCTL_AMP_Pos) /*!< EMAC_T::CAMCTL: AMP Mask */
  1430. #define EMAC_CAMCTL_ABP_Pos (2) /*!< EMAC_T::CAMCTL: ABP Position */
  1431. #define EMAC_CAMCTL_ABP_Msk (0x1ul << EMAC_CAMCTL_ABP_Pos) /*!< EMAC_T::CAMCTL: ABP Mask */
  1432. #define EMAC_CAMCTL_COMPEN_Pos (3) /*!< EMAC_T::CAMCTL: COMPEN Position */
  1433. #define EMAC_CAMCTL_COMPEN_Msk (0x1ul << EMAC_CAMCTL_COMPEN_Pos) /*!< EMAC_T::CAMCTL: COMPEN Mask */
  1434. #define EMAC_CAMCTL_CMPEN_Pos (4) /*!< EMAC_T::CAMCTL: CMPEN Position */
  1435. #define EMAC_CAMCTL_CMPEN_Msk (0x1ul << EMAC_CAMCTL_CMPEN_Pos) /*!< EMAC_T::CAMCTL: CMPEN Mask */
  1436. #define EMAC_CAMEN_CAMxEN_Pos (0) /*!< EMAC_T::CAMEN: CAMxEN Position */
  1437. #define EMAC_CAMEN_CAMxEN_Msk (0x1ul << EMAC_CAMEN_CAMxEN_Pos) /*!< EMAC_T::CAMEN: CAMxEN Mask */
  1438. #define EMAC_CAM0M_MACADDR2_Pos (0) /*!< EMAC_T::CAM0M: MACADDR2 Position */
  1439. #define EMAC_CAM0M_MACADDR2_Msk (0xfful << EMAC_CAM0M_MACADDR2_Pos) /*!< EMAC_T::CAM0M: MACADDR2 Mask */
  1440. #define EMAC_CAM0M_MACADDR3_Pos (8) /*!< EMAC_T::CAM0M: MACADDR3 Position */
  1441. #define EMAC_CAM0M_MACADDR3_Msk (0xfful << EMAC_CAM0M_MACADDR3_Pos) /*!< EMAC_T::CAM0M: MACADDR3 Mask */
  1442. #define EMAC_CAM0M_MACADDR4_Pos (16) /*!< EMAC_T::CAM0M: MACADDR4 Position */
  1443. #define EMAC_CAM0M_MACADDR4_Msk (0xfful << EMAC_CAM0M_MACADDR4_Pos) /*!< EMAC_T::CAM0M: MACADDR4 Mask */
  1444. #define EMAC_CAM0M_MACADDR5_Pos (24) /*!< EMAC_T::CAM0M: MACADDR5 Position */
  1445. #define EMAC_CAM0M_MACADDR5_Msk (0xfful << EMAC_CAM0M_MACADDR5_Pos) /*!< EMAC_T::CAM0M: MACADDR5 Mask */
  1446. #define EMAC_CAM0L_MACADDR0_Pos (16) /*!< EMAC_T::CAM0L: MACADDR0 Position */
  1447. #define EMAC_CAM0L_MACADDR0_Msk (0xfful << EMAC_CAM0L_MACADDR0_Pos) /*!< EMAC_T::CAM0L: MACADDR0 Mask */
  1448. #define EMAC_CAM0L_MACADDR1_Pos (24) /*!< EMAC_T::CAM0L: MACADDR1 Position */
  1449. #define EMAC_CAM0L_MACADDR1_Msk (0xfful << EMAC_CAM0L_MACADDR1_Pos) /*!< EMAC_T::CAM0L: MACADDR1 Mask */
  1450. #define EMAC_CAM1M_MACADDR2_Pos (0) /*!< EMAC_T::CAM1M: MACADDR2 Position */
  1451. #define EMAC_CAM1M_MACADDR2_Msk (0xfful << EMAC_CAM1M_MACADDR2_Pos) /*!< EMAC_T::CAM1M: MACADDR2 Mask */
  1452. #define EMAC_CAM1M_MACADDR3_Pos (8) /*!< EMAC_T::CAM1M: MACADDR3 Position */
  1453. #define EMAC_CAM1M_MACADDR3_Msk (0xfful << EMAC_CAM1M_MACADDR3_Pos) /*!< EMAC_T::CAM1M: MACADDR3 Mask */
  1454. #define EMAC_CAM1M_MACADDR4_Pos (16) /*!< EMAC_T::CAM1M: MACADDR4 Position */
  1455. #define EMAC_CAM1M_MACADDR4_Msk (0xfful << EMAC_CAM1M_MACADDR4_Pos) /*!< EMAC_T::CAM1M: MACADDR4 Mask */
  1456. #define EMAC_CAM1M_MACADDR5_Pos (24) /*!< EMAC_T::CAM1M: MACADDR5 Position */
  1457. #define EMAC_CAM1M_MACADDR5_Msk (0xfful << EMAC_CAM1M_MACADDR5_Pos) /*!< EMAC_T::CAM1M: MACADDR5 Mask */
  1458. #define EMAC_CAM1L_MACADDR0_Pos (16) /*!< EMAC_T::CAM1L: MACADDR0 Position */
  1459. #define EMAC_CAM1L_MACADDR0_Msk (0xfful << EMAC_CAM1L_MACADDR0_Pos) /*!< EMAC_T::CAM1L: MACADDR0 Mask */
  1460. #define EMAC_CAM1L_MACADDR1_Pos (24) /*!< EMAC_T::CAM1L: MACADDR1 Position */
  1461. #define EMAC_CAM1L_MACADDR1_Msk (0xfful << EMAC_CAM1L_MACADDR1_Pos) /*!< EMAC_T::CAM1L: MACADDR1 Mask */
  1462. #define EMAC_CAM2M_MACADDR2_Pos (0) /*!< EMAC_T::CAM2M: MACADDR2 Position */
  1463. #define EMAC_CAM2M_MACADDR2_Msk (0xfful << EMAC_CAM2M_MACADDR2_Pos) /*!< EMAC_T::CAM2M: MACADDR2 Mask */
  1464. #define EMAC_CAM2M_MACADDR3_Pos (8) /*!< EMAC_T::CAM2M: MACADDR3 Position */
  1465. #define EMAC_CAM2M_MACADDR3_Msk (0xfful << EMAC_CAM2M_MACADDR3_Pos) /*!< EMAC_T::CAM2M: MACADDR3 Mask */
  1466. #define EMAC_CAM2M_MACADDR4_Pos (16) /*!< EMAC_T::CAM2M: MACADDR4 Position */
  1467. #define EMAC_CAM2M_MACADDR4_Msk (0xfful << EMAC_CAM2M_MACADDR4_Pos) /*!< EMAC_T::CAM2M: MACADDR4 Mask */
  1468. #define EMAC_CAM2M_MACADDR5_Pos (24) /*!< EMAC_T::CAM2M: MACADDR5 Position */
  1469. #define EMAC_CAM2M_MACADDR5_Msk (0xfful << EMAC_CAM2M_MACADDR5_Pos) /*!< EMAC_T::CAM2M: MACADDR5 Mask */
  1470. #define EMAC_CAM2L_MACADDR0_Pos (16) /*!< EMAC_T::CAM2L: MACADDR0 Position */
  1471. #define EMAC_CAM2L_MACADDR0_Msk (0xfful << EMAC_CAM2L_MACADDR0_Pos) /*!< EMAC_T::CAM2L: MACADDR0 Mask */
  1472. #define EMAC_CAM2L_MACADDR1_Pos (24) /*!< EMAC_T::CAM2L: MACADDR1 Position */
  1473. #define EMAC_CAM2L_MACADDR1_Msk (0xfful << EMAC_CAM2L_MACADDR1_Pos) /*!< EMAC_T::CAM2L: MACADDR1 Mask */
  1474. #define EMAC_CAM3M_MACADDR2_Pos (0) /*!< EMAC_T::CAM3M: MACADDR2 Position */
  1475. #define EMAC_CAM3M_MACADDR2_Msk (0xfful << EMAC_CAM3M_MACADDR2_Pos) /*!< EMAC_T::CAM3M: MACADDR2 Mask */
  1476. #define EMAC_CAM3M_MACADDR3_Pos (8) /*!< EMAC_T::CAM3M: MACADDR3 Position */
  1477. #define EMAC_CAM3M_MACADDR3_Msk (0xfful << EMAC_CAM3M_MACADDR3_Pos) /*!< EMAC_T::CAM3M: MACADDR3 Mask */
  1478. #define EMAC_CAM3M_MACADDR4_Pos (16) /*!< EMAC_T::CAM3M: MACADDR4 Position */
  1479. #define EMAC_CAM3M_MACADDR4_Msk (0xfful << EMAC_CAM3M_MACADDR4_Pos) /*!< EMAC_T::CAM3M: MACADDR4 Mask */
  1480. #define EMAC_CAM3M_MACADDR5_Pos (24) /*!< EMAC_T::CAM3M: MACADDR5 Position */
  1481. #define EMAC_CAM3M_MACADDR5_Msk (0xfful << EMAC_CAM3M_MACADDR5_Pos) /*!< EMAC_T::CAM3M: MACADDR5 Mask */
  1482. #define EMAC_CAM3L_MACADDR0_Pos (16) /*!< EMAC_T::CAM3L: MACADDR0 Position */
  1483. #define EMAC_CAM3L_MACADDR0_Msk (0xfful << EMAC_CAM3L_MACADDR0_Pos) /*!< EMAC_T::CAM3L: MACADDR0 Mask */
  1484. #define EMAC_CAM3L_MACADDR1_Pos (24) /*!< EMAC_T::CAM3L: MACADDR1 Position */
  1485. #define EMAC_CAM3L_MACADDR1_Msk (0xfful << EMAC_CAM3L_MACADDR1_Pos) /*!< EMAC_T::CAM3L: MACADDR1 Mask */
  1486. #define EMAC_CAM4M_MACADDR2_Pos (0) /*!< EMAC_T::CAM4M: MACADDR2 Position */
  1487. #define EMAC_CAM4M_MACADDR2_Msk (0xfful << EMAC_CAM4M_MACADDR2_Pos) /*!< EMAC_T::CAM4M: MACADDR2 Mask */
  1488. #define EMAC_CAM4M_MACADDR3_Pos (8) /*!< EMAC_T::CAM4M: MACADDR3 Position */
  1489. #define EMAC_CAM4M_MACADDR3_Msk (0xfful << EMAC_CAM4M_MACADDR3_Pos) /*!< EMAC_T::CAM4M: MACADDR3 Mask */
  1490. #define EMAC_CAM4M_MACADDR4_Pos (16) /*!< EMAC_T::CAM4M: MACADDR4 Position */
  1491. #define EMAC_CAM4M_MACADDR4_Msk (0xfful << EMAC_CAM4M_MACADDR4_Pos) /*!< EMAC_T::CAM4M: MACADDR4 Mask */
  1492. #define EMAC_CAM4M_MACADDR5_Pos (24) /*!< EMAC_T::CAM4M: MACADDR5 Position */
  1493. #define EMAC_CAM4M_MACADDR5_Msk (0xfful << EMAC_CAM4M_MACADDR5_Pos) /*!< EMAC_T::CAM4M: MACADDR5 Mask */
  1494. #define EMAC_CAM4L_MACADDR0_Pos (16) /*!< EMAC_T::CAM4L: MACADDR0 Position */
  1495. #define EMAC_CAM4L_MACADDR0_Msk (0xfful << EMAC_CAM4L_MACADDR0_Pos) /*!< EMAC_T::CAM4L: MACADDR0 Mask */
  1496. #define EMAC_CAM4L_MACADDR1_Pos (24) /*!< EMAC_T::CAM4L: MACADDR1 Position */
  1497. #define EMAC_CAM4L_MACADDR1_Msk (0xfful << EMAC_CAM4L_MACADDR1_Pos) /*!< EMAC_T::CAM4L: MACADDR1 Mask */
  1498. #define EMAC_CAM5M_MACADDR2_Pos (0) /*!< EMAC_T::CAM5M: MACADDR2 Position */
  1499. #define EMAC_CAM5M_MACADDR2_Msk (0xfful << EMAC_CAM5M_MACADDR2_Pos) /*!< EMAC_T::CAM5M: MACADDR2 Mask */
  1500. #define EMAC_CAM5M_MACADDR3_Pos (8) /*!< EMAC_T::CAM5M: MACADDR3 Position */
  1501. #define EMAC_CAM5M_MACADDR3_Msk (0xfful << EMAC_CAM5M_MACADDR3_Pos) /*!< EMAC_T::CAM5M: MACADDR3 Mask */
  1502. #define EMAC_CAM5M_MACADDR4_Pos (16) /*!< EMAC_T::CAM5M: MACADDR4 Position */
  1503. #define EMAC_CAM5M_MACADDR4_Msk (0xfful << EMAC_CAM5M_MACADDR4_Pos) /*!< EMAC_T::CAM5M: MACADDR4 Mask */
  1504. #define EMAC_CAM5M_MACADDR5_Pos (24) /*!< EMAC_T::CAM5M: MACADDR5 Position */
  1505. #define EMAC_CAM5M_MACADDR5_Msk (0xfful << EMAC_CAM5M_MACADDR5_Pos) /*!< EMAC_T::CAM5M: MACADDR5 Mask */
  1506. #define EMAC_CAM5L_MACADDR0_Pos (16) /*!< EMAC_T::CAM5L: MACADDR0 Position */
  1507. #define EMAC_CAM5L_MACADDR0_Msk (0xfful << EMAC_CAM5L_MACADDR0_Pos) /*!< EMAC_T::CAM5L: MACADDR0 Mask */
  1508. #define EMAC_CAM5L_MACADDR1_Pos (24) /*!< EMAC_T::CAM5L: MACADDR1 Position */
  1509. #define EMAC_CAM5L_MACADDR1_Msk (0xfful << EMAC_CAM5L_MACADDR1_Pos) /*!< EMAC_T::CAM5L: MACADDR1 Mask */
  1510. #define EMAC_CAM6M_MACADDR2_Pos (0) /*!< EMAC_T::CAM6M: MACADDR2 Position */
  1511. #define EMAC_CAM6M_MACADDR2_Msk (0xfful << EMAC_CAM6M_MACADDR2_Pos) /*!< EMAC_T::CAM6M: MACADDR2 Mask */
  1512. #define EMAC_CAM6M_MACADDR3_Pos (8) /*!< EMAC_T::CAM6M: MACADDR3 Position */
  1513. #define EMAC_CAM6M_MACADDR3_Msk (0xfful << EMAC_CAM6M_MACADDR3_Pos) /*!< EMAC_T::CAM6M: MACADDR3 Mask */
  1514. #define EMAC_CAM6M_MACADDR4_Pos (16) /*!< EMAC_T::CAM6M: MACADDR4 Position */
  1515. #define EMAC_CAM6M_MACADDR4_Msk (0xfful << EMAC_CAM6M_MACADDR4_Pos) /*!< EMAC_T::CAM6M: MACADDR4 Mask */
  1516. #define EMAC_CAM6M_MACADDR5_Pos (24) /*!< EMAC_T::CAM6M: MACADDR5 Position */
  1517. #define EMAC_CAM6M_MACADDR5_Msk (0xfful << EMAC_CAM6M_MACADDR5_Pos) /*!< EMAC_T::CAM6M: MACADDR5 Mask */
  1518. #define EMAC_CAM6L_MACADDR0_Pos (16) /*!< EMAC_T::CAM6L: MACADDR0 Position */
  1519. #define EMAC_CAM6L_MACADDR0_Msk (0xfful << EMAC_CAM6L_MACADDR0_Pos) /*!< EMAC_T::CAM6L: MACADDR0 Mask */
  1520. #define EMAC_CAM6L_MACADDR1_Pos (24) /*!< EMAC_T::CAM6L: MACADDR1 Position */
  1521. #define EMAC_CAM6L_MACADDR1_Msk (0xfful << EMAC_CAM6L_MACADDR1_Pos) /*!< EMAC_T::CAM6L: MACADDR1 Mask */
  1522. #define EMAC_CAM7M_MACADDR2_Pos (0) /*!< EMAC_T::CAM7M: MACADDR2 Position */
  1523. #define EMAC_CAM7M_MACADDR2_Msk (0xfful << EMAC_CAM7M_MACADDR2_Pos) /*!< EMAC_T::CAM7M: MACADDR2 Mask */
  1524. #define EMAC_CAM7M_MACADDR3_Pos (8) /*!< EMAC_T::CAM7M: MACADDR3 Position */
  1525. #define EMAC_CAM7M_MACADDR3_Msk (0xfful << EMAC_CAM7M_MACADDR3_Pos) /*!< EMAC_T::CAM7M: MACADDR3 Mask */
  1526. #define EMAC_CAM7M_MACADDR4_Pos (16) /*!< EMAC_T::CAM7M: MACADDR4 Position */
  1527. #define EMAC_CAM7M_MACADDR4_Msk (0xfful << EMAC_CAM7M_MACADDR4_Pos) /*!< EMAC_T::CAM7M: MACADDR4 Mask */
  1528. #define EMAC_CAM7M_MACADDR5_Pos (24) /*!< EMAC_T::CAM7M: MACADDR5 Position */
  1529. #define EMAC_CAM7M_MACADDR5_Msk (0xfful << EMAC_CAM7M_MACADDR5_Pos) /*!< EMAC_T::CAM7M: MACADDR5 Mask */
  1530. #define EMAC_CAM7L_MACADDR0_Pos (16) /*!< EMAC_T::CAM7L: MACADDR0 Position */
  1531. #define EMAC_CAM7L_MACADDR0_Msk (0xfful << EMAC_CAM7L_MACADDR0_Pos) /*!< EMAC_T::CAM7L: MACADDR0 Mask */
  1532. #define EMAC_CAM7L_MACADDR1_Pos (24) /*!< EMAC_T::CAM7L: MACADDR1 Position */
  1533. #define EMAC_CAM7L_MACADDR1_Msk (0xfful << EMAC_CAM7L_MACADDR1_Pos) /*!< EMAC_T::CAM7L: MACADDR1 Mask */
  1534. #define EMAC_CAM8M_MACADDR2_Pos (0) /*!< EMAC_T::CAM8M: MACADDR2 Position */
  1535. #define EMAC_CAM8M_MACADDR2_Msk (0xfful << EMAC_CAM8M_MACADDR2_Pos) /*!< EMAC_T::CAM8M: MACADDR2 Mask */
  1536. #define EMAC_CAM8M_MACADDR3_Pos (8) /*!< EMAC_T::CAM8M: MACADDR3 Position */
  1537. #define EMAC_CAM8M_MACADDR3_Msk (0xfful << EMAC_CAM8M_MACADDR3_Pos) /*!< EMAC_T::CAM8M: MACADDR3 Mask */
  1538. #define EMAC_CAM8M_MACADDR4_Pos (16) /*!< EMAC_T::CAM8M: MACADDR4 Position */
  1539. #define EMAC_CAM8M_MACADDR4_Msk (0xfful << EMAC_CAM8M_MACADDR4_Pos) /*!< EMAC_T::CAM8M: MACADDR4 Mask */
  1540. #define EMAC_CAM8M_MACADDR5_Pos (24) /*!< EMAC_T::CAM8M: MACADDR5 Position */
  1541. #define EMAC_CAM8M_MACADDR5_Msk (0xfful << EMAC_CAM8M_MACADDR5_Pos) /*!< EMAC_T::CAM8M: MACADDR5 Mask */
  1542. #define EMAC_CAM8L_MACADDR0_Pos (16) /*!< EMAC_T::CAM8L: MACADDR0 Position */
  1543. #define EMAC_CAM8L_MACADDR0_Msk (0xfful << EMAC_CAM8L_MACADDR0_Pos) /*!< EMAC_T::CAM8L: MACADDR0 Mask */
  1544. #define EMAC_CAM8L_MACADDR1_Pos (24) /*!< EMAC_T::CAM8L: MACADDR1 Position */
  1545. #define EMAC_CAM8L_MACADDR1_Msk (0xfful << EMAC_CAM8L_MACADDR1_Pos) /*!< EMAC_T::CAM8L: MACADDR1 Mask */
  1546. #define EMAC_CAM9M_MACADDR2_Pos (0) /*!< EMAC_T::CAM9M: MACADDR2 Position */
  1547. #define EMAC_CAM9M_MACADDR2_Msk (0xfful << EMAC_CAM9M_MACADDR2_Pos) /*!< EMAC_T::CAM9M: MACADDR2 Mask */
  1548. #define EMAC_CAM9M_MACADDR3_Pos (8) /*!< EMAC_T::CAM9M: MACADDR3 Position */
  1549. #define EMAC_CAM9M_MACADDR3_Msk (0xfful << EMAC_CAM9M_MACADDR3_Pos) /*!< EMAC_T::CAM9M: MACADDR3 Mask */
  1550. #define EMAC_CAM9M_MACADDR4_Pos (16) /*!< EMAC_T::CAM9M: MACADDR4 Position */
  1551. #define EMAC_CAM9M_MACADDR4_Msk (0xfful << EMAC_CAM9M_MACADDR4_Pos) /*!< EMAC_T::CAM9M: MACADDR4 Mask */
  1552. #define EMAC_CAM9M_MACADDR5_Pos (24) /*!< EMAC_T::CAM9M: MACADDR5 Position */
  1553. #define EMAC_CAM9M_MACADDR5_Msk (0xfful << EMAC_CAM9M_MACADDR5_Pos) /*!< EMAC_T::CAM9M: MACADDR5 Mask */
  1554. #define EMAC_CAM9L_MACADDR0_Pos (16) /*!< EMAC_T::CAM9L: MACADDR0 Position */
  1555. #define EMAC_CAM9L_MACADDR0_Msk (0xfful << EMAC_CAM9L_MACADDR0_Pos) /*!< EMAC_T::CAM9L: MACADDR0 Mask */
  1556. #define EMAC_CAM9L_MACADDR1_Pos (24) /*!< EMAC_T::CAM9L: MACADDR1 Position */
  1557. #define EMAC_CAM9L_MACADDR1_Msk (0xfful << EMAC_CAM9L_MACADDR1_Pos) /*!< EMAC_T::CAM9L: MACADDR1 Mask */
  1558. #define EMAC_CAM10M_MACADDR2_Pos (0) /*!< EMAC_T::CAM10M: MACADDR2 Position */
  1559. #define EMAC_CAM10M_MACADDR2_Msk (0xfful << EMAC_CAM10M_MACADDR2_Pos) /*!< EMAC_T::CAM10M: MACADDR2 Mask */
  1560. #define EMAC_CAM10M_MACADDR3_Pos (8) /*!< EMAC_T::CAM10M: MACADDR3 Position */
  1561. #define EMAC_CAM10M_MACADDR3_Msk (0xfful << EMAC_CAM10M_MACADDR3_Pos) /*!< EMAC_T::CAM10M: MACADDR3 Mask */
  1562. #define EMAC_CAM10M_MACADDR4_Pos (16) /*!< EMAC_T::CAM10M: MACADDR4 Position */
  1563. #define EMAC_CAM10M_MACADDR4_Msk (0xfful << EMAC_CAM10M_MACADDR4_Pos) /*!< EMAC_T::CAM10M: MACADDR4 Mask */
  1564. #define EMAC_CAM10M_MACADDR5_Pos (24) /*!< EMAC_T::CAM10M: MACADDR5 Position */
  1565. #define EMAC_CAM10M_MACADDR5_Msk (0xfful << EMAC_CAM10M_MACADDR5_Pos) /*!< EMAC_T::CAM10M: MACADDR5 Mask */
  1566. #define EMAC_CAM10L_MACADDR0_Pos (16) /*!< EMAC_T::CAM10L: MACADDR0 Position */
  1567. #define EMAC_CAM10L_MACADDR0_Msk (0xfful << EMAC_CAM10L_MACADDR0_Pos) /*!< EMAC_T::CAM10L: MACADDR0 Mask */
  1568. #define EMAC_CAM10L_MACADDR1_Pos (24) /*!< EMAC_T::CAM10L: MACADDR1 Position */
  1569. #define EMAC_CAM10L_MACADDR1_Msk (0xfful << EMAC_CAM10L_MACADDR1_Pos) /*!< EMAC_T::CAM10L: MACADDR1 Mask */
  1570. #define EMAC_CAM11M_MACADDR2_Pos (0) /*!< EMAC_T::CAM11M: MACADDR2 Position */
  1571. #define EMAC_CAM11M_MACADDR2_Msk (0xfful << EMAC_CAM11M_MACADDR2_Pos) /*!< EMAC_T::CAM11M: MACADDR2 Mask */
  1572. #define EMAC_CAM11M_MACADDR3_Pos (8) /*!< EMAC_T::CAM11M: MACADDR3 Position */
  1573. #define EMAC_CAM11M_MACADDR3_Msk (0xfful << EMAC_CAM11M_MACADDR3_Pos) /*!< EMAC_T::CAM11M: MACADDR3 Mask */
  1574. #define EMAC_CAM11M_MACADDR4_Pos (16) /*!< EMAC_T::CAM11M: MACADDR4 Position */
  1575. #define EMAC_CAM11M_MACADDR4_Msk (0xfful << EMAC_CAM11M_MACADDR4_Pos) /*!< EMAC_T::CAM11M: MACADDR4 Mask */
  1576. #define EMAC_CAM11M_MACADDR5_Pos (24) /*!< EMAC_T::CAM11M: MACADDR5 Position */
  1577. #define EMAC_CAM11M_MACADDR5_Msk (0xfful << EMAC_CAM11M_MACADDR5_Pos) /*!< EMAC_T::CAM11M: MACADDR5 Mask */
  1578. #define EMAC_CAM11L_MACADDR0_Pos (16) /*!< EMAC_T::CAM11L: MACADDR0 Position */
  1579. #define EMAC_CAM11L_MACADDR0_Msk (0xfful << EMAC_CAM11L_MACADDR0_Pos) /*!< EMAC_T::CAM11L: MACADDR0 Mask */
  1580. #define EMAC_CAM11L_MACADDR1_Pos (24) /*!< EMAC_T::CAM11L: MACADDR1 Position */
  1581. #define EMAC_CAM11L_MACADDR1_Msk (0xfful << EMAC_CAM11L_MACADDR1_Pos) /*!< EMAC_T::CAM11L: MACADDR1 Mask */
  1582. #define EMAC_CAM12M_MACADDR2_Pos (0) /*!< EMAC_T::CAM12M: MACADDR2 Position */
  1583. #define EMAC_CAM12M_MACADDR2_Msk (0xfful << EMAC_CAM12M_MACADDR2_Pos) /*!< EMAC_T::CAM12M: MACADDR2 Mask */
  1584. #define EMAC_CAM12M_MACADDR3_Pos (8) /*!< EMAC_T::CAM12M: MACADDR3 Position */
  1585. #define EMAC_CAM12M_MACADDR3_Msk (0xfful << EMAC_CAM12M_MACADDR3_Pos) /*!< EMAC_T::CAM12M: MACADDR3 Mask */
  1586. #define EMAC_CAM12M_MACADDR4_Pos (16) /*!< EMAC_T::CAM12M: MACADDR4 Position */
  1587. #define EMAC_CAM12M_MACADDR4_Msk (0xfful << EMAC_CAM12M_MACADDR4_Pos) /*!< EMAC_T::CAM12M: MACADDR4 Mask */
  1588. #define EMAC_CAM12M_MACADDR5_Pos (24) /*!< EMAC_T::CAM12M: MACADDR5 Position */
  1589. #define EMAC_CAM12M_MACADDR5_Msk (0xfful << EMAC_CAM12M_MACADDR5_Pos) /*!< EMAC_T::CAM12M: MACADDR5 Mask */
  1590. #define EMAC_CAM12L_MACADDR0_Pos (16) /*!< EMAC_T::CAM12L: MACADDR0 Position */
  1591. #define EMAC_CAM12L_MACADDR0_Msk (0xfful << EMAC_CAM12L_MACADDR0_Pos) /*!< EMAC_T::CAM12L: MACADDR0 Mask */
  1592. #define EMAC_CAM12L_MACADDR1_Pos (24) /*!< EMAC_T::CAM12L: MACADDR1 Position */
  1593. #define EMAC_CAM12L_MACADDR1_Msk (0xfful << EMAC_CAM12L_MACADDR1_Pos) /*!< EMAC_T::CAM12L: MACADDR1 Mask */
  1594. #define EMAC_CAM13M_MACADDR2_Pos (0) /*!< EMAC_T::CAM13M: MACADDR2 Position */
  1595. #define EMAC_CAM13M_MACADDR2_Msk (0xfful << EMAC_CAM13M_MACADDR2_Pos) /*!< EMAC_T::CAM13M: MACADDR2 Mask */
  1596. #define EMAC_CAM13M_MACADDR3_Pos (8) /*!< EMAC_T::CAM13M: MACADDR3 Position */
  1597. #define EMAC_CAM13M_MACADDR3_Msk (0xfful << EMAC_CAM13M_MACADDR3_Pos) /*!< EMAC_T::CAM13M: MACADDR3 Mask */
  1598. #define EMAC_CAM13M_MACADDR4_Pos (16) /*!< EMAC_T::CAM13M: MACADDR4 Position */
  1599. #define EMAC_CAM13M_MACADDR4_Msk (0xfful << EMAC_CAM13M_MACADDR4_Pos) /*!< EMAC_T::CAM13M: MACADDR4 Mask */
  1600. #define EMAC_CAM13M_MACADDR5_Pos (24) /*!< EMAC_T::CAM13M: MACADDR5 Position */
  1601. #define EMAC_CAM13M_MACADDR5_Msk (0xfful << EMAC_CAM13M_MACADDR5_Pos) /*!< EMAC_T::CAM13M: MACADDR5 Mask */
  1602. #define EMAC_CAM13L_MACADDR0_Pos (16) /*!< EMAC_T::CAM13L: MACADDR0 Position */
  1603. #define EMAC_CAM13L_MACADDR0_Msk (0xfful << EMAC_CAM13L_MACADDR0_Pos) /*!< EMAC_T::CAM13L: MACADDR0 Mask */
  1604. #define EMAC_CAM13L_MACADDR1_Pos (24) /*!< EMAC_T::CAM13L: MACADDR1 Position */
  1605. #define EMAC_CAM13L_MACADDR1_Msk (0xfful << EMAC_CAM13L_MACADDR1_Pos) /*!< EMAC_T::CAM13L: MACADDR1 Mask */
  1606. #define EMAC_CAM14M_MACADDR2_Pos (0) /*!< EMAC_T::CAM14M: MACADDR2 Position */
  1607. #define EMAC_CAM14M_MACADDR2_Msk (0xfful << EMAC_CAM14M_MACADDR2_Pos) /*!< EMAC_T::CAM14M: MACADDR2 Mask */
  1608. #define EMAC_CAM14M_MACADDR3_Pos (8) /*!< EMAC_T::CAM14M: MACADDR3 Position */
  1609. #define EMAC_CAM14M_MACADDR3_Msk (0xfful << EMAC_CAM14M_MACADDR3_Pos) /*!< EMAC_T::CAM14M: MACADDR3 Mask */
  1610. #define EMAC_CAM14M_MACADDR4_Pos (16) /*!< EMAC_T::CAM14M: MACADDR4 Position */
  1611. #define EMAC_CAM14M_MACADDR4_Msk (0xfful << EMAC_CAM14M_MACADDR4_Pos) /*!< EMAC_T::CAM14M: MACADDR4 Mask */
  1612. #define EMAC_CAM14M_MACADDR5_Pos (24) /*!< EMAC_T::CAM14M: MACADDR5 Position */
  1613. #define EMAC_CAM14M_MACADDR5_Msk (0xfful << EMAC_CAM14M_MACADDR5_Pos) /*!< EMAC_T::CAM14M: MACADDR5 Mask */
  1614. #define EMAC_CAM14L_MACADDR0_Pos (16) /*!< EMAC_T::CAM14L: MACADDR0 Position */
  1615. #define EMAC_CAM14L_MACADDR0_Msk (0xfful << EMAC_CAM14L_MACADDR0_Pos) /*!< EMAC_T::CAM14L: MACADDR0 Mask */
  1616. #define EMAC_CAM14L_MACADDR1_Pos (24) /*!< EMAC_T::CAM14L: MACADDR1 Position */
  1617. #define EMAC_CAM14L_MACADDR1_Msk (0xfful << EMAC_CAM14L_MACADDR1_Pos) /*!< EMAC_T::CAM14L: MACADDR1 Mask */
  1618. #define EMAC_CAM15MSB_OPCODE_Pos (0) /*!< EMAC_T::CAM15MSB: OPCODE Position */
  1619. #define EMAC_CAM15MSB_OPCODE_Msk (0xfffful << EMAC_CAM15MSB_OPCODE_Pos) /*!< EMAC_T::CAM15MSB: OPCODE Mask */
  1620. #define EMAC_CAM15MSB_LENGTH_Pos (16) /*!< EMAC_T::CAM15MSB: LENGTH Position */
  1621. #define EMAC_CAM15MSB_LENGTH_Msk (0xfffful << EMAC_CAM15MSB_LENGTH_Pos) /*!< EMAC_T::CAM15MSB: LENGTH Mask */
  1622. #define EMAC_CAM15LSB_OPERAND_Pos (24) /*!< EMAC_T::CAM15LSB: OPERAND Position */
  1623. #define EMAC_CAM15LSB_OPERAND_Msk (0xfful << EMAC_CAM15LSB_OPERAND_Pos) /*!< EMAC_T::CAM15LSB: OPERAND Mask */
  1624. #define EMAC_TXDSA_TXDSA_Pos (0) /*!< EMAC_T::TXDSA: TXDSA Position */
  1625. #define EMAC_TXDSA_TXDSA_Msk (0xfffffffful << EMAC_TXDSA_TXDSA_Pos) /*!< EMAC_T::TXDSA: TXDSA Mask */
  1626. #define EMAC_RXDSA_RXDSA_Pos (0) /*!< EMAC_T::RXDSA: RXDSA Position */
  1627. #define EMAC_RXDSA_RXDSA_Msk (0xfffffffful << EMAC_RXDSA_RXDSA_Pos) /*!< EMAC_T::RXDSA: RXDSA Mask */
  1628. #define EMAC_CTL_RXON_Pos (0) /*!< EMAC_T::CTL: RXON Position */
  1629. #define EMAC_CTL_RXON_Msk (0x1ul << EMAC_CTL_RXON_Pos) /*!< EMAC_T::CTL: RXON Mask */
  1630. #define EMAC_CTL_ALP_Pos (1) /*!< EMAC_T::CTL: ALP Position */
  1631. #define EMAC_CTL_ALP_Msk (0x1ul << EMAC_CTL_ALP_Pos) /*!< EMAC_T::CTL: ALP Mask */
  1632. #define EMAC_CTL_ARP_Pos (2) /*!< EMAC_T::CTL: ARP Position */
  1633. #define EMAC_CTL_ARP_Msk (0x1ul << EMAC_CTL_ARP_Pos) /*!< EMAC_T::CTL: ARP Mask */
  1634. #define EMAC_CTL_ACP_Pos (3) /*!< EMAC_T::CTL: ACP Position */
  1635. #define EMAC_CTL_ACP_Msk (0x1ul << EMAC_CTL_ACP_Pos) /*!< EMAC_T::CTL: ACP Mask */
  1636. #define EMAC_CTL_AEP_Pos (4) /*!< EMAC_T::CTL: AEP Position */
  1637. #define EMAC_CTL_AEP_Msk (0x1ul << EMAC_CTL_AEP_Pos) /*!< EMAC_T::CTL: AEP Mask */
  1638. #define EMAC_CTL_STRIPCRC_Pos (5) /*!< EMAC_T::CTL: STRIPCRC Position */
  1639. #define EMAC_CTL_STRIPCRC_Msk (0x1ul << EMAC_CTL_STRIPCRC_Pos) /*!< EMAC_T::CTL: STRIPCRC Mask */
  1640. #define EMAC_CTL_WOLEN_Pos (6) /*!< EMAC_T::CTL: WOLEN Position */
  1641. #define EMAC_CTL_WOLEN_Msk (0x1ul << EMAC_CTL_WOLEN_Pos) /*!< EMAC_T::CTL: WOLEN Mask */
  1642. #define EMAC_CTL_TXON_Pos (8) /*!< EMAC_T::CTL: TXON Position */
  1643. #define EMAC_CTL_TXON_Msk (0x1ul << EMAC_CTL_TXON_Pos) /*!< EMAC_T::CTL: TXON Mask */
  1644. #define EMAC_CTL_NODEF_Pos (9) /*!< EMAC_T::CTL: NODEF Position */
  1645. #define EMAC_CTL_NODEF_Msk (0x1ul << EMAC_CTL_NODEF_Pos) /*!< EMAC_T::CTL: NODEF Mask */
  1646. #define EMAC_CTL_SDPZ_Pos (16) /*!< EMAC_T::CTL: SDPZ Position */
  1647. #define EMAC_CTL_SDPZ_Msk (0x1ul << EMAC_CTL_SDPZ_Pos) /*!< EMAC_T::CTL: SDPZ Mask */
  1648. #define EMAC_CTL_SQECHKEN_Pos (17) /*!< EMAC_T::CTL: SQECHKEN Position */
  1649. #define EMAC_CTL_SQECHKEN_Msk (0x1ul << EMAC_CTL_SQECHKEN_Pos) /*!< EMAC_T::CTL: SQECHKEN Mask */
  1650. #define EMAC_CTL_FUDUP_Pos (18) /*!< EMAC_T::CTL: FUDUP Position */
  1651. #define EMAC_CTL_FUDUP_Msk (0x1ul << EMAC_CTL_FUDUP_Pos) /*!< EMAC_T::CTL: FUDUP Mask */
  1652. #define EMAC_CTL_RMIIRXCTL_Pos (19) /*!< EMAC_T::CTL: RMIIRXCTL Position */
  1653. #define EMAC_CTL_RMIIRXCTL_Msk (0x1ul << EMAC_CTL_RMIIRXCTL_Pos) /*!< EMAC_T::CTL: RMIIRXCTL Mask */
  1654. #define EMAC_CTL_OPMODE_Pos (20) /*!< EMAC_T::CTL: OPMODE Position */
  1655. #define EMAC_CTL_OPMODE_Msk (0x1ul << EMAC_CTL_OPMODE_Pos) /*!< EMAC_T::CTL: OPMODE Mask */
  1656. #define EMAC_CTL_RMIIEN_Pos (22) /*!< EMAC_T::CTL: RMIIEN Position */
  1657. #define EMAC_CTL_RMIIEN_Msk (0x1ul << EMAC_CTL_RMIIEN_Pos) /*!< EMAC_T::CTL: RMIIEN Mask */
  1658. #define EMAC_CTL_RST_Pos (24) /*!< EMAC_T::CTL: RST Position */
  1659. #define EMAC_CTL_RST_Msk (0x1ul << EMAC_CTL_RST_Pos) /*!< EMAC_T::CTL: RST Mask */
  1660. #define EMAC_MIIMDAT_DATA_Pos (0) /*!< EMAC_T::MIIMDAT: DATA Position */
  1661. #define EMAC_MIIMDAT_DATA_Msk (0xfffful << EMAC_MIIMDAT_DATA_Pos) /*!< EMAC_T::MIIMDAT: DATA Mask */
  1662. #define EMAC_MIIMCTL_PHYREG_Pos (0) /*!< EMAC_T::MIIMCTL: PHYREG Position */
  1663. #define EMAC_MIIMCTL_PHYREG_Msk (0x1ful << EMAC_MIIMCTL_PHYREG_Pos) /*!< EMAC_T::MIIMCTL: PHYREG Mask */
  1664. #define EMAC_MIIMCTL_PHYADDR_Pos (8) /*!< EMAC_T::MIIMCTL: PHYADDR Position */
  1665. #define EMAC_MIIMCTL_PHYADDR_Msk (0x1ful << EMAC_MIIMCTL_PHYADDR_Pos) /*!< EMAC_T::MIIMCTL: PHYADDR Mask */
  1666. #define EMAC_MIIMCTL_WRITE_Pos (16) /*!< EMAC_T::MIIMCTL: WRITE Position */
  1667. #define EMAC_MIIMCTL_WRITE_Msk (0x1ul << EMAC_MIIMCTL_WRITE_Pos) /*!< EMAC_T::MIIMCTL: WRITE Mask */
  1668. #define EMAC_MIIMCTL_BUSY_Pos (17) /*!< EMAC_T::MIIMCTL: BUSY Position */
  1669. #define EMAC_MIIMCTL_BUSY_Msk (0x1ul << EMAC_MIIMCTL_BUSY_Pos) /*!< EMAC_T::MIIMCTL: BUSY Mask */
  1670. #define EMAC_MIIMCTL_PREAMSP_Pos (18) /*!< EMAC_T::MIIMCTL: PREAMSP Position */
  1671. #define EMAC_MIIMCTL_PREAMSP_Msk (0x1ul << EMAC_MIIMCTL_PREAMSP_Pos) /*!< EMAC_T::MIIMCTL: PREAMSP Mask */
  1672. #define EMAC_MIIMCTL_MDCON_Pos (19) /*!< EMAC_T::MIIMCTL: MDCON Position */
  1673. #define EMAC_MIIMCTL_MDCON_Msk (0x1ul << EMAC_MIIMCTL_MDCON_Pos) /*!< EMAC_T::MIIMCTL: MDCON Mask */
  1674. #define EMAC_FIFOCTL_RXFIFOTH_Pos (0) /*!< EMAC_T::FIFOCTL: RXFIFOTH Position */
  1675. #define EMAC_FIFOCTL_RXFIFOTH_Msk (0x3ul << EMAC_FIFOCTL_RXFIFOTH_Pos) /*!< EMAC_T::FIFOCTL: RXFIFOTH Mask */
  1676. #define EMAC_FIFOCTL_TXFIFOTH_Pos (8) /*!< EMAC_T::FIFOCTL: TXFIFOTH Position */
  1677. #define EMAC_FIFOCTL_TXFIFOTH_Msk (0x3ul << EMAC_FIFOCTL_TXFIFOTH_Pos) /*!< EMAC_T::FIFOCTL: TXFIFOTH Mask */
  1678. #define EMAC_FIFOCTL_BURSTLEN_Pos (20) /*!< EMAC_T::FIFOCTL: BURSTLEN Position */
  1679. #define EMAC_FIFOCTL_BURSTLEN_Msk (0x3ul << EMAC_FIFOCTL_BURSTLEN_Pos) /*!< EMAC_T::FIFOCTL: BURSTLEN Mask */
  1680. #define EMAC_TXST_TXST_Pos (0) /*!< EMAC_T::TXST: TXST Position */
  1681. #define EMAC_TXST_TXST_Msk (0xfffffffful << EMAC_TXST_TXST_Pos) /*!< EMAC_T::TXST: TXST Mask */
  1682. #define EMAC_RXST_RXST_Pos (0) /*!< EMAC_T::RXST: RXST Position */
  1683. #define EMAC_RXST_RXST_Msk (0xfffffffful << EMAC_RXST_RXST_Pos) /*!< EMAC_T::RXST: RXST Mask */
  1684. #define EMAC_MRFL_MRFL_Pos (0) /*!< EMAC_T::MRFL: MRFL Position */
  1685. #define EMAC_MRFL_MRFL_Msk (0xfffful << EMAC_MRFL_MRFL_Pos) /*!< EMAC_T::MRFL: MRFL Mask */
  1686. #define EMAC_INTEN_RXIEN_Pos (0) /*!< EMAC_T::INTEN: RXIEN Position */
  1687. #define EMAC_INTEN_RXIEN_Msk (0x1ul << EMAC_INTEN_RXIEN_Pos) /*!< EMAC_T::INTEN: RXIEN Mask */
  1688. #define EMAC_INTEN_CRCEIEN_Pos (1) /*!< EMAC_T::INTEN: CRCEIEN Position */
  1689. #define EMAC_INTEN_CRCEIEN_Msk (0x1ul << EMAC_INTEN_CRCEIEN_Pos) /*!< EMAC_T::INTEN: CRCEIEN Mask */
  1690. #define EMAC_INTEN_RXOVIEN_Pos (2) /*!< EMAC_T::INTEN: RXOVIEN Position */
  1691. #define EMAC_INTEN_RXOVIEN_Msk (0x1ul << EMAC_INTEN_RXOVIEN_Pos) /*!< EMAC_T::INTEN: RXOVIEN Mask */
  1692. #define EMAC_INTEN_LPIEN_Pos (3) /*!< EMAC_T::INTEN: LPIEN Position */
  1693. #define EMAC_INTEN_LPIEN_Msk (0x1ul << EMAC_INTEN_LPIEN_Pos) /*!< EMAC_T::INTEN: LPIEN Mask */
  1694. #define EMAC_INTEN_RXGDIEN_Pos (4) /*!< EMAC_T::INTEN: RXGDIEN Position */
  1695. #define EMAC_INTEN_RXGDIEN_Msk (0x1ul << EMAC_INTEN_RXGDIEN_Pos) /*!< EMAC_T::INTEN: RXGDIEN Mask */
  1696. #define EMAC_INTEN_ALIEIEN_Pos (5) /*!< EMAC_T::INTEN: ALIEIEN Position */
  1697. #define EMAC_INTEN_ALIEIEN_Msk (0x1ul << EMAC_INTEN_ALIEIEN_Pos) /*!< EMAC_T::INTEN: ALIEIEN Mask */
  1698. #define EMAC_INTEN_RPIEN_Pos (6) /*!< EMAC_T::INTEN: RPIEN Position */
  1699. #define EMAC_INTEN_RPIEN_Msk (0x1ul << EMAC_INTEN_RPIEN_Pos) /*!< EMAC_T::INTEN: RPIEN Mask */
  1700. #define EMAC_INTEN_MPCOVIEN_Pos (7) /*!< EMAC_T::INTEN: MPCOVIEN Position */
  1701. #define EMAC_INTEN_MPCOVIEN_Msk (0x1ul << EMAC_INTEN_MPCOVIEN_Pos) /*!< EMAC_T::INTEN: MPCOVIEN Mask */
  1702. #define EMAC_INTEN_MFLEIEN_Pos (8) /*!< EMAC_T::INTEN: MFLEIEN Position */
  1703. #define EMAC_INTEN_MFLEIEN_Msk (0x1ul << EMAC_INTEN_MFLEIEN_Pos) /*!< EMAC_T::INTEN: MFLEIEN Mask */
  1704. #define EMAC_INTEN_DENIEN_Pos (9) /*!< EMAC_T::INTEN: DENIEN Position */
  1705. #define EMAC_INTEN_DENIEN_Msk (0x1ul << EMAC_INTEN_DENIEN_Pos) /*!< EMAC_T::INTEN: DENIEN Mask */
  1706. #define EMAC_INTEN_RDUIEN_Pos (10) /*!< EMAC_T::INTEN: RDUIEN Position */
  1707. #define EMAC_INTEN_RDUIEN_Msk (0x1ul << EMAC_INTEN_RDUIEN_Pos) /*!< EMAC_T::INTEN: RDUIEN Mask */
  1708. #define EMAC_INTEN_RXBEIEN_Pos (11) /*!< EMAC_T::INTEN: RXBEIEN Position */
  1709. #define EMAC_INTEN_RXBEIEN_Msk (0x1ul << EMAC_INTEN_RXBEIEN_Pos) /*!< EMAC_T::INTEN: RXBEIEN Mask */
  1710. #define EMAC_INTEN_CFRIEN_Pos (14) /*!< EMAC_T::INTEN: CFRIEN Position */
  1711. #define EMAC_INTEN_CFRIEN_Msk (0x1ul << EMAC_INTEN_CFRIEN_Pos) /*!< EMAC_T::INTEN: CFRIEN Mask */
  1712. #define EMAC_INTEN_WOLIEN_Pos (15) /*!< EMAC_T::INTEN: WOLIEN Position */
  1713. #define EMAC_INTEN_WOLIEN_Msk (0x1ul << EMAC_INTEN_WOLIEN_Pos) /*!< EMAC_T::INTEN: WOLIEN Mask */
  1714. #define EMAC_INTEN_TXIEN_Pos (16) /*!< EMAC_T::INTEN: TXIEN Position */
  1715. #define EMAC_INTEN_TXIEN_Msk (0x1ul << EMAC_INTEN_TXIEN_Pos) /*!< EMAC_T::INTEN: TXIEN Mask */
  1716. #define EMAC_INTEN_TXUDIEN_Pos (17) /*!< EMAC_T::INTEN: TXUDIEN Position */
  1717. #define EMAC_INTEN_TXUDIEN_Msk (0x1ul << EMAC_INTEN_TXUDIEN_Pos) /*!< EMAC_T::INTEN: TXUDIEN Mask */
  1718. #define EMAC_INTEN_TXCPIEN_Pos (18) /*!< EMAC_T::INTEN: TXCPIEN Position */
  1719. #define EMAC_INTEN_TXCPIEN_Msk (0x1ul << EMAC_INTEN_TXCPIEN_Pos) /*!< EMAC_T::INTEN: TXCPIEN Mask */
  1720. #define EMAC_INTEN_EXDEFIEN_Pos (19) /*!< EMAC_T::INTEN: EXDEFIEN Position */
  1721. #define EMAC_INTEN_EXDEFIEN_Msk (0x1ul << EMAC_INTEN_EXDEFIEN_Pos) /*!< EMAC_T::INTEN: EXDEFIEN Mask */
  1722. #define EMAC_INTEN_NCSIEN_Pos (20) /*!< EMAC_T::INTEN: NCSIEN Position */
  1723. #define EMAC_INTEN_NCSIEN_Msk (0x1ul << EMAC_INTEN_NCSIEN_Pos) /*!< EMAC_T::INTEN: NCSIEN Mask */
  1724. #define EMAC_INTEN_TXABTIEN_Pos (21) /*!< EMAC_T::INTEN: TXABTIEN Position */
  1725. #define EMAC_INTEN_TXABTIEN_Msk (0x1ul << EMAC_INTEN_TXABTIEN_Pos) /*!< EMAC_T::INTEN: TXABTIEN Mask */
  1726. #define EMAC_INTEN_LCIEN_Pos (22) /*!< EMAC_T::INTEN: LCIEN Position */
  1727. #define EMAC_INTEN_LCIEN_Msk (0x1ul << EMAC_INTEN_LCIEN_Pos) /*!< EMAC_T::INTEN: LCIEN Mask */
  1728. #define EMAC_INTEN_TDUIEN_Pos (23) /*!< EMAC_T::INTEN: TDUIEN Position */
  1729. #define EMAC_INTEN_TDUIEN_Msk (0x1ul << EMAC_INTEN_TDUIEN_Pos) /*!< EMAC_T::INTEN: TDUIEN Mask */
  1730. #define EMAC_INTEN_TXBEIEN_Pos (24) /*!< EMAC_T::INTEN: TXBEIEN Position */
  1731. #define EMAC_INTEN_TXBEIEN_Msk (0x1ul << EMAC_INTEN_TXBEIEN_Pos) /*!< EMAC_T::INTEN: TXBEIEN Mask */
  1732. #define EMAC_INTEN_TSALMIEN_Pos (28) /*!< EMAC_T::INTEN: TSALMIEN Position */
  1733. #define EMAC_INTEN_TSALMIEN_Msk (0x1ul << EMAC_INTEN_TSALMIEN_Pos) /*!< EMAC_T::INTEN: TSALMIEN Mask */
  1734. #define EMAC_INTSTS_RXIF_Pos (0) /*!< EMAC_T::INTSTS: RXIF Position */
  1735. #define EMAC_INTSTS_RXIF_Msk (0x1ul << EMAC_INTSTS_RXIF_Pos) /*!< EMAC_T::INTSTS: RXIF Mask */
  1736. #define EMAC_INTSTS_CRCEIF_Pos (1) /*!< EMAC_T::INTSTS: CRCEIF Position */
  1737. #define EMAC_INTSTS_CRCEIF_Msk (0x1ul << EMAC_INTSTS_CRCEIF_Pos) /*!< EMAC_T::INTSTS: CRCEIF Mask */
  1738. #define EMAC_INTSTS_RXOVIF_Pos (2) /*!< EMAC_T::INTSTS: RXOVIF Position */
  1739. #define EMAC_INTSTS_RXOVIF_Msk (0x1ul << EMAC_INTSTS_RXOVIF_Pos) /*!< EMAC_T::INTSTS: RXOVIF Mask */
  1740. #define EMAC_INTSTS_LPIF_Pos (3) /*!< EMAC_T::INTSTS: LPIF Position */
  1741. #define EMAC_INTSTS_LPIF_Msk (0x1ul << EMAC_INTSTS_LPIF_Pos) /*!< EMAC_T::INTSTS: LPIF Mask */
  1742. #define EMAC_INTSTS_RXGDIF_Pos (4) /*!< EMAC_T::INTSTS: RXGDIF Position */
  1743. #define EMAC_INTSTS_RXGDIF_Msk (0x1ul << EMAC_INTSTS_RXGDIF_Pos) /*!< EMAC_T::INTSTS: RXGDIF Mask */
  1744. #define EMAC_INTSTS_ALIEIF_Pos (5) /*!< EMAC_T::INTSTS: ALIEIF Position */
  1745. #define EMAC_INTSTS_ALIEIF_Msk (0x1ul << EMAC_INTSTS_ALIEIF_Pos) /*!< EMAC_T::INTSTS: ALIEIF Mask */
  1746. #define EMAC_INTSTS_RPIF_Pos (6) /*!< EMAC_T::INTSTS: RPIF Position */
  1747. #define EMAC_INTSTS_RPIF_Msk (0x1ul << EMAC_INTSTS_RPIF_Pos) /*!< EMAC_T::INTSTS: RPIF Mask */
  1748. #define EMAC_INTSTS_MPCOVIF_Pos (7) /*!< EMAC_T::INTSTS: MPCOVIF Position */
  1749. #define EMAC_INTSTS_MPCOVIF_Msk (0x1ul << EMAC_INTSTS_MPCOVIF_Pos) /*!< EMAC_T::INTSTS: MPCOVIF Mask */
  1750. #define EMAC_INTSTS_MFLEIF_Pos (8) /*!< EMAC_T::INTSTS: MFLEIF Position */
  1751. #define EMAC_INTSTS_MFLEIF_Msk (0x1ul << EMAC_INTSTS_MFLEIF_Pos) /*!< EMAC_T::INTSTS: MFLEIF Mask */
  1752. #define EMAC_INTSTS_DENIF_Pos (9) /*!< EMAC_T::INTSTS: DENIF Position */
  1753. #define EMAC_INTSTS_DENIF_Msk (0x1ul << EMAC_INTSTS_DENIF_Pos) /*!< EMAC_T::INTSTS: DENIF Mask */
  1754. #define EMAC_INTSTS_RDUIF_Pos (10) /*!< EMAC_T::INTSTS: RDUIF Position */
  1755. #define EMAC_INTSTS_RDUIF_Msk (0x1ul << EMAC_INTSTS_RDUIF_Pos) /*!< EMAC_T::INTSTS: RDUIF Mask */
  1756. #define EMAC_INTSTS_RXBEIF_Pos (11) /*!< EMAC_T::INTSTS: RXBEIF Position */
  1757. #define EMAC_INTSTS_RXBEIF_Msk (0x1ul << EMAC_INTSTS_RXBEIF_Pos) /*!< EMAC_T::INTSTS: RXBEIF Mask */
  1758. #define EMAC_INTSTS_CFRIF_Pos (14) /*!< EMAC_T::INTSTS: CFRIF Position */
  1759. #define EMAC_INTSTS_CFRIF_Msk (0x1ul << EMAC_INTSTS_CFRIF_Pos) /*!< EMAC_T::INTSTS: CFRIF Mask */
  1760. #define EMAC_INTSTS_WOLIF_Pos (15) /*!< EMAC_T::INTSTS: WOLIF Position */
  1761. #define EMAC_INTSTS_WOLIF_Msk (0x1ul << EMAC_INTSTS_WOLIF_Pos) /*!< EMAC_T::INTSTS: WOLIF Mask */
  1762. #define EMAC_INTSTS_TXIF_Pos (16) /*!< EMAC_T::INTSTS: TXIF Position */
  1763. #define EMAC_INTSTS_TXIF_Msk (0x1ul << EMAC_INTSTS_TXIF_Pos) /*!< EMAC_T::INTSTS: TXIF Mask */
  1764. #define EMAC_INTSTS_TXUDIF_Pos (17) /*!< EMAC_T::INTSTS: TXUDIF Position */
  1765. #define EMAC_INTSTS_TXUDIF_Msk (0x1ul << EMAC_INTSTS_TXUDIF_Pos) /*!< EMAC_T::INTSTS: TXUDIF Mask */
  1766. #define EMAC_INTSTS_TXCPIF_Pos (18) /*!< EMAC_T::INTSTS: TXCPIF Position */
  1767. #define EMAC_INTSTS_TXCPIF_Msk (0x1ul << EMAC_INTSTS_TXCPIF_Pos) /*!< EMAC_T::INTSTS: TXCPIF Mask */
  1768. #define EMAC_INTSTS_EXDEFIF_Pos (19) /*!< EMAC_T::INTSTS: EXDEFIF Position */
  1769. #define EMAC_INTSTS_EXDEFIF_Msk (0x1ul << EMAC_INTSTS_EXDEFIF_Pos) /*!< EMAC_T::INTSTS: EXDEFIF Mask */
  1770. #define EMAC_INTSTS_NCSIF_Pos (20) /*!< EMAC_T::INTSTS: NCSIF Position */
  1771. #define EMAC_INTSTS_NCSIF_Msk (0x1ul << EMAC_INTSTS_NCSIF_Pos) /*!< EMAC_T::INTSTS: NCSIF Mask */
  1772. #define EMAC_INTSTS_TXABTIF_Pos (21) /*!< EMAC_T::INTSTS: TXABTIF Position */
  1773. #define EMAC_INTSTS_TXABTIF_Msk (0x1ul << EMAC_INTSTS_TXABTIF_Pos) /*!< EMAC_T::INTSTS: TXABTIF Mask */
  1774. #define EMAC_INTSTS_LCIF_Pos (22) /*!< EMAC_T::INTSTS: LCIF Position */
  1775. #define EMAC_INTSTS_LCIF_Msk (0x1ul << EMAC_INTSTS_LCIF_Pos) /*!< EMAC_T::INTSTS: LCIF Mask */
  1776. #define EMAC_INTSTS_TDUIF_Pos (23) /*!< EMAC_T::INTSTS: TDUIF Position */
  1777. #define EMAC_INTSTS_TDUIF_Msk (0x1ul << EMAC_INTSTS_TDUIF_Pos) /*!< EMAC_T::INTSTS: TDUIF Mask */
  1778. #define EMAC_INTSTS_TXBEIF_Pos (24) /*!< EMAC_T::INTSTS: TXBEIF Position */
  1779. #define EMAC_INTSTS_TXBEIF_Msk (0x1ul << EMAC_INTSTS_TXBEIF_Pos) /*!< EMAC_T::INTSTS: TXBEIF Mask */
  1780. #define EMAC_INTSTS_TSALMIF_Pos (28) /*!< EMAC_T::INTSTS: TSALMIF Position */
  1781. #define EMAC_INTSTS_TSALMIF_Msk (0x1ul << EMAC_INTSTS_TSALMIF_Pos) /*!< EMAC_T::INTSTS: TSALMIF Mask */
  1782. #define EMAC_GENSTS_CFR_Pos (0) /*!< EMAC_T::GENSTS: CFR Position */
  1783. #define EMAC_GENSTS_CFR_Msk (0x1ul << EMAC_GENSTS_CFR_Pos) /*!< EMAC_T::GENSTS: CFR Mask */
  1784. #define EMAC_GENSTS_RXHALT_Pos (1) /*!< EMAC_T::GENSTS: RXHALT Position */
  1785. #define EMAC_GENSTS_RXHALT_Msk (0x1ul << EMAC_GENSTS_RXHALT_Pos) /*!< EMAC_T::GENSTS: RXHALT Mask */
  1786. #define EMAC_GENSTS_RXFFULL_Pos (2) /*!< EMAC_T::GENSTS: RXFFULL Position */
  1787. #define EMAC_GENSTS_RXFFULL_Msk (0x1ul << EMAC_GENSTS_RXFFULL_Pos) /*!< EMAC_T::GENSTS: RXFFULL Mask */
  1788. #define EMAC_GENSTS_COLCNT_Pos (4) /*!< EMAC_T::GENSTS: COLCNT Position */
  1789. #define EMAC_GENSTS_COLCNT_Msk (0xful << EMAC_GENSTS_COLCNT_Pos) /*!< EMAC_T::GENSTS: COLCNT Mask */
  1790. #define EMAC_GENSTS_DEF_Pos (8) /*!< EMAC_T::GENSTS: DEF Position */
  1791. #define EMAC_GENSTS_DEF_Msk (0x1ul << EMAC_GENSTS_DEF_Pos) /*!< EMAC_T::GENSTS: DEF Mask */
  1792. #define EMAC_GENSTS_TXPAUSED_Pos (9) /*!< EMAC_T::GENSTS: TXPAUSED Position */
  1793. #define EMAC_GENSTS_TXPAUSED_Msk (0x1ul << EMAC_GENSTS_TXPAUSED_Pos) /*!< EMAC_T::GENSTS: TXPAUSED Mask */
  1794. #define EMAC_GENSTS_SQE_Pos (10) /*!< EMAC_T::GENSTS: SQE Position */
  1795. #define EMAC_GENSTS_SQE_Msk (0x1ul << EMAC_GENSTS_SQE_Pos) /*!< EMAC_T::GENSTS: SQE Mask */
  1796. #define EMAC_GENSTS_TXHALT_Pos (11) /*!< EMAC_T::GENSTS: TXHALT Position */
  1797. #define EMAC_GENSTS_TXHALT_Msk (0x1ul << EMAC_GENSTS_TXHALT_Pos) /*!< EMAC_T::GENSTS: TXHALT Mask */
  1798. #define EMAC_GENSTS_RPSTS_Pos (12) /*!< EMAC_T::GENSTS: RPSTS Position */
  1799. #define EMAC_GENSTS_RPSTS_Msk (0x1ul << EMAC_GENSTS_RPSTS_Pos) /*!< EMAC_T::GENSTS: RPSTS Mask */
  1800. #define EMAC_MPCNT_MPCNT_Pos (0) /*!< EMAC_T::MPCNT: MPCNT Position */
  1801. #define EMAC_MPCNT_MPCNT_Msk (0xfffful << EMAC_MPCNT_MPCNT_Pos) /*!< EMAC_T::MPCNT: MPCNT Mask */
  1802. #define EMAC_RPCNT_RPCNT_Pos (0) /*!< EMAC_T::RPCNT: RPCNT Position */
  1803. #define EMAC_RPCNT_RPCNT_Msk (0xfffful << EMAC_RPCNT_RPCNT_Pos) /*!< EMAC_T::RPCNT: RPCNT Mask */
  1804. #define EMAC_FRSTS_RXFLT_Pos (0) /*!< EMAC_T::FRSTS: RXFLT Position */
  1805. #define EMAC_FRSTS_RXFLT_Msk (0xfffful << EMAC_FRSTS_RXFLT_Pos) /*!< EMAC_T::FRSTS: RXFLT Mask */
  1806. #define EMAC_CTXDSA_CTXDSA_Pos (0) /*!< EMAC_T::CTXDSA: CTXDSA Position */
  1807. #define EMAC_CTXDSA_CTXDSA_Msk (0xfffffffful << EMAC_CTXDSA_CTXDSA_Pos) /*!< EMAC_T::CTXDSA: CTXDSA Mask */
  1808. #define EMAC_CTXBSA_CTXBSA_Pos (0) /*!< EMAC_T::CTXBSA: CTXBSA Position */
  1809. #define EMAC_CTXBSA_CTXBSA_Msk (0xfffffffful << EMAC_CTXBSA_CTXBSA_Pos) /*!< EMAC_T::CTXBSA: CTXBSA Mask */
  1810. #define EMAC_CRXDSA_CRXDSA_Pos (0) /*!< EMAC_T::CRXDSA: CRXDSA Position */
  1811. #define EMAC_CRXDSA_CRXDSA_Msk (0xfffffffful << EMAC_CRXDSA_CRXDSA_Pos) /*!< EMAC_T::CRXDSA: CRXDSA Mask */
  1812. #define EMAC_CRXBSA_CRXBSA_Pos (0) /*!< EMAC_T::CRXBSA: CRXBSA Position */
  1813. #define EMAC_CRXBSA_CRXBSA_Msk (0xfffffffful << EMAC_CRXBSA_CRXBSA_Pos) /*!< EMAC_T::CRXBSA: CRXBSA Mask */
  1814. #define EMAC_TSCTL_TSEN_Pos (0) /*!< EMAC_T::TSCTL: TSEN Position */
  1815. #define EMAC_TSCTL_TSEN_Msk (0x1ul << EMAC_TSCTL_TSEN_Pos) /*!< EMAC_T::TSCTL: TSEN Mask */
  1816. #define EMAC_TSCTL_TSIEN_Pos (1) /*!< EMAC_T::TSCTL: TSIEN Position */
  1817. #define EMAC_TSCTL_TSIEN_Msk (0x1ul << EMAC_TSCTL_TSIEN_Pos) /*!< EMAC_T::TSCTL: TSIEN Mask */
  1818. #define EMAC_TSCTL_TSMODE_Pos (2) /*!< EMAC_T::TSCTL: TSMODE Position */
  1819. #define EMAC_TSCTL_TSMODE_Msk (0x1ul << EMAC_TSCTL_TSMODE_Pos) /*!< EMAC_T::TSCTL: TSMODE Mask */
  1820. #define EMAC_TSCTL_TSUPDATE_Pos (3) /*!< EMAC_T::TSCTL: TSUPDATE Position */
  1821. #define EMAC_TSCTL_TSUPDATE_Msk (0x1ul << EMAC_TSCTL_TSUPDATE_Pos) /*!< EMAC_T::TSCTL: TSUPDATE Mask */
  1822. #define EMAC_TSCTL_TSALMEN_Pos (5) /*!< EMAC_T::TSCTL: TSALMEN Position */
  1823. #define EMAC_TSCTL_TSALMEN_Msk (0x1ul << EMAC_TSCTL_TSALMEN_Pos) /*!< EMAC_T::TSCTL: TSALMEN Mask */
  1824. #define EMAC_TSSEC_SEC_Pos (0) /*!< EMAC_T::TSSEC: SEC Position */
  1825. #define EMAC_TSSEC_SEC_Msk (0xfffffffful << EMAC_TSSEC_SEC_Pos) /*!< EMAC_T::TSSEC: SEC Mask */
  1826. #define EMAC_TSSUBSEC_SUBSEC_Pos (0) /*!< EMAC_T::TSSUBSEC: SUBSEC Position */
  1827. #define EMAC_TSSUBSEC_SUBSEC_Msk (0xfffffffful << EMAC_TSSUBSEC_SUBSEC_Pos) /*!< EMAC_T::TSSUBSEC: SUBSEC Mask */
  1828. #define EMAC_TSINC_CNTINC_Pos (0) /*!< EMAC_T::TSINC: CNTINC Position */
  1829. #define EMAC_TSINC_CNTINC_Msk (0xfful << EMAC_TSINC_CNTINC_Pos) /*!< EMAC_T::TSINC: CNTINC Mask */
  1830. #define EMAC_TSADDEND_ADDEND_Pos (0) /*!< EMAC_T::TSADDEND: ADDEND Position */
  1831. #define EMAC_TSADDEND_ADDEND_Msk (0xfffffffful << EMAC_TSADDEND_ADDEND_Pos) /*!< EMAC_T::TSADDEND: ADDEND Mask */
  1832. #define EMAC_UPDSEC_SEC_Pos (0) /*!< EMAC_T::UPDSEC: SEC Position */
  1833. #define EMAC_UPDSEC_SEC_Msk (0xfffffffful << EMAC_UPDSEC_SEC_Pos) /*!< EMAC_T::UPDSEC: SEC Mask */
  1834. #define EMAC_UPDSUBSEC_SUBSEC_Pos (0) /*!< EMAC_T::UPDSUBSEC: SUBSEC Position */
  1835. #define EMAC_UPDSUBSEC_SUBSEC_Msk (0xfffffffful << EMAC_UPDSUBSEC_SUBSEC_Pos) /*!< EMAC_T::UPDSUBSEC: SUBSEC Mask */
  1836. #define EMAC_ALMSEC_SEC_Pos (0) /*!< EMAC_T::ALMSEC: SEC Position */
  1837. #define EMAC_ALMSEC_SEC_Msk (0xfffffffful << EMAC_ALMSEC_SEC_Pos) /*!< EMAC_T::ALMSEC: SEC Mask */
  1838. #define EMAC_ALMSUBSEC_SUBSEC_Pos (0) /*!< EMAC_T::ALMSUBSEC: SUBSEC Position */
  1839. #define EMAC_ALMSUBSEC_SUBSEC_Msk (0xfffffffful << EMAC_ALMSUBSEC_SUBSEC_Pos) /*!< EMAC_T::ALMSUBSEC: SUBSEC Mask */
  1840. /**@}*/ /* EMAC_CONST */
  1841. /**@}*/ /* end of EMAC register group */
  1842. /**@}*/ /* end of REGISTER group */
  1843. #if defined ( __CC_ARM )
  1844. #pragma no_anon_unions
  1845. #endif
  1846. #endif /* __EMAC_REG_H__ */