xpc563m.h 184 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123
  1. /**************************************************************************/
  2. /* FILE NAME: mpc563xm.h COPYRIGHT (c) Freescale 2008,2009 */
  3. /* VERSION: 2.0 All Rights Reserved */
  4. /* */
  5. /* DESCRIPTION: */
  6. /* This file contain all of the register and bit field definitions for */
  7. /* MPC563xM. This version supports revision 1.0 and later. */
  8. /*========================================================================*/
  9. /* UPDATE HISTORY */
  10. /* REV AUTHOR DATE DESCRIPTION OF CHANGE */
  11. /* --- ----------- --------- --------------------- */
  12. /* 1.0 G. Emerson 31/OCT/07 Initial version. */
  13. /* 1.1 G. Emerson 20/DEC/07 Added SYSDIV HLT HLTACK */
  14. /* Added ESYNCR1 ESYNCR2 SYNFMMR */
  15. /* 1.2 G. Emerson 31/JAN/08 Change eMIOS channels so there are 24. */
  16. /* 8 channels in the middle of the range */
  17. /* do not exist */
  18. /* 1.3 G. Emerson 30/JUL/08 FLEXCAN - Supports FIFO and Buffer. */
  19. /* RXIMR added */
  20. /* FMPLL - Added FMPLL.SYNFMMR.B.BSY */
  21. /* SIU - Added SIU.ISEL0-3 */
  22. /* EMIOS - Added EMIOS.CH[x].ALTCADR.R */
  23. /* MCM - Replaced ECSM with MCM */
  24. /* removing SWT registers as defined at */
  25. /* seperate memory location. PFLASH */
  26. /* registers pre-fixed with P*. Added PCT,*/
  27. /* PLREV, PLAMC, PLASC, IOPMC, MRSR, MWCR.*/
  28. /* PBRIDGE - Removed as no PBRIDGE */
  29. /* registers. */
  30. /* INTC - Updated number of PSR from */
  31. /* 358 to 360. */
  32. /* mpc5500_spr.h - Added RI to MSR and NMI*/
  33. /* to MSCR. */
  34. /* 1.4 G. Emerson 30/SEP/08 Add SIU.MIDR2 */
  35. /* Changes to SIU.MIDR as per RM. */
  36. /* 1.5 May 2009 Changes to match documentation, removed*/
  37. /* Not released */
  38. /* 1.6 K. Odenthal 03/June/09 Update for 1.5M version of the MPC563xM*/
  39. /* & R. Dees */
  40. /* INTC - All Processor 0 regs matched to previous */
  41. /* version */
  42. /* INTC - BCR renamed to MCR to match previous */
  43. /* version */
  44. /* INTC - VTES_PRC1 and HVEN_PRC1 added to MCR */
  45. /* INTC - CPR_PRC1, IACKR_PRC1 and EOIR_PRC1 */
  46. /* registers added */
  47. /* INTC - 512 PSR registers instead of 364 */
  48. /* ECSM - (Internal - mcm -> ecsm in the source files*/
  49. /* for generating the header file */
  50. /* ECSM - All bits and regs got an additional "p" in */
  51. /* the name in the user manual for "Platform" */
  52. /* -> deleted to match */
  53. /* ECSM - SWTCR, SWTSR and SWTIR don't exist in */
  54. /* MPC563xM -> deleted */
  55. /* ECSM - PROTECTION in the URM is one bitfield, */
  56. /* in mop5534 this are four: PROT1-4 -> */
  57. /* changed to match */
  58. /* EMCM - removed undocumented registers */
  59. /* ECSM - RAM ECC Syndrome is new in MPC563xM -> added */
  60. /* XBAR - removed AMPR and ASGPCR registers */
  61. /* XBAR - removed HPE bits for nonexistant masters */
  62. /* EBI - added: D16_31, AD_MUX and SETA bits */
  63. /* EBI - Added reserved register at address 0x4. */
  64. /* EBI - Corrected number of chip selects in for both*/
  65. /* the EBI_CS and the CAL_EBI_CS */
  66. /* SIU - corrected number of GPDO registers and */
  67. /* allowed for maximum PCR registers. */
  68. /* SWT - add KEY bit to CR, correct WND (from WNO) */
  69. /* SWT - add SK register */
  70. /* PMC - moved bits from CFGR to Status Register (SR)*/
  71. /* PMC - Added SR */
  72. /* DECFIL - Added new bits DSEL, IBIE, OBIE, EDME, */
  73. /* TORE, & TRFE to MCR. Added IBIC, OBIC, */
  74. /* DIVRC, IBIF, OBIF, DIVR to MSR. */
  75. /* changed OUTTEG to OUTTAG in OB */
  76. /* Change COEF to TAG in TAG register */
  77. /* EQADC - removed REDLCCR - not supported */
  78. /* FLASH - Aligned register and bit names with legacy*/
  79. /* 1.7 K. Odenthal 10/November/09 */
  80. /* SIU - changed PCR[n].PA from 3 bit to 4 bit */
  81. /* eTPU - changed WDTR_A.WDM from 1 bit to 2 bits */
  82. /* DECFIL - changed COEF.R and TAP.R from 16 bit to */
  83. /* 32 bit */
  84. /* 2.0 K. Odenthal 12/February/2010 */
  85. /* TSENS - Temperature Sensor Module added to */
  86. /* header file */
  87. /* ANSI C Compliance - Register structures have a */
  88. /* Bitfield Tag ('B') tag only if there is */
  89. /* at least one Bitfiels defined. Empty */
  90. /* tags like 'vuint32_t:32;' are not */
  91. /* allowed. */
  92. /* DECFIL - removed MXCR register. This register is */
  93. /* not supported on this part */
  94. /* SIU - SWT_SEL bit added in SIU DIRER register */
  95. /* EDMA - removed HRSL, HRSH and GPOR registers. */
  96. /* Those registers are not supported in */
  97. /* that part. */
  98. /* ESCI - removed LDBG and DSF bits from LCR */
  99. /* registers. Those bits are not supported */
  100. /* in that part. */
  101. /* Those registers are not supported in */
  102. /* that part. */
  103. /**************************************************************************/
  104. /*>>>>NOTE! this file is auto-generated please do not edit it!<<<<*/
  105. #ifndef _MPC563M_H_
  106. #define _MPC563M_H_
  107. #include "typedefs.h"
  108. #ifdef __cplusplus
  109. extern "C" {
  110. #endif /*
  111. */
  112. #ifdef __MWERKS__
  113. #pragma push
  114. #pragma ANSI_strict off
  115. #endif /*
  116. */
  117. /****************************************************************************/
  118. /* MODULE : FMPLL */
  119. /****************************************************************************/
  120. struct FMPLL_tag {
  121. union {
  122. vuint32_t R;
  123. struct {
  124. vuint32_t:1;
  125. vuint32_t PREDIV:3;
  126. vuint32_t MFD:5;
  127. vuint32_t:1;
  128. vuint32_t RFD:3;
  129. vuint32_t LOCEN:1;
  130. vuint32_t LOLRE:1;
  131. vuint32_t LOCRE:1;
  132. vuint32_t:1; /* Reserved in MPC563xM
  133. Deleted for legacy header version [mpc5534.h]:
  134. <vuint32_t DISCLK:1> */
  135. vuint32_t LOLIRQ:1;
  136. vuint32_t LOCIRQ:1;
  137. vuint32_t:13; /* Reserved in MPC563xM
  138. Deleted for legacy header version [mpc5534.h]:
  139. <vuint32_t RATE:1 >
  140. <vuint32_t DEPTH:2>
  141. <vuint32_t EXP:10 > */
  142. } B;
  143. } SYNCR;
  144. union {
  145. vuint32_t R;
  146. struct {
  147. vuint32_t:22;
  148. vuint32_t LOLF:1;
  149. vuint32_t LOC:1;
  150. vuint32_t MODE:1;
  151. vuint32_t PLLSEL:1;
  152. vuint32_t PLLREF:1;
  153. vuint32_t LOCKS:1;
  154. vuint32_t LOCK:1;
  155. vuint32_t LOCF:1;
  156. vuint32_t:2; /* Reserved in MPC563xM
  157. Deleted for legacy header version [mpc5534.h]:
  158. <vuint32_t CALDONE:1>
  159. <vuint32_t CALPASS:1> */
  160. } B;
  161. } SYNSR;
  162. union {
  163. vuint32_t R;
  164. struct {
  165. vuint32_t EMODE:1;
  166. vuint32_t CLKCFG:3;
  167. vuint32_t:8;
  168. vuint32_t EPREDIV:4;
  169. vuint32_t:9;
  170. vuint32_t EMFD:7;
  171. } B;
  172. } ESYNCR1; /* Enhanced Synthesizer Control Register 1 (ESYNCR1) (new in MPC563xM) Offset 0x0008 */
  173. union {
  174. vuint32_t R;
  175. struct {
  176. vuint32_t:8;
  177. vuint32_t LOCEN:1;
  178. vuint32_t LOLRE:1;
  179. vuint32_t LOCRE:1;
  180. vuint32_t LOLIRQ:1;
  181. vuint32_t LOCIRQ:1;
  182. vuint32_t:17;
  183. vuint32_t ERFD:2;
  184. } B;
  185. } ESYNCR2; /* Enhanced Synthesizer Control Register 2 (ESYNCR2) (new in MPC563xM) Offset 0x000C */
  186. int32_t FMPLL_reserved0[2];
  187. union {
  188. vuint32_t R;
  189. struct {
  190. vuint32_t BSY:1;
  191. vuint32_t MODEN:1;
  192. vuint32_t MODSEL:1;
  193. vuint32_t MODPERIOD:13;
  194. vuint32_t:1;
  195. vuint32_t INCSTEP:15;
  196. } B;
  197. } SYNFMMR; /* Synthesizer FM Modulation Register (SYNFMMR) (new in MPC563xM) Offset 0x0018 */
  198. };
  199. /****************************************************************************/
  200. /* MODULE : EBI */
  201. /****************************************************************************/
  202. struct CS_tag {
  203. union {
  204. vuint32_t R;
  205. struct {
  206. vuint32_t BA:17; /* */
  207. vuint32_t:3; /* */
  208. vuint32_t PS:1; /* */
  209. vuint32_t:3; /* */
  210. vuint32_t AD_MUX:1; /* new in MPC563xM */
  211. vuint32_t BL:1; /* */
  212. vuint32_t WEBS:1; /* */
  213. vuint32_t TBDIP:1; /* */
  214. vuint32_t:1; /* */
  215. vuint32_t SETA:1; /* new in MPC563xM */
  216. vuint32_t BI:1; /* */
  217. vuint32_t V:1; /* */
  218. } B;
  219. } BR; /* <URM>EBI_BR</URM> */
  220. union {
  221. vuint32_t R;
  222. struct {
  223. vuint32_t AM:17; /* */
  224. vuint32_t:7; /* */
  225. vuint32_t SCY:4; /* */
  226. vuint32_t:1; /* */
  227. vuint32_t BSCY:2; /* */
  228. vuint32_t:1; /* */
  229. } B;
  230. } OR; /* <URM>EBI_OR</URM> */
  231. };
  232. struct CAL_CS_tag {
  233. union {
  234. vuint32_t R;
  235. struct {
  236. vuint32_t BA:17; /* */
  237. vuint32_t:3; /* */
  238. vuint32_t PS:1; /* */
  239. vuint32_t:3; /* */
  240. vuint32_t AD_MUX:1; /* new in MPC563xM */
  241. vuint32_t BL:1; /* */
  242. vuint32_t WEBS:1; /* */
  243. vuint32_t TBDIP:1; /* */
  244. vuint32_t:1; /* */
  245. vuint32_t SETA:1; /* new in MPC563xM */
  246. vuint32_t BI:1; /* */
  247. vuint32_t V:1; /* */
  248. } B;
  249. } BR; /* <URM>EBI_CAL_BR</URM> */
  250. union {
  251. vuint32_t R;
  252. struct {
  253. vuint32_t AM:17; /* */
  254. vuint32_t:7; /* */
  255. vuint32_t SCY:4; /* */
  256. vuint32_t:1; /* */
  257. vuint32_t BSCY:2; /* */
  258. vuint32_t:1; /* */
  259. } B;
  260. } OR; /* <URM>EBI_CAL_OR</URM> */
  261. };
  262. struct EBI_tag {
  263. union {
  264. vuint32_t R;
  265. struct {
  266. vuint32_t:5; /* */
  267. vuint32_t SIZEEN:1; /* <URM>SIZEN</URM> */
  268. vuint32_t SIZE:2; /* */
  269. vuint32_t:8; /* */
  270. vuint32_t ACGE:1; /* */
  271. vuint32_t EXTM:1; /* */
  272. vuint32_t EARB:1; /* */
  273. vuint32_t EARP:2; /* */
  274. vuint32_t:4; /* */
  275. vuint32_t MDIS:1; /* */
  276. vuint32_t:3; /* */
  277. vuint32_t D16_31:1; /* new in MPC563xM */
  278. vuint32_t AD_MUX:1; /* new in MPC563xM */
  279. vuint32_t DBM:1; /* */
  280. } B;
  281. } MCR; /* EBI Module Configuration Register (MCR) <URM>EBI_MCR</URM> @baseaddress + 0x00 */
  282. uint32_t EBI_reserved1[1];
  283. union {
  284. vuint32_t R;
  285. struct {
  286. vuint32_t:30; /* */
  287. vuint32_t TEAF:1; /* */
  288. vuint32_t BMTF:1; /* */
  289. } B;
  290. } TESR; /* EBI Transfer Error Status Register (TESR) <URM>EBI_TESR</URM> @baseaddress + 0x08 */
  291. union {
  292. vuint32_t R;
  293. struct {
  294. vuint32_t:16; /* */
  295. vuint32_t BMT:8; /* */
  296. vuint32_t BME:1; /* */
  297. vuint32_t:7; /* */
  298. } B;
  299. } BMCR; /* <URM>EBI_BMCR</URM> @baseaddress + 0x0C */
  300. struct CS_tag CS[4];
  301. uint32_t EBI_reserved2[4];
  302. /* Calibration registers */
  303. struct CAL_CS_tag CAL_CS[4];
  304. }; /* end of EBI_tag */
  305. /****************************************************************************/
  306. /* MODULE : FLASH */
  307. /****************************************************************************/
  308. /* 3 flash modules implemented. */
  309. /* HBL and HBS not used in Bank 0 / Array 0 */
  310. /* LML, SLL, LMS, PFCR1, PFAPR, PFCR2, and PFCR3 not used in */
  311. /* Bank 1 / Array 1 or Bank 1 / Array 3 */
  312. /****************************************************************************/
  313. struct FLASH_tag {
  314. union { /* Module Configuration Register (MCR)@baseaddress + 0x00 */
  315. vuint32_t R;
  316. struct {
  317. vuint32_t EDC:1; /* ECC Data Correction (Read/Clear) */
  318. vuint32_t:4; /* Reserved */
  319. vuint32_t SIZE:3; /* Array Size (Read Only) */
  320. vuint32_t:1; /* Reserved */
  321. vuint32_t LAS:3; /* Low Address Space (Read Only) */
  322. vuint32_t:3; /* Reserved */
  323. vuint32_t MAS:1; /* Mid Address Space (Read Only) */
  324. vuint32_t EER:1; /* ECC Event Error (Read/Clear) *//* <LEGACY> BBEPE and EPE </LEGACY> */
  325. vuint32_t RWE:1; /* Read While Write Event Error (Read/Clear) */
  326. vuint32_t:2; /* Reserved */
  327. vuint32_t PEAS:1; /* Program/Erase Access Space (Read Only) */
  328. vuint32_t DONE:1; /* Status (Read Only) */
  329. vuint32_t PEG:1; /* Program/Erase Good (Read Only) */
  330. vuint32_t:4; /* Reserved *//* <LEGACY> RSD PEG STOP RSVD </LEGACY> */
  331. vuint32_t PGM:1; /* Program (Read/Write) */
  332. vuint32_t PSUS:1; /* Program Suspend (Read/Write) */
  333. vuint32_t ERS:1; /* Erase (Read/Write) */
  334. vuint32_t ESUS:1; /* Erase Suspend (Read/Write) */
  335. vuint32_t EHV:1; /* Enable High Voltage (Read/Write) */
  336. } B;
  337. } MCR;
  338. union { /* Low/Mid-Address Space Block Locking Register (LML)@baseaddress + 0x04 */
  339. vuint32_t R;
  340. struct {
  341. vuint32_t LME:1; /* Low/Mid address space block enable (Read Only) */
  342. vuint32_t:10; /* Reserved */
  343. vuint32_t SLOCK:1; /*<URM>SLK</URM> *//* Shadow address space block lock (Read/Write) */
  344. vuint32_t:2; /* Reserved */
  345. vuint32_t MLOCK:2; /*<URM>MLK</URM> *//* Mid address space block lock (Read/Write) */
  346. vuint32_t:8; /* Reserved */
  347. vuint32_t LLOCK:8; /*<URM>LLK</URM> *//* Low address space block lock (Read/Write) */
  348. } B;
  349. } LMLR; /*<URM>LML</URM> */
  350. union { /* High-Address Space Block Locking Register (HBL) - @baseaddress + 0x08 */
  351. vuint32_t R;
  352. struct {
  353. vuint32_t HBE:1; /* High address space Block Enable (Read Only) */
  354. vuint32_t:27; /* Reserved */
  355. vuint32_t HBLOCK:4; /* High address space block lock (Read/Write) */
  356. } B;
  357. } HLR; /*<URM>HBL</URM> */
  358. union { /* Secondary Low/Mid-Address Space Block Locking Register (SLL)@baseaddress + 0x0C */
  359. vuint32_t R;
  360. struct {
  361. vuint32_t SLE:1; /* Secondary low/mid address space block enable (Read Only) */
  362. vuint32_t:10; /* Reserved */
  363. vuint32_t SSLOCK:1; /*<URM>SSLK</URM> *//* Secondary shadow address space block lock (Read/Write) */
  364. vuint32_t:2; /* Reserved */
  365. vuint32_t SMLOCK:2; /*<URM>SMK</URM> *//* Secondary mid address space block lock (Read/Write) */
  366. vuint32_t:8; /* Reserved */
  367. vuint32_t SLLOCK:8; /*<URM>SLK</URM> *//* Secondary low address space block lock (Read/Write) */
  368. } B;
  369. } SLMLR; /*<URM>SLL</URM> */
  370. union { /* Low/Mid-Address Space Block Select Register (LMS)@baseaddress + 0x10 */
  371. vuint32_t R;
  372. struct {
  373. vuint32_t:14; /* Reserved */
  374. vuint32_t MSEL:2; /*<URM>MSL</URM> *//* Mid address space block select (Read/Write) */
  375. vuint32_t:8; /* Reserved */
  376. vuint32_t LSEL:8; /*<URM>LSL</URM> *//* Low address space block select (Read/Write) */
  377. } B;
  378. } LMSR; /*<URM>LMS</URM> */
  379. union { /* High-Address Space Block Select Register (HBS) - not used@baseaddress + 0x14 */
  380. vuint32_t R;
  381. struct {
  382. vuint32_t:28; /* Reserved */
  383. vuint32_t HBSEL:4; /*<URM>HSL</URM> *//* High address space block select (Read/Write) */
  384. } B;
  385. } HSR; /*<URM>HBS</URM> */
  386. union { /* Address Register (ADR)@baseaddress + 0x18 */
  387. vuint32_t R;
  388. struct {
  389. vuint32_t SAD:1; /* Shadow address (Read Only) */
  390. vuint32_t:10; /* Reserved */
  391. vuint32_t ADDR:18; /*<URM>AD</URM> *//* Address 20-3 (Read Only) */
  392. vuint32_t:3; /* Reserved */
  393. } B;
  394. } AR; /*<URM>ADR</URM> */
  395. union { /* @baseaddress + 0x1C */
  396. vuint32_t R;
  397. struct {
  398. vuint32_t:7; /* Reserved */
  399. vuint32_t GCE:1; /* Global Configuration Enable (Read/Write) */
  400. vuint32_t:4; /* Reserved */
  401. vuint32_t M3PFE:1; /* Master 3 Prefetch Enable (Read/Write) */
  402. vuint32_t M2PFE:1; /* Master 2 Prefetch Enable (Read/Write) */
  403. vuint32_t M1PFE:1; /* Master 1 Prefetch Enable (Read/Write) */
  404. vuint32_t M0PFE:1; /* Master 0 Prefetch Enable (Read/Write) */
  405. vuint32_t APC:3; /* Address Pipelining Control (Read/Write) */
  406. vuint32_t WWSC:2; /* Write Wait State Control (Read/Write) */
  407. vuint32_t RWSC:3; /* Read Wait State Control (Read/Write) */
  408. vuint32_t:1; /* Reserved */
  409. vuint32_t DPFEN:1; /*<URM>DPFE</URM> *//* Data Prefetch Enable (Read/Write) */
  410. vuint32_t:1; /* Reserved */
  411. vuint32_t IPFEN:1; /*<URM>IPFE</URM> *//* Instruction Prefetch Enable (Read/Write) */
  412. vuint32_t:1; /* Reserved */
  413. vuint32_t PFLIM:2; /* Prefetch Limit (Read/Write) */
  414. vuint32_t BFEN:1; /*<URM>BFE</URM> *//* Buffer Enable (Read/Write) */
  415. } B;
  416. } BIUCR; /*<URM>PFCR1</URM> */
  417. union { /* @baseaddress + 0x20 */
  418. vuint32_t R;
  419. struct {
  420. vuint32_t:24; /* Reserved */
  421. vuint32_t M3AP:2; /* Master 3 Access Protection (Read/Write) */
  422. vuint32_t M2AP:2; /* Master 2 Access Protection (Read/Write) */
  423. vuint32_t M1AP:2; /* Master 1 Access Protection (Read/Write) */
  424. vuint32_t M0AP:2; /* Master 0 Access Protection (Read/Write) */
  425. } B;
  426. } BIUAPR; /*<URM>PFAPR</URM> */
  427. union { /* @baseaddress + 0x24 */
  428. vuint32_t R;
  429. struct {
  430. vuint32_t LBCFG:2; /* Line Buffer Configuration (Read/Write) */
  431. vuint32_t:30; /* Reserved */
  432. } B;
  433. } BIUCR2;
  434. union { /* @baseaddress + 0x28 */
  435. vuint32_t R;
  436. struct {
  437. vuint32_t:25; /* Reserved */
  438. vuint32_t B1_DPFE:1; /* Bank1 Data Prefetch Enable (Read/Write) */
  439. vuint32_t:1; /* Reserved */
  440. vuint32_t B1_IPFE:1; /* Bank1 Instruction Prefetch Enable (Read/Write) */
  441. vuint32_t:1; /* Reserved */
  442. vuint32_t B1_PFLIM:2; /* Bank1 Prefetch Limit (Read/Write) */
  443. vuint32_t B1_BFE:1; /* Bank1 Buffer Enable (Read/Write) */
  444. } B;
  445. } PFCR3;
  446. int32_t FLASH_reserverd_89[4];
  447. union { /* User Test 0 (UT0) register@baseaddress + 0x3c */
  448. vuint32_t R;
  449. struct {
  450. vuint32_t UTE:1; /* User test enable (Read/Clear) */
  451. vuint32_t SBCE:1; /* Single bit correction enable (Read/Clear) */
  452. vuint32_t:6; /* Reserved */
  453. vuint32_t DSI:8; /* Data syndrome input (Read/Write) */
  454. vuint32_t:9; /* Reserved */
  455. vuint32_t:1; /* Reserved (Read/Write) */
  456. vuint32_t MRE:1; /* Margin Read Enable (Read/Write) */
  457. vuint32_t MRV:1; /* Margin Read Value (Read/Write) */
  458. vuint32_t EIE:1; /* ECC data Input Enable (Read/Write) */
  459. vuint32_t AIS:1; /* Array Integrity Sequence (Read/Write) */
  460. vuint32_t AIE:1; /* Array Integrity Enable (Read/Write) */
  461. vuint32_t AID:1; /* Array Integrity Done (Read Only) */
  462. } B;
  463. } UT0;
  464. union { /* User Test 1 (UT1) register@baseaddress + 0x40 */
  465. vuint32_t R;
  466. struct {
  467. vuint32_t DAI:32; /* Data Array Input (Read/Write) */
  468. } B;
  469. } UT1;
  470. union { /* User Test 2 (UT2) register@baseaddress + 0x44 */
  471. vuint32_t R;
  472. struct {
  473. vuint32_t DAI:32; /* Data Array Input (Read/Write) */
  474. } B;
  475. } UT2;
  476. union { /* User Multiple Input Signature Register 0-5 (UMISR[5])@baseaddress + 0x48 */
  477. vuint32_t R;
  478. struct {
  479. vuint32_t MS:32; /* Multiple input Signature (Read/Write) */
  480. } B;
  481. } UMISR[5];
  482. }; /* end of FLASH_tag */
  483. /****************************************************************************/
  484. /* MODULE : SIU */
  485. /****************************************************************************/
  486. struct SIU_tag {
  487. union {
  488. vuint32_t R;
  489. struct {
  490. vuint32_t S_F:1; /* Identifies the Manufacturer <URM>S/F</URM> */
  491. vuint32_t FLASH_SIZE_1:4; /* Define major Flash memory size (see Table 15-4 for details) <URM>Flash Size 1</URM> */
  492. vuint32_t FLASH_SIZE_2:4; /* Define Flash memory size, small granularity (see Table 15-5 for details) <URM>Flash Size 1</URM> */
  493. vuint32_t TEMP_RANGE:2; /* Define maximum operating range <URM>Temp Range</URM> */
  494. vuint32_t:1; /* Reserved for future enhancements */
  495. vuint32_t MAX_FREQ:2; /* Define maximum device speed <URM>Max Freq</URM> */
  496. vuint32_t:1; /* Reserved for future enhancements */
  497. vuint32_t SUPPLY:1; /* Defines if the part is 5V or 3V <URM>Supply</URM> */
  498. vuint32_t PART_NUMBER:8; /* Contain the ASCII representation of the character that indicates the product <URM>Part Number</URM> */
  499. vuint32_t TBD:1; /* 1-bit field defined by SoC to describe optional feature, e.g., additional SPI */
  500. vuint32_t:2; /* Reserved for future enhancements */
  501. vuint32_t EE:1; /* Indicates if Data Flash is present */
  502. vuint32_t:3; /* Reserved for future enhancements */
  503. vuint32_t FR:1; /* Indicates if Data FlexRay is present */
  504. } B;
  505. } MIDR2; /* MCU ID Register 2 <URM>SIU_MIDR2</URM> @baseaddress + 0x4 */
  506. union {
  507. vuint32_t R;
  508. struct {
  509. vuint32_t PARTNUM:16; /* Device part number: 0x5633 */
  510. vuint32_t CSP:1; /* CSP configuration (new in MPC563xM) */
  511. vuint32_t PKG:5; /* Indicate the package the die is mounted in. (new in MPC563xM) */
  512. vuint32_t:2; /* Reserved */
  513. vuint32_t MASKNUM:8; /* MCU major mask number; updated for each complete resynthesis. MCU minor mask number; updated for each mask revision */
  514. } B;
  515. } MIDR; /* MCU ID Register (MIDR) <URM>SIU_MIDR</URM> @baseaddress + 0x8 */
  516. union {
  517. vuint32_t R;
  518. } TST; /* SIU Test Register (SIU_TST) <URM>SIU_TST</URM> @baseaddress + 0xC */
  519. union {
  520. vuint32_t R;
  521. struct {
  522. vuint32_t PORS:1; /* Power-On Reset Status */
  523. vuint32_t ERS:1; /* External Reset Status */
  524. vuint32_t LLRS:1; /* Loss of Lock Reset Status */
  525. vuint32_t LCRS:1; /* Loss of Clock Reset Status */
  526. vuint32_t WDRS:1; /* Watchdog Timer/Debug Reset Status */
  527. vuint32_t CRS:1; /* Checkstop Reset Status */
  528. vuint32_t SWTRS:1; /* Software Watchdog Timer Reset Status (new in MPC563xM) */
  529. vuint32_t:7; /* */
  530. vuint32_t SSRS:1; /* Software System Reset Status */
  531. vuint32_t SERF:1; /* Software External Reset Flag */
  532. vuint32_t WKPCFG:1; /* Weak Pull Configuration Pin Status */
  533. vuint32_t:11; /* */
  534. vuint32_t ABR:1; /* Auto Baud Rate (new in MPC563xM) */
  535. vuint32_t BOOTCFG:2; /* Reset Configuration Pin Status */
  536. vuint32_t RGF:1; /* RESET Glitch Flag */
  537. } B;
  538. } RSR; /* Reset Status Register (SIU_RSR) <URM>SIU_RSR</URM> @baseaddress + 0x10 */
  539. union {
  540. vuint32_t R;
  541. struct {
  542. vuint32_t SSR:1; /* Software System Reset */
  543. vuint32_t SER:1; /* Software External Reset */
  544. vuint32_t:14; /* */
  545. vuint32_t CRE:1; /* Checkstop Reset Enable */
  546. vuint32_t:15; /* */
  547. } B;
  548. } SRCR; /* System Reset Control Register (SRCR) <URM>SIU_SRCR</URM> @baseaddress + 0x14 */
  549. union {
  550. vuint32_t R;
  551. struct {
  552. vuint32_t NMI:1; /* Non-Maskable Interrupt Flag (new in MPC563xM) */
  553. vuint32_t:7; /* */
  554. vuint32_t SWT:1; /* Software Watch Dog Timer Interrupt Flag, from platform (new in MPC563xM) */
  555. vuint32_t:7; /* */
  556. vuint32_t EIF15:1; /* External Interrupt Request Flag x */
  557. vuint32_t EIF14:1; /* External Interrupt Request Flag x */
  558. vuint32_t EIF13:1; /* External Interrupt Request Flag x */
  559. vuint32_t EIF12:1; /* External Interrupt Request Flag x */
  560. vuint32_t EIF11:1; /* External Interrupt Request Flag x */
  561. vuint32_t EIF10:1; /* External Interrupt Request Flag x */
  562. vuint32_t EIF9:1; /* External Interrupt Request Flag x */
  563. vuint32_t EIF8:1; /* External Interrupt Request Flag x */
  564. vuint32_t:3; /* (reserved in MPC563xM) */
  565. vuint32_t EIF4:1; /* External Interrupt Request Flag x */
  566. vuint32_t EIF3:1; /* External Interrupt Request Flag x */
  567. vuint32_t:2; /* (reserved in MPC563xM) */
  568. vuint32_t EIF0:1; /* External Interrupt Request Flag x */
  569. } B;
  570. } EISR; /* SIU External Interrupt Status Register (EISR) <URM>SIU_EISR</URM> @baseaddress + 0x18 */
  571. union {
  572. vuint32_t R;
  573. struct {
  574. vuint32_t NMI_SEL:1; /* NMI Interrupt Platform Input Selection (new in MPC563xM) */
  575. vuint32_t:7; /* */
  576. vuint32_t SWT_SEL:1;
  577. vuint32_t:7;
  578. vuint32_t EIRE15:1; /* External DMA/Interrupt Request Enable x */
  579. vuint32_t EIRE14:1; /* External DMA/Interrupt Request Enable x */
  580. vuint32_t EIRE13:1; /* External DMA/Interrupt Request Enable x */
  581. vuint32_t EIRE12:1; /* External DMA/Interrupt Request Enable x */
  582. vuint32_t EIRE11:1; /* External DMA/Interrupt Request Enable x */
  583. vuint32_t EIRE10:1; /* External DMA/Interrupt Request Enable x */
  584. vuint32_t EIRE9:1; /* External DMA/Interrupt Request Enable x */
  585. vuint32_t EIRE8:1; /* External DMA/Interrupt Request Enable x */
  586. vuint32_t EIRE7:1; /* External DMA/Interrupt Request Enable x */
  587. vuint32_t EIRE6:1; /* External DMA/Interrupt Request Enable x */
  588. vuint32_t EIRE5:1; /* External DMA/Interrupt Request Enable x */
  589. vuint32_t EIRE4:1; /* External DMA/Interrupt Request Enable x */
  590. vuint32_t EIRE3:1; /* External DMA/Interrupt Request Enable x */
  591. vuint32_t EIRE2:1; /* External DMA/Interrupt Request Enable x */
  592. vuint32_t EIRE1:1; /* External DMA/Interrupt Request Enable x */
  593. vuint32_t EIRE0:1; /* External DMA/Interrupt Request Enable x */
  594. } B;
  595. } DIRER; /* DMA/Interrupt Request Enable Register (DIRER) <URM>SIU_DIRER</URM> @baseaddress + 0x1C */
  596. union {
  597. vuint32_t R;
  598. struct {
  599. vuint32_t:28; /* */
  600. vuint32_t DIRS3:1; /* DMA/Interrupt Request Select x */
  601. vuint32_t:2; /* reserved in MPC563xM */
  602. vuint32_t DIRS0:1; /* DMA/Interrupt Request Select x */
  603. } B;
  604. } DIRSR; /* DMA/Interrupt Request Select Register (DIRSR) <URM>SIU_DIRSR</URM> @baseaddress + 0x20 */
  605. union {
  606. vuint32_t R;
  607. struct {
  608. vuint32_t:16; /* */
  609. vuint32_t OVF15:1; /* Overrun Flag x */
  610. vuint32_t OVF14:1; /* Overrun Flag x */
  611. vuint32_t OVF13:1; /* Overrun Flag x */
  612. vuint32_t OVF12:1; /* Overrun Flag x */
  613. vuint32_t OVF11:1; /* Overrun Flag x */
  614. vuint32_t OVF10:1; /* Overrun Flag x */
  615. vuint32_t OVF9:1; /* Overrun Flag x */
  616. vuint32_t OVF8:1; /* Overrun Flag x */
  617. vuint32_t:3; /* reserved in MPC563xM */
  618. vuint32_t OVF4:1; /* Overrun Flag x */
  619. vuint32_t OVF3:1; /* Overrun Flag x */
  620. vuint32_t:2; /* reserved in MPC563xM */
  621. vuint32_t OVF0:1; /* Overrun Flag x */
  622. } B;
  623. } OSR; /* Overrun Status Register (OSR) <URM>SIU_OSR</URM> @baseaddress + 0x24 */
  624. union {
  625. vuint32_t R;
  626. struct {
  627. vuint32_t:16; /* */
  628. vuint32_t ORE15:1; /* Overrun Request Enable x */
  629. vuint32_t ORE14:1; /* Overrun Request Enable x */
  630. vuint32_t ORE13:1; /* Overrun Request Enable x */
  631. vuint32_t ORE12:1; /* Overrun Request Enable x */
  632. vuint32_t ORE11:1; /* Overrun Request Enable x */
  633. vuint32_t ORE10:1; /* Overrun Request Enable x */
  634. vuint32_t ORE9:1; /* Overrun Request Enable x */
  635. vuint32_t ORE8:1; /* Overrun Request Enable x */
  636. vuint32_t:3; /* reserved in MPC563xM */
  637. vuint32_t ORE4:1; /* Overrun Request Enable x */
  638. vuint32_t ORE3:1; /* Overrun Request Enable x */
  639. vuint32_t:2; /* reserved in MPC563xM */
  640. vuint32_t ORE0:1; /* Overrun Request Enable x */
  641. } B;
  642. } ORER; /* Overrun Request Enable Register (ORER) <URM>SIU_ORER</URM> @baseaddress + 0x28 */
  643. union {
  644. vuint32_t R;
  645. struct {
  646. vuint32_t NMIRE:1; /* NMI Rising-Edge Event Enable x (new in MPC563xM) */
  647. vuint32_t:15; /* reserved in MPC563xM */
  648. vuint32_t IREE15:1; /* IRQ Rising-Edge Event Enable x */
  649. vuint32_t IREE14:1; /* IRQ Rising-Edge Event Enable x */
  650. vuint32_t IREE13:1; /* IRQ Rising-Edge Event Enable x */
  651. vuint32_t IREE12:1; /* IRQ Rising-Edge Event Enable x */
  652. vuint32_t IREE11:1; /* IRQ Rising-Edge Event Enable x */
  653. vuint32_t IREE10:1; /* IRQ Rising-Edge Event Enable x */
  654. vuint32_t IREE9:1; /* IRQ Rising-Edge Event Enable x */
  655. vuint32_t IREE8:1; /* IRQ Rising-Edge Event Enable x */
  656. vuint32_t:3; /* reserved in MPC563xM */
  657. vuint32_t IREE4:1; /* IRQ Rising-Edge Event Enable x */
  658. vuint32_t IREE3:1; /* IRQ Rising-Edge Event Enable x */
  659. vuint32_t:2; /* reserved in MPC563xM */
  660. vuint32_t IREE0:1; /* IRQ Rising-Edge Event Enable x */
  661. } B;
  662. } IREER; /* External IRQ Rising-Edge Event Enable Register (IREER) <URM>SIU_IREER</URM> @baseaddress + 0x2C */
  663. union {
  664. vuint32_t R;
  665. struct {
  666. vuint32_t NMIFE:1; /* NMI Falling-Edge Event Enable x (new in MPC563xM) */
  667. vuint32_t Reserverd:15; /* */
  668. vuint32_t IFEE15:1; /* IRQ Falling-Edge Event Enable x */
  669. vuint32_t IFEE14:1; /* IRQ Falling-Edge Event Enable x */
  670. vuint32_t IFEE13:1; /* IRQ Falling-Edge Event Enable x */
  671. vuint32_t IFEE12:1; /* IRQ Falling-Edge Event Enable x */
  672. vuint32_t IFEE11:1; /* IRQ Falling-Edge Event Enable x */
  673. vuint32_t IFEE10:1; /* IRQ Falling-Edge Event Enable x */
  674. vuint32_t IFEE9:1; /* IRQ Falling-Edge Event Enable x */
  675. vuint32_t IFEE8:1; /* IRQ Falling-Edge Event Enable x */
  676. vuint32_t:3; /* reserved in MPC563xM */
  677. vuint32_t IFEE4:1; /* IRQ Falling-Edge Event Enable x */
  678. vuint32_t IFEE3:1; /* IRQ Falling-Edge Event Enable x */
  679. vuint32_t:2; /* reserved in MPC563xM */
  680. vuint32_t IFEE0:1; /* IRQ Falling-Edge Event Enable x */
  681. } B;
  682. } IFEER; /* External IRQ Falling-Edge Event Enable Regi (IFEER) <URM>SIU_IFEER</URM> @baseaddress + 0x30 */
  683. union {
  684. vuint32_t R;
  685. struct {
  686. vuint32_t:28; /* */
  687. vuint32_t DFL:4; /* Digital Filter Length */
  688. } B;
  689. } IDFR; /* External IRQ Digital Filter Register (IDFR) <URM>SIU_IDFR</URM> @baseaddress + 0x40 */
  690. int32_t SIU_reserverd_153[3];
  691. union {
  692. vuint16_t R;
  693. struct {
  694. vuint16_t:2; /* */
  695. vuint16_t PA:4; /* */
  696. vuint16_t OBE:1; /* */
  697. vuint16_t IBE:1; /* */
  698. vuint16_t DSC:2; /* */
  699. vuint16_t ODE:1; /* */
  700. vuint16_t HYS:1; /* */
  701. vuint16_t SRC:2; /* */
  702. vuint16_t WPE:1; /* */
  703. vuint16_t WPS:1; /* */
  704. } B;
  705. } PCR[512]; /* Pad Configuration Register (PCR) <URM>SIU_PCR</URM> @baseaddress + 0x600 */
  706. int32_t SIU_reserverd_164[112];
  707. union {
  708. vuint8_t R;
  709. struct {
  710. vuint8_t:7; /* */
  711. vuint8_t PDO:1; /* */
  712. } B;
  713. } GPDO[512]; /* GPIO Pin Data Output Register (GPDO) <URM>SIU_GDPO</URM> @baseaddress + 0x800 */
  714. union {
  715. vuint8_t R;
  716. struct {
  717. vuint8_t:7; /* */
  718. vuint8_t PDI:1; /* */
  719. } B;
  720. } GPDI[256]; /* GPIO Pin Data Input Register (GDPI) <URM>SIU_GDPI</URM> @baseaddress + 0x900 */
  721. union {
  722. vuint32_t R;
  723. struct {
  724. vuint32_t TSEL5:2; /* eQADC Trigger 5 Input */
  725. vuint32_t TSEL4:2; /* eQADC Trigger 4 Input */
  726. vuint32_t TSEL3:2; /* eQADC Trigger 3 Input */
  727. vuint32_t TSEL2:2; /* eQADC Trigger 4 Input */
  728. vuint32_t TSEL1:2; /* eQADC Trigger 1 Input */
  729. vuint32_t TSEL0:2; /* eQADC Trigger 0 Input */
  730. vuint32_t:20; /* */
  731. } B;
  732. } ETISR; /* eQADC Trigger Input Select Register (ETISR) <URM>SIU_ETISR</URM> @baseaddress + 0x904 */
  733. union {
  734. vuint32_t R;
  735. struct {
  736. vuint32_t ESEL15:2; /* External IRQ Input Select x */
  737. vuint32_t ESEL14:2; /* External IRQ Input Select x */
  738. vuint32_t ESEL13:2; /* External IRQ Input Select x */
  739. vuint32_t ESEL12:2; /* External IRQ Input Select x */
  740. vuint32_t ESEL11:2; /* External IRQ Input Select x */
  741. vuint32_t ESEL10:2; /* External IRQ Input Select x */
  742. vuint32_t ESEL9:2; /* External IRQ Input Select x */
  743. vuint32_t ESEL8:2; /* External IRQ Input Select x */
  744. vuint32_t ESEL7:2; /* External IRQ Input Select x */
  745. vuint32_t ESEL6:2; /* External IRQ Input Select x */
  746. vuint32_t ESEL5:2; /* External IRQ Input Select x */
  747. vuint32_t ESEL4:2; /* External IRQ Input Select x */
  748. vuint32_t ESEL3:2; /* External IRQ Input Select x */
  749. vuint32_t ESEL2:2; /* External IRQ Input Select x */
  750. vuint32_t ESEL1:2; /* External IRQ Input Select x */
  751. vuint32_t ESEL0:2; /* External IRQ Input Select x */
  752. } B;
  753. } EIISR; /* External IRQ Input Select Register (EIISR) <URM>SIU_EIISR</URM> @baseaddress + 0x908 */
  754. union {
  755. vuint32_t R;
  756. struct {
  757. vuint32_t:8; /* reserved in MPC563xM */
  758. vuint32_t SINSELB:2; /* DSPI_B Data Input Select <URM>SIN-SELB</URM> */
  759. vuint32_t SSSELB:2; /* DSPI_B Slave Select Input Select <URM>SS-SELB</URM> */
  760. vuint32_t SCKSELB:2; /* DSPI_B Clock Input Select <URM>SCK-SELB</URM> */
  761. vuint32_t TRIGSELB:2; /* DSPI_B Trigger Input Select <URM>TRIG-SELB</URM> */
  762. vuint32_t SINSELC:2; /* DSPI_C Data Input Select <URM>SIN-SELC</URM> */
  763. vuint32_t SSSELC:2; /* DSPI_C Slave Select Input Select <URM>SSSELC</URM> */
  764. vuint32_t SCKSELC:2; /* DSPI_C Clock Input Select <URM>SCK-SELC</URM> */
  765. vuint32_t TRIGSELC:2; /* DSPI_C Trigger Input Select <URM>TRIG-SELC</URM> */
  766. vuint32_t:8; /* reserved in MPC563xM */
  767. } B;
  768. } DISR; /* DSPI Input Select Register (DISR) <URM>SIU_DISR</URM> @baseaddress + 0x90c */
  769. union {
  770. vuint32_t R;
  771. struct {
  772. vuint32_t:2; /* */
  773. vuint32_t ETSEL5:5; /* eQADC queue X Enhanced Trigger Selection <URM>eTSEL5</URM> */
  774. vuint32_t ETSEL4:5; /* eQADC queue X Enhanced Trigger Selection <URM>eTSEL4</URM> */
  775. vuint32_t ETSEL3:5; /* eQADC queue X Enhanced Trigger Selection <URM>eTSEL3</URM> */
  776. vuint32_t ETSEL2:5; /* eQADC queue X Enhanced Trigger Selection <URM>eTSEL2</URM> */
  777. vuint32_t ETSEL1:5; /* eQADC queue X Enhanced Trigger Selection <URM>eTSEL1</URM> */
  778. vuint32_t ETSEL0:5; /* eQADC queue X Enhanced Trigger Selection <URM>eTSEL0</URM> */
  779. } B;
  780. } ISEL3; /* MUX Select Register 3 (ISEL3) (new in MPC563xM) <URM>SIU_ISEL3</URM> @baseaddress + 0x920 */
  781. int32_t SIU_reserverd_214[4];
  782. union {
  783. vuint32_t R;
  784. struct {
  785. vuint32_t:11; /* */
  786. vuint32_t ESEL5:1; /* <URM>eSEL5</URM> */
  787. vuint32_t:3; /* */
  788. vuint32_t ESEL4:1; /* <URM>eSEL4</URM> */
  789. vuint32_t:3; /* */
  790. vuint32_t ESEL3:1; /* <URM>eSEL3</URM> */
  791. vuint32_t:3; /* */
  792. vuint32_t ESEL2:1; /* <URM>eSEL2</URM> */
  793. vuint32_t:3; /* */
  794. vuint32_t ESEL1:1; /* <URM>eSEL1</URM> */
  795. vuint32_t:3; /* */
  796. vuint32_t ESEL0:1; /* <URM>eSEL0</URM> */
  797. } B;
  798. } ISEL8; /* MUX Select Register 8 (ISEL8) (new in MPC563xM) <URM>SIU_ISEL8</URM> @baseaddress + 0x924 */
  799. union {
  800. vuint32_t R;
  801. struct {
  802. vuint32_t:27; /* */
  803. vuint32_t ETSEL0A:5; /* <URM>eTSEL0A</URM> */
  804. } B;
  805. } ISEL9; /* MUX Select Register 9(ISEL9) <URM>SIU_ISEL9</URM> @baseaddress + 0x980 */
  806. int32_t SIU_reserverd_230[22];
  807. union {
  808. vuint32_t R;
  809. struct {
  810. vuint32_t:14; /* */
  811. vuint32_t MATCH:1; /* Compare Register Match */
  812. vuint32_t DISNEX:1; /* Disable Nexus */
  813. vuint32_t:14; /* */
  814. vuint32_t CRSE:1; /* Calibration Reflection Suppression Enable (new in MPC563xM) */
  815. vuint32_t:1; /* */
  816. } B;
  817. } CCR; /* Chip Configuration Register (CCR) <URM>SIU_CCR</URM> @baseaddress + 0x984 */
  818. union {
  819. vuint32_t R;
  820. struct {
  821. vuint32_t:28; /* The ENGDIV bit is reserved in MPC563xM */
  822. vuint32_t EBTS:1; /* External Bus Tap Select */
  823. vuint32_t:1; /* */
  824. vuint32_t EBDF:2; /* External Bus Division Factor */
  825. } B;
  826. } ECCR; /* External Clock Control Register (ECCR) <URM>SIU_ECCR</URM> @baseaddress + 0x988 */
  827. union {
  828. vuint32_t R;
  829. } CARH; /* Compare A High Register (CARH) <URM>SIU_CMPAH</URM> @baseaddress + 0x98C */
  830. union {
  831. vuint32_t R;
  832. } CARL; /* Compare A Low Register (CARL) <URM>SIU_CMPAL</URM> @baseaddress + 0x990 */
  833. union {
  834. vuint32_t R;
  835. } CBRH; /* Compare B High Register (CBRH) <URM>SIU_CMPBH</URM> @baseaddress + 0x994 */
  836. union {
  837. vuint32_t R;
  838. } CBRL; /* Compare B Low Register (CBRL) <URM>SIU_CMPBL</URM> @baseaddress + 0x9A0 */
  839. int32_t SIU_reserverd_250[2];
  840. union {
  841. vuint32_t R;
  842. struct {
  843. vuint32_t:27; /* Reserved */
  844. vuint32_t BYPASS:1; /* Bypass bit <URM>BY-PASS</URM> */
  845. vuint32_t SYSCLKDIV:2; /* System Clock Divide <URM>SYS-CLKDIV</URM> */
  846. vuint32_t:2; /* Reserved */
  847. } B;
  848. } SYSDIV; /* System Clock Register (SYSDIV) (new in MPC563xM) <URM>SIU_SYSDIV</URM> @baseaddress + 0x9A4 */
  849. union {
  850. vuint32_t R;
  851. struct {
  852. vuint32_t CPUSTP:1; /* CPU stop request. When asserted, a stop request is sent to the following modules: */
  853. vuint32_t:2; /* Reserved */
  854. vuint32_t SWTSTP:1; /* SWT stop request. When asserted, a stop request is sent to the Software Watchdog */
  855. vuint32_t:1; /* Reserved */
  856. vuint32_t TPUSTP:1; /* eTPU stop request. When asserted, a stop request is sent to the eTPU module. */
  857. vuint32_t NPCSTP:1; /* Nexus stop request. When asserted, a stop request is sent to the Nexus Controller. */
  858. vuint32_t EBISTP:1; /* EBI stop request. When asserted, a stop request is sent to the external bus */
  859. vuint32_t ADCSTP:1; /* eQADC stop request. When asserted, a stop request is sent to the eQADC module. */
  860. vuint32_t:1; /* Reserved */
  861. vuint32_t MIOSSTP:1; /* Stop mode request */
  862. vuint32_t DFILSTP:1; /* Decimation filter stop request. When asserted, a stop request is sent to the */
  863. vuint32_t:1; /* Reserved */
  864. vuint32_t PITSTP:1; /* PIT stop request. When asserted, a stop request is sent to the periodical internal */
  865. vuint32_t:3; /* Reserved */
  866. vuint32_t CNCSTP:1; /* FlexCAN C stop request. When asserted, a stop request is sent to the FlexCAN C */
  867. vuint32_t:1; /* Reserved */
  868. vuint32_t CNASTP:1; /* FlexCAN A stop request. When asserted, a stop request is sent to the FlexCAN A */
  869. vuint32_t:1; /* Reserved */
  870. vuint32_t SPICSTP:1; /* DSPI C stop request. When asserted, a stop request is sent to the DSPI C. */
  871. vuint32_t SPIBSTP:1; /* DSPI B stop request. When asserted, a stop request is sent to the DSPI B. */
  872. vuint32_t:7; /* Reserved */
  873. vuint32_t SCIBSTP:1; /* eSCI B stop request. When asserted, a stop request is sent to the eSCI B module. */
  874. vuint32_t SCIASTP:1; /* eSCI A stop request. When asserted, a stop request is sent to the eSCIA module. */
  875. } B;
  876. } HLT; /* Halt Register (HLT) (new in MPC563xM) <URM>SIU_HLT</URM> @baseaddress + 0x9A8 */
  877. union {
  878. vuint32_t R;
  879. struct {
  880. vuint32_t CPUACK:1; /* CPU stop acknowledge. When asserted, indicates that a stop acknowledge was */
  881. vuint32_t:2; /* Reserved */
  882. vuint32_t SWTACK:1; /* SWT stop acknowledge. When asserted, indicates that a stop acknowledge was */
  883. vuint32_t:1; /* Reserved */
  884. vuint32_t TPUACK:1; /* eTPU stop acknowledge. When asserted, indicates that a stop acknowledge was */
  885. vuint32_t NPCACK:1; /* Nexus stop acknowledge. When asserted, indicates that a stop acknowledge was */
  886. vuint32_t EBIACK:1; /* EBI stop acknowledge. When asserted, indicates that a stop acknowledge was */
  887. vuint32_t ADCACK:1; /* eQADC stop acknowledge. When asserted, indicates that a stop acknowledge was */
  888. vuint32_t:1; /* Reserved */
  889. vuint32_t MIOSACK:1; /* eMIOS stop acknowledge. When asserted, indicates that a stop acknowledge was */
  890. vuint32_t DFILACK:1; /* Decimation filter stop acknowledge. When asserted, indicates that a stop */
  891. vuint32_t:1; /* Reserved */
  892. vuint32_t PITACK:1; /* PIT stop acknowledge. When asserted, indicates that a stop acknowledge was */
  893. vuint32_t:3; /* Reserved */
  894. vuint32_t CNCACK:1; /* FlexCAN C stop acknowledge. When asserted, indicates that a stop acknowledge */
  895. vuint32_t:1; /* Reserved */
  896. vuint32_t CNAACK:1; /* FlexCAN A stop acknowledge. When asserted, indicates that a stop acknowledge */
  897. vuint32_t:1; /* Reserved */
  898. vuint32_t SPICACK:1; /* DSPI C stop acknowledge. When asserted, indicates that a stop acknowledge was */
  899. vuint32_t SPIBACK:1; /* DSPI B stop acknowledge. When asserted, indicates that a stop acknowledge was */
  900. vuint32_t:7; /* Reserved */
  901. vuint32_t SCIBACK:1; /* eSCI B stop acknowledge */
  902. vuint32_t SCIAACK:1; /* eSCI A stop acknowledge. */
  903. } B;
  904. } HLTACK; /* Halt Acknowledge Register (HLTACK) (new in MPC563xM) <URM>SIU_HLTACK</URM> @baseaddress + 0x9ac */
  905. int32_t SIU_reserved3[21];
  906. }; /* end of SIU_tag */
  907. /****************************************************************************/
  908. /* MODULE : EMIOS */
  909. /****************************************************************************/
  910. struct EMIOS_tag {
  911. union {
  912. vuint32_t R;
  913. struct {
  914. vuint32_t DOZEEN:1; /* new in MPC563xM */
  915. vuint32_t MDIS:1;
  916. vuint32_t FRZ:1;
  917. vuint32_t GTBE:1;
  918. vuint32_t ETB:1;
  919. vuint32_t GPREN:1;
  920. vuint32_t:6;
  921. vuint32_t SRV:4;
  922. vuint32_t GPRE:8;
  923. vuint32_t:8;
  924. } B;
  925. } MCR; /* Module Configuration Register <URM>EMIOSMCR</URM> */
  926. union {
  927. vuint32_t R;
  928. struct {
  929. vuint32_t:8;
  930. vuint32_t F23:1;
  931. vuint32_t F22:1;
  932. vuint32_t F21:1;
  933. vuint32_t F20:1;
  934. vuint32_t F19:1;
  935. vuint32_t F18:1;
  936. vuint32_t F17:1;
  937. vuint32_t F16:1;
  938. vuint32_t F15:1;
  939. vuint32_t F14:1;
  940. vuint32_t F13:1;
  941. vuint32_t F12:1;
  942. vuint32_t F11:1;
  943. vuint32_t F10:1;
  944. vuint32_t F9:1;
  945. vuint32_t F8:1;
  946. vuint32_t F7:1;
  947. vuint32_t F6:1;
  948. vuint32_t F5:1;
  949. vuint32_t F4:1;
  950. vuint32_t F3:1;
  951. vuint32_t F2:1;
  952. vuint32_t F1:1;
  953. vuint32_t F0:1;
  954. } B;
  955. } GFR; /* Global FLAG Register <URM>EMIOSGFLAG</URM> */
  956. union {
  957. vuint32_t R;
  958. struct {
  959. vuint32_t:8;
  960. vuint32_t OU23:1;
  961. vuint32_t OU22:1;
  962. vuint32_t OU21:1;
  963. vuint32_t OU20:1;
  964. vuint32_t OU19:1;
  965. vuint32_t OU18:1;
  966. vuint32_t OU17:1;
  967. vuint32_t OU16:1;
  968. vuint32_t OU15:1;
  969. vuint32_t OU14:1;
  970. vuint32_t OU13:1;
  971. vuint32_t OU12:1;
  972. vuint32_t OU11:1;
  973. vuint32_t OU10:1;
  974. vuint32_t OU9:1;
  975. vuint32_t OU8:1;
  976. vuint32_t OU7:1;
  977. vuint32_t OU6:1;
  978. vuint32_t OU5:1;
  979. vuint32_t OU4:1;
  980. vuint32_t OU3:1;
  981. vuint32_t OU2:1;
  982. vuint32_t OU1:1;
  983. vuint32_t OU0:1;
  984. } B;
  985. } OUDR; /* Output Update Disable Register <URM>EMIOSOUDIS</URM> */
  986. union {
  987. vuint32_t R;
  988. struct {
  989. vuint32_t:8; /* */
  990. vuint32_t CHDIS23:1; /* Enable Channel [n] bit */
  991. vuint32_t CHDIS22:1; /* Enable Channel [n] bit */
  992. vuint32_t CHDIS21:1; /* Enable Channel [n] bit */
  993. vuint32_t CHDIS20:1; /* Enable Channel [n] bit */
  994. vuint32_t CHDIS19:1; /* Enable Channel [n] bit */
  995. vuint32_t CHDIS18:1; /* Enable Channel [n] bit */
  996. vuint32_t CHDIS17:1; /* Enable Channel [n] bit */
  997. vuint32_t CHDIS16:1; /* Enable Channel [n] bit */
  998. vuint32_t CHDIS15:1; /* Enable Channel [n] bit */
  999. vuint32_t CHDIS14:1; /* Enable Channel [n] bit */
  1000. vuint32_t CHDIS13:1; /* Enable Channel [n] bit */
  1001. vuint32_t CHDIS12:1; /* Enable Channel [n] bit */
  1002. vuint32_t CHDIS11:1; /* Enable Channel [n] bit */
  1003. vuint32_t CHDIS10:1; /* Enable Channel [n] bit */
  1004. vuint32_t CHDIS9:1; /* Enable Channel [n] bit */
  1005. vuint32_t CHDIS8:1; /* Enable Channel [n] bit */
  1006. vuint32_t CHDIS7:1; /* Enable Channel [n] bit */
  1007. vuint32_t CHDIS6:1; /* Enable Channel [n] bit */
  1008. vuint32_t CHDIS5:1; /* Enable Channel [n] bit */
  1009. vuint32_t CHDIS4:1; /* Enable Channel [n] bit */
  1010. vuint32_t CHDIS3:1; /* Enable Channel [n] bit */
  1011. vuint32_t CHDIS2:1; /* Enable Channel [n] bit */
  1012. vuint32_t CHDIS1:1; /* Enable Channel [n] bit */
  1013. vuint32_t CHDIS0:1; /* Enable Channel [n] bit */
  1014. } B;
  1015. } UCDIS; /* Disable Channel (EMIOSUCDIS) <URM>EMIOSUCDIS</URM> (new in MPC563xM) @baseaddress + 0x0C */
  1016. int32_t EMIOS_reserverd_30[4];
  1017. struct {
  1018. union {
  1019. vuint32_t R; /* Channel A Data Register */
  1020. } CADR; /* <URM>EMIOSA</URM> */
  1021. union {
  1022. vuint32_t R; /* Channel B Data Register */
  1023. } CBDR; /* <URM>EMIOSB</URM> */
  1024. union {
  1025. vuint32_t R; /* Channel Counter Register */
  1026. } CCNTR; /* <URM>EMIOSCNT</URM> */
  1027. union {
  1028. vuint32_t R;
  1029. struct {
  1030. vuint32_t FREN:1;
  1031. vuint32_t ODIS:1;
  1032. vuint32_t ODISSL:2;
  1033. vuint32_t UCPRE:2;
  1034. vuint32_t UCPREN:1;
  1035. vuint32_t DMA:1;
  1036. vuint32_t:1;
  1037. vuint32_t IF:4;
  1038. vuint32_t FCK:1;
  1039. vuint32_t FEN:1;
  1040. vuint32_t:3;
  1041. vuint32_t FORCMA:1;
  1042. vuint32_t FORCMB:1;
  1043. vuint32_t:1;
  1044. vuint32_t BSL:2;
  1045. vuint32_t EDSEL:1;
  1046. vuint32_t EDPOL:1;
  1047. vuint32_t MODE:7;
  1048. } B;
  1049. } CCR; /* Channel Control Register <URM>EMIOSC</URM> */
  1050. union {
  1051. vuint32_t R;
  1052. struct {
  1053. vuint32_t OVR:1;
  1054. vuint32_t:15;
  1055. vuint32_t OVFL:1;
  1056. vuint32_t:12;
  1057. vuint32_t UCIN:1;
  1058. vuint32_t UCOUT:1;
  1059. vuint32_t FLAG:1;
  1060. } B;
  1061. } CSR; /* Channel Status Register <URM>EMIOSS</URM> */
  1062. union {
  1063. vuint32_t R; /* Alternate Channel A Data Register */
  1064. } ALTA; /* new in MPC563xM <URM>EMIOSALTA</URM> */
  1065. uint32_t emios_channel_reserved[2];
  1066. } CH[24];
  1067. }; /* end of EMIOS_tag */
  1068. /****************************************************************************/
  1069. /* MODULE : ETPU */
  1070. /****************************************************************************/
  1071. struct ETPU_tag { /* offset 0x0000 */
  1072. union { /* eTPU module configuration register@baseaddress + 0x00 */
  1073. vuint32_t R;
  1074. struct {
  1075. vuint32_t GEC:1; /* Global Exception Clear */
  1076. vuint32_t SDMERR:1; /* */
  1077. vuint32_t WDTOA:1; /* */
  1078. vuint32_t WDTOB:1; /* */
  1079. vuint32_t MGE1:1; /* <URM>MGEA</URM> */
  1080. vuint32_t MGE2:1; /* <URM>MGEB</URM> */
  1081. vuint32_t ILF1:1; /* Invalid instruction flag eTPU A. <URM>ILFFA</URM> */
  1082. vuint32_t ILF2:1; /* Invalid instruction flag eTPU B. <URM>ILFFB</URM> */
  1083. vuint32_t SCMERR:1; /* . */
  1084. vuint32_t:2; /* */
  1085. vuint32_t SCMSIZE:5; /* Shared Code Memory size */
  1086. vuint32_t:4; /* */
  1087. vuint32_t SCMMISC:1; /* SCM MISC Flag */
  1088. vuint32_t SCMMISF:1; /* SCM MISC Flag */
  1089. vuint32_t SCMMISEN:1; /* SCM MISC Enable */
  1090. vuint32_t:2; /* */
  1091. vuint32_t VIS:1; /* SCM Visability */
  1092. vuint32_t:5; /* */
  1093. vuint32_t GTBE:1; /* Global Time Base Enable */
  1094. } B;
  1095. } MCR; /* <URM>ETPU_MCR</URM> */
  1096. /* offset 0x0004 */
  1097. union { /* eTPU coherent dual-parameter controller register@baseaddress + 0x04 */
  1098. vuint32_t R;
  1099. struct {
  1100. vuint32_t STS:1; /* Start Status bit */
  1101. vuint32_t CTBASE:5; /* Channel Transfer Base */
  1102. vuint32_t PBASE:10; /* Parameter Buffer Base Address <URM>PBBASE</URM> */
  1103. vuint32_t PWIDTH:1; /* Parameter Width */
  1104. vuint32_t PARAM0:7; /* Channel Parameter 0 <URM>PARM0</URM> */
  1105. vuint32_t WR:1; /* */
  1106. vuint32_t PARAM1:7; /* Channel Parameter 1 <URM>PARM1</URM> */
  1107. } B;
  1108. } CDCR; /*<URM>ETPU_CDCR</URM> */
  1109. vuint32_t ETPU_reserved_0;
  1110. /* offset 0x000C */
  1111. union { /* eTPU MISC Compare Register@baseaddress + 0x0c */
  1112. vuint32_t R;
  1113. struct {
  1114. vuint32_t ETPUMISCCMP:32; /* Expected multiple input signature calculator compare register value. <URM>EMISCCMP</URM> */
  1115. } B;
  1116. } MISCCMPR /*<URM>ETPU_MISCCMPR</URM> */ ;
  1117. /* offset 0x0010 */
  1118. union { /* eTPU SCM Off-Range Data Register@baseaddress + 0x10 */
  1119. vuint32_t R;
  1120. struct {
  1121. vuint32_t ETPUSCMOFFDATA:32; /* SCM Off-range read data value. */
  1122. } B;
  1123. } SCMOFFDATAR; /*<URM>ETPU_SCMOFFDATAR</URM> */
  1124. /* offset 0x0014 */
  1125. union { /* eTPU Engine Configuration Register (ETPUA_ECR)@baseaddress + 0x14 */
  1126. vuint32_t R;
  1127. struct {
  1128. vuint32_t FEND:1; /* Force END */
  1129. vuint32_t MDIS:1; /* Low power Stop */
  1130. vuint32_t:1; /* */
  1131. vuint32_t STF:1; /* Stop Flag */
  1132. vuint32_t:4; /* */
  1133. vuint32_t HLTF:1; /* Halt Mode Flag */
  1134. vuint32_t:3; /* */
  1135. vuint32_t FCSS:1;
  1136. vuint32_t FPSCK:3; /* Filter Prescaler Clock Control */
  1137. vuint32_t CDFC:2; /* */
  1138. vuint32_t:1; /* */
  1139. vuint32_t ERBA:5; /* */
  1140. vuint32_t SPPDIS:1; /* */
  1141. vuint32_t:2; /* */
  1142. vuint32_t ETB:5; /* Entry Table Base */
  1143. } B;
  1144. } ECR_A; /*<URM>ETPU_ECR</URM> */
  1145. vuint32_t ETPU_reserved_1[2];
  1146. /* offset 0x0020 */
  1147. union { /* eTPU Time Base Configuration Register (ETPU_TBCR)@baseaddress + 0x20 */
  1148. vuint32_t R;
  1149. struct {
  1150. vuint32_t TCR2CTL:3; /* TCR2 Clock/Gate Control */
  1151. vuint32_t TCRCF:2; /* TCRCLK Signal Filter Control */
  1152. vuint32_t AM:2; /* Angle Mode */
  1153. vuint32_t:3; /* */
  1154. vuint32_t TCR2P:6; /* TCR2 Prescaler Control */
  1155. vuint32_t TCR1CTL:2; /* TCR1 Clock/Gate Control */
  1156. vuint32_t TCR1CS:1; /* */
  1157. vuint32_t:5; /* */
  1158. vuint32_t TCR1P:8; /* TCR1 Prescaler Control */
  1159. } B;
  1160. } TBCR_A; /*<URM>ETPU_TBCR</URM> */
  1161. /* offset 0x0024 */
  1162. union { /* eTPU Time Base 1 (TCR1) Visibility Register (ETPU_TB1R)@baseaddress + 0x24 */
  1163. vuint32_t R;
  1164. struct {
  1165. vuint32_t:8; /* */
  1166. vuint32_t TCR1:24; /* TCR1 value. Used on matches and captures. For more information, see the eTPU reference manual. */
  1167. } B;
  1168. } TB1R_A; /*<URM>ETPU_TB1R</URM> */
  1169. /* offset 0x0028 */
  1170. union { /* eTPU Time Base 2 (TCR2) Visibility Register (ETPU_TB2R)@baseaddress + 0x28 */
  1171. vuint32_t R;
  1172. struct {
  1173. vuint32_t:8; /* */
  1174. vuint32_t TCR2:24; /* TCR2 value. Used on matches and captures. For information on TCR2, see the eTPU reference manual. */
  1175. } B;
  1176. } TB2R_A; /*<URM>ETPU_TB2R</URM> */
  1177. /* offset 0x002C */
  1178. union { /* STAC Bus Configuration Register (ETPU_STACCR)@baseaddress + 0x2c */
  1179. vuint32_t R;
  1180. struct {
  1181. vuint32_t REN1:1; /* Resource Enable TCR1 */
  1182. vuint32_t RSC1:1; /* Resource Control TCR1 */
  1183. vuint32_t:2; /* */
  1184. vuint32_t SERVER_ID1:4; /* */
  1185. vuint32_t:4; /* */
  1186. vuint32_t SRV1:4; /* Resource Server Slot */
  1187. vuint32_t REN2:1; /* Resource Enable TCR2 */
  1188. vuint32_t RSC2:1; /* Resource Control TCR2 */
  1189. vuint32_t:2; /* */
  1190. vuint32_t SERVER_ID2:4; /* */
  1191. vuint32_t:4; /* */
  1192. vuint32_t SRV2:4; /* Resource Server Slot */
  1193. } B;
  1194. } REDCR_A; /*<URM>ETPU_REDCR</URM> */
  1195. vuint32_t ETPU_reserved_2[12];
  1196. /* offset 0x0060 */
  1197. union { /* ETPU1 WDTR Register */
  1198. vuint32_t R;
  1199. struct {
  1200. vuint32_t WDM:2;
  1201. vuint32_t:14;
  1202. vuint32_t WDCNT:16;
  1203. } B;
  1204. } WDTR_A;
  1205. vuint32_t ETPU1_reserved_3;
  1206. /* offset 0x0068 */
  1207. union { /* ETPU1 IDLE Register */
  1208. vuint32_t R;
  1209. struct {
  1210. vuint32_t IDLE_CNT:31;
  1211. vuint32_t ICLR:1;
  1212. } B;
  1213. } IDLE_A;
  1214. vuint32_t ETPU_reserved_4[101];
  1215. /* offset 0x0200 */
  1216. union { /* eTPU Channel Interrupt Status Register (ETPU_CISR)@baseaddress + 0x200 */
  1217. vuint32_t R;
  1218. struct {
  1219. vuint32_t CIS31:1; /* Channel 31 Interrut Status */
  1220. vuint32_t CIS30:1; /* Channel 30 Interrut Status */
  1221. vuint32_t CIS29:1; /* Channel 29 Interrut Status */
  1222. vuint32_t CIS28:1; /* Channel 28 Interrut Status */
  1223. vuint32_t CIS27:1; /* Channel 27 Interrut Status */
  1224. vuint32_t CIS26:1; /* Channel 26 Interrut Status */
  1225. vuint32_t CIS25:1; /* Channel 25 Interrut Status */
  1226. vuint32_t CIS24:1; /* Channel 24 Interrut Status */
  1227. vuint32_t CIS23:1; /* Channel 23 Interrut Status */
  1228. vuint32_t CIS22:1; /* Channel 22 Interrut Status */
  1229. vuint32_t CIS21:1; /* Channel 21 Interrut Status */
  1230. vuint32_t CIS20:1; /* Channel 20 Interrut Status */
  1231. vuint32_t CIS19:1; /* Channel 19 Interrut Status */
  1232. vuint32_t CIS18:1; /* Channel 18 Interrut Status */
  1233. vuint32_t CIS17:1; /* Channel 17 Interrut Status */
  1234. vuint32_t CIS16:1; /* Channel 16 Interrut Status */
  1235. vuint32_t CIS15:1; /* Channel 15 Interrut Status */
  1236. vuint32_t CIS14:1; /* Channel 14 Interrut Status */
  1237. vuint32_t CIS13:1; /* Channel 13 Interrut Status */
  1238. vuint32_t CIS12:1; /* Channel 12 Interrut Status */
  1239. vuint32_t CIS11:1; /* Channel 11 Interrut Status */
  1240. vuint32_t CIS10:1; /* Channel 10 Interrut Status */
  1241. vuint32_t CIS9:1; /* Channel 9 Interrut Status */
  1242. vuint32_t CIS8:1; /* Channel 8 Interrut Status */
  1243. vuint32_t CIS7:1; /* Channel 7 Interrut Status */
  1244. vuint32_t CIS6:1; /* Channel 6 Interrut Status */
  1245. vuint32_t CIS5:1; /* Channel 5 Interrut Status */
  1246. vuint32_t CIS4:1; /* Channel 4 Interrut Status */
  1247. vuint32_t CIS3:1; /* Channel 3 Interrut Status */
  1248. vuint32_t CIS2:1; /* Channel 2 Interrut Status */
  1249. vuint32_t CIS1:1; /* Channel 1 Interrut Status */
  1250. vuint32_t CIS0:1; /* Channel 0 Interrut Status */
  1251. } B;
  1252. } CISR_A; /* <URM>ETPU_CISR</URM> */
  1253. int32_t ETPU_reserved_5[3];
  1254. /* offset 0x0210 */
  1255. union { /* @baseaddress + 0x210 */
  1256. vuint32_t R;
  1257. struct {
  1258. vuint32_t DTRS31:1; /* Channel 31 Data Transfer Request Status */
  1259. vuint32_t DTRS30:1; /* Channel 30 Data Transfer Request Status */
  1260. vuint32_t DTRS29:1; /* Channel 29 Data Transfer Request Status */
  1261. vuint32_t DTRS28:1; /* Channel 28 Data Transfer Request Status */
  1262. vuint32_t DTRS27:1; /* Channel 27 Data Transfer Request Status */
  1263. vuint32_t DTRS26:1; /* Channel 26 Data Transfer Request Status */
  1264. vuint32_t DTRS25:1; /* Channel 25 Data Transfer Request Status */
  1265. vuint32_t DTRS24:1; /* Channel 24 Data Transfer Request Status */
  1266. vuint32_t DTRS23:1; /* Channel 23 Data Transfer Request Status */
  1267. vuint32_t DTRS22:1; /* Channel 22 Data Transfer Request Status */
  1268. vuint32_t DTRS21:1; /* Channel 21 Data Transfer Request Status */
  1269. vuint32_t DTRS20:1; /* Channel 20 Data Transfer Request Status */
  1270. vuint32_t DTRS19:1; /* Channel 19 Data Transfer Request Status */
  1271. vuint32_t DTRS18:1; /* Channel 18 Data Transfer Request Status */
  1272. vuint32_t DTRS17:1; /* Channel 17 Data Transfer Request Status */
  1273. vuint32_t DTRS16:1; /* Channel 16 Data Transfer Request Status */
  1274. vuint32_t DTRS15:1; /* Channel 15 Data Transfer Request Status */
  1275. vuint32_t DTRS14:1; /* Channel 14 Data Transfer Request Status */
  1276. vuint32_t DTRS13:1; /* Channel 13 Data Transfer Request Status */
  1277. vuint32_t DTRS12:1; /* Channel 12 Data Transfer Request Status */
  1278. vuint32_t DTRS11:1; /* Channel 11 Data Transfer Request Status */
  1279. vuint32_t DTRS10:1; /* Channel 10 Data Transfer Request Status */
  1280. vuint32_t DTRS9:1; /* Channel 9 Data Transfer Request Status */
  1281. vuint32_t DTRS8:1; /* Channel 8 Data Transfer Request Status */
  1282. vuint32_t DTRS7:1; /* Channel 7 Data Transfer Request Status */
  1283. vuint32_t DTRS6:1; /* Channel 6 Data Transfer Request Status */
  1284. vuint32_t DTRS5:1; /* Channel 5 Data Transfer Request Status */
  1285. vuint32_t DTRS4:1; /* Channel 4 Data Transfer Request Status */
  1286. vuint32_t DTRS3:1; /* Channel 3 Data Transfer Request Status */
  1287. vuint32_t DTRS2:1; /* Channel 2 Data Transfer Request Status */
  1288. vuint32_t DTRS1:1; /* Channel 1 Data Transfer Request Status */
  1289. vuint32_t DTRS0:1; /* Channel 0 Data Transfer Request Status */
  1290. } B;
  1291. } CDTRSR_A; /* <URM>ETPU_CDTRSR</URM> */
  1292. int32_t ETPU_reserved_6[3];
  1293. /* offset 0x0220 */
  1294. union { /* eTPU Channel Interrupt Overflow Status Register (ETPU_CIOSR)@baseaddress + 0x220 */
  1295. vuint32_t R;
  1296. struct {
  1297. vuint32_t CIOS31:1; /* Channel 31 Interruput Overflow Status */
  1298. vuint32_t CIOS30:1; /* Channel 30 Interruput Overflow Status */
  1299. vuint32_t CIOS29:1; /* Channel 29 Interruput Overflow Status */
  1300. vuint32_t CIOS28:1; /* Channel 28 Interruput Overflow Status */
  1301. vuint32_t CIOS27:1; /* Channel 27 Interruput Overflow Status */
  1302. vuint32_t CIOS26:1; /* Channel 26 Interruput Overflow Status */
  1303. vuint32_t CIOS25:1; /* Channel 25 Interruput Overflow Status */
  1304. vuint32_t CIOS24:1; /* Channel 24 Interruput Overflow Status */
  1305. vuint32_t CIOS23:1; /* Channel 23 Interruput Overflow Status */
  1306. vuint32_t CIOS22:1; /* Channel 22 Interruput Overflow Status */
  1307. vuint32_t CIOS21:1; /* Channel 21 Interruput Overflow Status */
  1308. vuint32_t CIOS20:1; /* Channel 20 Interruput Overflow Status */
  1309. vuint32_t CIOS19:1; /* Channel 19 Interruput Overflow Status */
  1310. vuint32_t CIOS18:1; /* Channel 18 Interruput Overflow Status */
  1311. vuint32_t CIOS17:1; /* Channel 17 Interruput Overflow Status */
  1312. vuint32_t CIOS16:1; /* Channel 16 Interruput Overflow Status */
  1313. vuint32_t CIOS15:1; /* Channel 15 Interruput Overflow Status */
  1314. vuint32_t CIOS14:1; /* Channel 14 Interruput Overflow Status */
  1315. vuint32_t CIOS13:1; /* Channel 13 Interruput Overflow Status */
  1316. vuint32_t CIOS12:1; /* Channel 12 Interruput Overflow Status */
  1317. vuint32_t CIOS11:1; /* Channel 11 Interruput Overflow Status */
  1318. vuint32_t CIOS10:1; /* Channel 10 Interruput Overflow Status */
  1319. vuint32_t CIOS9:1; /* Channel 9 Interruput Overflow Status */
  1320. vuint32_t CIOS8:1; /* Channel 8 Interruput Overflow Status */
  1321. vuint32_t CIOS7:1; /* Channel 7 Interruput Overflow Status */
  1322. vuint32_t CIOS6:1; /* Channel 6 Interruput Overflow Status */
  1323. vuint32_t CIOS5:1; /* Channel 5 Interruput Overflow Status */
  1324. vuint32_t CIOS4:1; /* Channel 4 Interruput Overflow Status */
  1325. vuint32_t CIOS3:1; /* Channel 3 Interruput Overflow Status */
  1326. vuint32_t CIOS2:1; /* Channel 2 Interruput Overflow Status */
  1327. vuint32_t CIOS1:1; /* Channel 1 Interruput Overflow Status */
  1328. vuint32_t CIOS0:1; /* Channel 0 Interruput Overflow Status */
  1329. } B;
  1330. } CIOSR_A; /* <URM>ETPU_CIOSR</URM> */
  1331. int32_t ETPU_reserved_7[3];
  1332. /* offset 0x0230 */
  1333. union { /* eTPU Channel Data Transfer Request Overflow Status Register@baseaddress + 0x230 */
  1334. vuint32_t R;
  1335. struct {
  1336. vuint32_t DTROS31:1; /* Channel 31 Data Transfer Overflow Status */
  1337. vuint32_t DTROS30:1; /* Channel 30 Data Transfer Overflow Status */
  1338. vuint32_t DTROS29:1; /* Channel 29 Data Transfer Overflow Status */
  1339. vuint32_t DTROS28:1; /* Channel 28 Data Transfer Overflow Status */
  1340. vuint32_t DTROS27:1; /* Channel 27 Data Transfer Overflow Status */
  1341. vuint32_t DTROS26:1; /* Channel 26 Data Transfer Overflow Status */
  1342. vuint32_t DTROS25:1; /* Channel 25 Data Transfer Overflow Status */
  1343. vuint32_t DTROS24:1; /* Channel 24 Data Transfer Overflow Status */
  1344. vuint32_t DTROS23:1; /* Channel 23 Data Transfer Overflow Status */
  1345. vuint32_t DTROS22:1; /* Channel 22 Data Transfer Overflow Status */
  1346. vuint32_t DTROS21:1; /* Channel 21 Data Transfer Overflow Status */
  1347. vuint32_t DTROS20:1; /* Channel 20 Data Transfer Overflow Status */
  1348. vuint32_t DTROS19:1; /* Channel 19 Data Transfer Overflow Status */
  1349. vuint32_t DTROS18:1; /* Channel 18 Data Transfer Overflow Status */
  1350. vuint32_t DTROS17:1; /* Channel 17 Data Transfer Overflow Status */
  1351. vuint32_t DTROS16:1; /* Channel 16 Data Transfer Overflow Status */
  1352. vuint32_t DTROS15:1; /* Channel 15 Data Transfer Overflow Status */
  1353. vuint32_t DTROS14:1; /* Channel 14 Data Transfer Overflow Status */
  1354. vuint32_t DTROS13:1; /* Channel 13 Data Transfer Overflow Status */
  1355. vuint32_t DTROS12:1; /* Channel 12 Data Transfer Overflow Status */
  1356. vuint32_t DTROS11:1; /* Channel 11 Data Transfer Overflow Status */
  1357. vuint32_t DTROS10:1; /* Channel 10 Data Transfer Overflow Status */
  1358. vuint32_t DTROS9:1; /* Channel 9 Data Transfer Overflow Status */
  1359. vuint32_t DTROS8:1; /* Channel 8 Data Transfer Overflow Status */
  1360. vuint32_t DTROS7:1; /* Channel 7 Data Transfer Overflow Status */
  1361. vuint32_t DTROS6:1; /* Channel 6 Data Transfer Overflow Status */
  1362. vuint32_t DTROS5:1; /* Channel 5 Data Transfer Overflow Status */
  1363. vuint32_t DTROS4:1; /* Channel 4 Data Transfer Overflow Status */
  1364. vuint32_t DTROS3:1; /* Channel 3 Data Transfer Overflow Status */
  1365. vuint32_t DTROS2:1; /* Channel 2 Data Transfer Overflow Status */
  1366. vuint32_t DTROS1:1; /* Channel 1 Data Transfer Overflow Status */
  1367. vuint32_t DTROS0:1; /* Channel 0 Data Transfer Overflow Status */
  1368. } B;
  1369. } CDTROSR_A; /* <URM>ETPU_CDTROSR</URM> */
  1370. int32_t ETPU_reserved_8[3];
  1371. /* offset 0x0240 */
  1372. union { /* eTPU Channel Interrupt Enable Register (ETPU_CIER)@baseaddress + 0x240 */
  1373. vuint32_t R;
  1374. struct {
  1375. vuint32_t CIE31:1; /* Channel 31 Interruput Enable */
  1376. vuint32_t CIE30:1; /* Channel 30 Interruput Enable */
  1377. vuint32_t CIE29:1; /* Channel 29 Interruput Enable */
  1378. vuint32_t CIE28:1; /* Channel 28 Interruput Enable */
  1379. vuint32_t CIE27:1; /* Channel 27 Interruput Enable */
  1380. vuint32_t CIE26:1; /* Channel 26 Interruput Enable */
  1381. vuint32_t CIE25:1; /* Channel 25 Interruput Enable */
  1382. vuint32_t CIE24:1; /* Channel 24 Interruput Enable */
  1383. vuint32_t CIE23:1; /* Channel 23 Interruput Enable */
  1384. vuint32_t CIE22:1; /* Channel 22 Interruput Enable */
  1385. vuint32_t CIE21:1; /* Channel 21 Interruput Enable */
  1386. vuint32_t CIE20:1; /* Channel 20 Interruput Enable */
  1387. vuint32_t CIE19:1; /* Channel 19 Interruput Enable */
  1388. vuint32_t CIE18:1; /* Channel 18 Interruput Enable */
  1389. vuint32_t CIE17:1; /* Channel 17 Interruput Enable */
  1390. vuint32_t CIE16:1; /* Channel 16 Interruput Enable */
  1391. vuint32_t CIE15:1; /* Channel 15 Interruput Enable */
  1392. vuint32_t CIE14:1; /* Channel 14 Interruput Enable */
  1393. vuint32_t CIE13:1; /* Channel 13 Interruput Enable */
  1394. vuint32_t CIE12:1; /* Channel 12 Interruput Enable */
  1395. vuint32_t CIE11:1; /* Channel 11 Interruput Enable */
  1396. vuint32_t CIE10:1; /* Channel 10 Interruput Enable */
  1397. vuint32_t CIE9:1; /* Channel 9 Interruput Enable */
  1398. vuint32_t CIE8:1; /* Channel 8 Interruput Enable */
  1399. vuint32_t CIE7:1; /* Channel 7 Interruput Enable */
  1400. vuint32_t CIE6:1; /* Channel 6 Interruput Enable */
  1401. vuint32_t CIE5:1; /* Channel 5 Interruput Enable */
  1402. vuint32_t CIE4:1; /* Channel 4 Interruput Enable */
  1403. vuint32_t CIE3:1; /* Channel 3 Interruput Enable */
  1404. vuint32_t CIE2:1; /* Channel 2 Interruput Enable */
  1405. vuint32_t CIE1:1; /* Channel 1 Interruput Enable */
  1406. vuint32_t CIE0:1; /* Channel 0 Interruput Enable */
  1407. } B;
  1408. } CIER_A; /* <URM>ETPU_CIER</URM> */
  1409. int32_t ETPU_reserved_9[3];
  1410. /* offset 0x0250 */
  1411. union { /* eTPU Channel Data Transfer Request Enable Register (ETPU_CDTRER)@baseaddress + 0x250 */
  1412. vuint32_t R;
  1413. struct {
  1414. vuint32_t DTRE31:1; /* Channel 31 Data Transfer Request Enable */
  1415. vuint32_t DTRE30:1; /* Channel 30 Data Transfer Request Enable */
  1416. vuint32_t DTRE29:1; /* Channel 29 Data Transfer Request Enable */
  1417. vuint32_t DTRE28:1; /* Channel 28 Data Transfer Request Enable */
  1418. vuint32_t DTRE27:1; /* Channel 27 Data Transfer Request Enable */
  1419. vuint32_t DTRE26:1; /* Channel 26 Data Transfer Request Enable */
  1420. vuint32_t DTRE25:1; /* Channel 25 Data Transfer Request Enable */
  1421. vuint32_t DTRE24:1; /* Channel 24 Data Transfer Request Enable */
  1422. vuint32_t DTRE23:1; /* Channel 23 Data Transfer Request Enable */
  1423. vuint32_t DTRE22:1; /* Channel 22 Data Transfer Request Enable */
  1424. vuint32_t DTRE21:1; /* Channel 21 Data Transfer Request Enable */
  1425. vuint32_t DTRE20:1; /* Channel 20 Data Transfer Request Enable */
  1426. vuint32_t DTRE19:1; /* Channel 19 Data Transfer Request Enable */
  1427. vuint32_t DTRE18:1; /* Channel 18 Data Transfer Request Enable */
  1428. vuint32_t DTRE17:1; /* Channel 17 Data Transfer Request Enable */
  1429. vuint32_t DTRE16:1; /* Channel 16 Data Transfer Request Enable */
  1430. vuint32_t DTRE15:1; /* Channel 15 Data Transfer Request Enable */
  1431. vuint32_t DTRE14:1; /* Channel 14 Data Transfer Request Enable */
  1432. vuint32_t DTRE13:1; /* Channel 13 Data Transfer Request Enable */
  1433. vuint32_t DTRE12:1; /* Channel 12 Data Transfer Request Enable */
  1434. vuint32_t DTRE11:1; /* Channel 11 Data Transfer Request Enable */
  1435. vuint32_t DTRE10:1; /* Channel 10 Data Transfer Request Enable */
  1436. vuint32_t DTRE9:1; /* Channel 9 Data Transfer Request Enable */
  1437. vuint32_t DTRE8:1; /* Channel 8 Data Transfer Request Enable */
  1438. vuint32_t DTRE7:1; /* Channel 7 Data Transfer Request Enable */
  1439. vuint32_t DTRE6:1; /* Channel 6 Data Transfer Request Enable */
  1440. vuint32_t DTRE5:1; /* Channel 5 Data Transfer Request Enable */
  1441. vuint32_t DTRE4:1; /* Channel 4 Data Transfer Request Enable */
  1442. vuint32_t DTRE3:1; /* Channel 3 Data Transfer Request Enable */
  1443. vuint32_t DTRE2:1; /* Channel 2 Data Transfer Request Enable */
  1444. vuint32_t DTRE1:1; /* Channel 1 Data Transfer Request Enable */
  1445. vuint32_t DTRE0:1; /* Channel 0 Data Transfer Request Enable */
  1446. } B;
  1447. } CDTRER_A; /* <URM>ETPU_CDTRER</URM> */
  1448. int32_t ETPU_reserved_10[3];
  1449. /* offset 0x0260 */
  1450. union { /* ETPUWDSR - eTPU Watchdog Status Register */
  1451. vuint32_t R;
  1452. struct {
  1453. vuint32_t WDS31:1; /* Channel 31 Data Transfer Request Enable */
  1454. vuint32_t WDS30:1; /* Channel 30 Data Transfer Request Enable */
  1455. vuint32_t WDS29:1; /* Channel 29 Data Transfer Request Enable */
  1456. vuint32_t WDS28:1; /* Channel 28 Data Transfer Request Enable */
  1457. vuint32_t WDS27:1; /* Channel 27 Data Transfer Request Enable */
  1458. vuint32_t WDS26:1; /* Channel 26 Data Transfer Request Enable */
  1459. vuint32_t WDS25:1; /* Channel 25 Data Transfer Request Enable */
  1460. vuint32_t WDS24:1; /* Channel 24 Data Transfer Request Enable */
  1461. vuint32_t WDS23:1; /* Channel 23 Data Transfer Request Enable */
  1462. vuint32_t WDS22:1; /* Channel 22 Data Transfer Request Enable */
  1463. vuint32_t WDS21:1; /* Channel 21 Data Transfer Request Enable */
  1464. vuint32_t WDS20:1; /* Channel 20 Data Transfer Request Enable */
  1465. vuint32_t WDS19:1; /* Channel 19 Data Transfer Request Enable */
  1466. vuint32_t WDS18:1; /* Channel 18 Data Transfer Request Enable */
  1467. vuint32_t WDS17:1; /* Channel 17 Data Transfer Request Enable */
  1468. vuint32_t WDS16:1; /* Channel 16 Data Transfer Request Enable */
  1469. vuint32_t WDS15:1; /* Channel 15 Data Transfer Request Enable */
  1470. vuint32_t WDS14:1; /* Channel 14 Data Transfer Request Enable */
  1471. vuint32_t WDS13:1; /* Channel 13 Data Transfer Request Enable */
  1472. vuint32_t WDS12:1; /* Channel 12 Data Transfer Request Enable */
  1473. vuint32_t WDS11:1; /* Channel 11 Data Transfer Request Enable */
  1474. vuint32_t WDS10:1; /* Channel 10 Data Transfer Request Enable */
  1475. vuint32_t WDS9:1; /* Channel 9 Data Transfer Request Enable */
  1476. vuint32_t WDS8:1; /* Channel 8 Data Transfer Request Enable */
  1477. vuint32_t WDS7:1; /* Channel 7 Data Transfer Request Enable */
  1478. vuint32_t WDS6:1; /* Channel 6 Data Transfer Request Enable */
  1479. vuint32_t WDS5:1; /* Channel 5 Data Transfer Request Enable */
  1480. vuint32_t WDS4:1; /* Channel 4 Data Transfer Request Enable */
  1481. vuint32_t WDS3:1; /* Channel 3 Data Transfer Request Enable */
  1482. vuint32_t WDS2:1; /* Channel 2 Data Transfer Request Enable */
  1483. vuint32_t WDS1:1; /* Channel 1 Data Transfer Request Enable */
  1484. vuint32_t WDS0:1; /* Channel 0 Data Transfer Request Enable */
  1485. } B;
  1486. } WDSR_A;
  1487. int32_t ETPU_reserved_11[7];
  1488. /* offset 0x0280 */
  1489. union { /* ETPUCPSSR - eTPU Channel Pending Service Status Register */
  1490. vuint32_t R;
  1491. struct {
  1492. vuint32_t SR31:1; /* Channel 31 Data Transfer Request Enable */
  1493. vuint32_t SR30:1; /* Channel 30 Data Transfer Request Enable */
  1494. vuint32_t SR29:1; /* Channel 29 Data Transfer Request Enable */
  1495. vuint32_t SR28:1; /* Channel 28 Data Transfer Request Enable */
  1496. vuint32_t SR27:1; /* Channel 27 Data Transfer Request Enable */
  1497. vuint32_t SR26:1; /* Channel 26 Data Transfer Request Enable */
  1498. vuint32_t SR25:1; /* Channel 25 Data Transfer Request Enable */
  1499. vuint32_t SR24:1; /* Channel 24 Data Transfer Request Enable */
  1500. vuint32_t SR23:1; /* Channel 23 Data Transfer Request Enable */
  1501. vuint32_t SR22:1; /* Channel 22 Data Transfer Request Enable */
  1502. vuint32_t SR21:1; /* Channel 21 Data Transfer Request Enable */
  1503. vuint32_t SR20:1; /* Channel 20 Data Transfer Request Enable */
  1504. vuint32_t SR19:1; /* Channel 19 Data Transfer Request Enable */
  1505. vuint32_t SR18:1; /* Channel 18 Data Transfer Request Enable */
  1506. vuint32_t SR17:1; /* Channel 17 Data Transfer Request Enable */
  1507. vuint32_t SR16:1; /* Channel 16 Data Transfer Request Enable */
  1508. vuint32_t SR15:1; /* Channel 15 Data Transfer Request Enable */
  1509. vuint32_t SR14:1; /* Channel 14 Data Transfer Request Enable */
  1510. vuint32_t SR13:1; /* Channel 13 Data Transfer Request Enable */
  1511. vuint32_t SR12:1; /* Channel 12 Data Transfer Request Enable */
  1512. vuint32_t SR11:1; /* Channel 11 Data Transfer Request Enable */
  1513. vuint32_t SR10:1; /* Channel 10 Data Transfer Request Enable */
  1514. vuint32_t SR9:1; /* Channel 9 Data Transfer Request Enable */
  1515. vuint32_t SR8:1; /* Channel 8 Data Transfer Request Enable */
  1516. vuint32_t SR7:1; /* Channel 7 Data Transfer Request Enable */
  1517. vuint32_t SR6:1; /* Channel 6 Data Transfer Request Enable */
  1518. vuint32_t SR5:1; /* Channel 5 Data Transfer Request Enable */
  1519. vuint32_t SR4:1; /* Channel 4 Data Transfer Request Enable */
  1520. vuint32_t SR3:1; /* Channel 3 Data Transfer Request Enable */
  1521. vuint32_t SR2:1; /* Channel 2 Data Transfer Request Enable */
  1522. vuint32_t SR1:1; /* Channel 1 Data Transfer Request Enable */
  1523. vuint32_t SR0:1; /* Channel 0 Data Transfer Request Enable */
  1524. } B;
  1525. } CPSSR_A; /* <URM>ETPU_CPSSR</URM> */
  1526. int32_t ETPU_reserved_12[3];
  1527. /* offset 0x0290 */
  1528. union { /* ETPUCSSR - eTPU Channel Service Status Register */
  1529. vuint32_t R;
  1530. struct {
  1531. vuint32_t SS31:1; /* Channel 31 Data Transfer Request Enable */
  1532. vuint32_t SS30:1; /* Channel 30 Data Transfer Request Enable */
  1533. vuint32_t SS29:1; /* Channel 29 Data Transfer Request Enable */
  1534. vuint32_t SS28:1; /* Channel 28 Data Transfer Request Enable */
  1535. vuint32_t SS27:1; /* Channel 27 Data Transfer Request Enable */
  1536. vuint32_t SS26:1; /* Channel 26 Data Transfer Request Enable */
  1537. vuint32_t SS25:1; /* Channel 25 Data Transfer Request Enable */
  1538. vuint32_t SS24:1; /* Channel 24 Data Transfer Request Enable */
  1539. vuint32_t SS23:1; /* Channel 23 Data Transfer Request Enable */
  1540. vuint32_t SS22:1; /* Channel 22 Data Transfer Request Enable */
  1541. vuint32_t SS21:1; /* Channel 21 Data Transfer Request Enable */
  1542. vuint32_t SS20:1; /* Channel 20 Data Transfer Request Enable */
  1543. vuint32_t SS19:1; /* Channel 19 Data Transfer Request Enable */
  1544. vuint32_t SS18:1; /* Channel 18 Data Transfer Request Enable */
  1545. vuint32_t SS17:1; /* Channel 17 Data Transfer Request Enable */
  1546. vuint32_t SS16:1; /* Channel 16 Data Transfer Request Enable */
  1547. vuint32_t SS15:1; /* Channel 15 Data Transfer Request Enable */
  1548. vuint32_t SS14:1; /* Channel 14 Data Transfer Request Enable */
  1549. vuint32_t SS13:1; /* Channel 13 Data Transfer Request Enable */
  1550. vuint32_t SS12:1; /* Channel 12 Data Transfer Request Enable */
  1551. vuint32_t SS11:1; /* Channel 11 Data Transfer Request Enable */
  1552. vuint32_t SS10:1; /* Channel 10 Data Transfer Request Enable */
  1553. vuint32_t SS9:1; /* Channel 9 Data Transfer Request Enable */
  1554. vuint32_t SS8:1; /* Channel 8 Data Transfer Request Enable */
  1555. vuint32_t SS7:1; /* Channel 7 Data Transfer Request Enable */
  1556. vuint32_t SS6:1; /* Channel 6 Data Transfer Request Enable */
  1557. vuint32_t SS5:1; /* Channel 5 Data Transfer Request Enable */
  1558. vuint32_t SS4:1; /* Channel 4 Data Transfer Request Enable */
  1559. vuint32_t SS3:1; /* Channel 3 Data Transfer Request Enable */
  1560. vuint32_t SS2:1; /* Channel 2 Data Transfer Request Enable */
  1561. vuint32_t SS1:1; /* Channel 1 Data Transfer Request Enable */
  1562. vuint32_t SS0:1; /* Channel 0 Data Transfer Request Enable */
  1563. } B;
  1564. } CSSR_A; /* <URM>ETPU_CSSR</URM> */
  1565. int32_t ETPU_reserved_13[3];
  1566. int32_t ETPU_reserved_14[88];
  1567. /***************************** Channels ********************************/
  1568. /* Note not all devices implement all channels or even 2 engines */
  1569. /* Each eTPU engine can implement 64 channels, however most devcies */
  1570. /* only implemnet 32 channels. The eTPU block can implement 1 or 2 */
  1571. /* engines per instantiation */
  1572. /***********************************************************************/
  1573. struct {
  1574. union { /* eTPU Channel n Configuration Register (ETPU_CnCR)@baseaddress + 0x400 */
  1575. vuint32_t R;
  1576. struct {
  1577. vuint32_t CIE:1; /* Channel Interruput Enable */
  1578. vuint32_t DTRE:1; /* Data Transfer Request Enable */
  1579. vuint32_t CPR:2; /* Channel Priority */
  1580. vuint32_t:2; /* */
  1581. vuint32_t ETPD:1; /* This bit selects which channel signal, input or output, is used in the entry point selection */
  1582. vuint32_t ETCS:1; /* Entry Table Condition Select */
  1583. vuint32_t:3; /* */
  1584. vuint32_t CFS:5; /* Channel Function Select */
  1585. vuint32_t ODIS:1; /* Output disable */
  1586. vuint32_t OPOL:1; /* output polarity */
  1587. vuint32_t:3; /* */
  1588. vuint32_t CPBA:11; /* Channel Parameter Base Address */
  1589. } B;
  1590. } CR; /* <URM>ETPU_CnCR</URM> */
  1591. union { /* eTPU Channel n Status Control Register (ETPU_CnSCR)@baseaddress + 0x404 */
  1592. vuint32_t R;
  1593. struct {
  1594. vuint32_t CIS:1; /* Channel Interruput Status */
  1595. vuint32_t CIOS:1; /* Channel Interruput Overflow Status */
  1596. vuint32_t:6; /* */
  1597. vuint32_t DTRS:1; /* Data Transfer Status */
  1598. vuint32_t DTROS:1; /* Data Transfer Overflow Status */
  1599. vuint32_t:6; /* */
  1600. vuint32_t IPS:1; /* Input Pin State */
  1601. vuint32_t OPS:1; /* Output Pin State */
  1602. vuint32_t OBE:1; /* Output Pin State */
  1603. vuint32_t:11; /* */
  1604. vuint32_t FM1:1; /* Function mode */
  1605. vuint32_t FM0:1; /* Function mode */
  1606. } B;
  1607. } SCR; /* <URM>ETPU_CnSCR</URM> */
  1608. union { /* eTPU channel host service request register (ETPU_CnHSRR)@baseaddress + 0x408 */
  1609. vuint32_t R;
  1610. struct {
  1611. vuint32_t:29; /* Host Service Request */
  1612. vuint32_t HSR:3; /* */
  1613. } B;
  1614. } HSRR; /* <URM>ETPU_CnHSRR</URM> */
  1615. int32_t ETPU_reserved_18;
  1616. } CHAN[127];
  1617. /**** Note: Not all channels implemented on all devices. Up 64 can be implemented on */
  1618. }; /* end of ETPU_tag */
  1619. /****************************************************************************/
  1620. /* MODULE : XBAR */
  1621. /****************************************************************************/
  1622. struct XBAR_tag {
  1623. union {
  1624. vuint32_t R;
  1625. struct {
  1626. vuint32_t:4; /* Master 7 Priority - Not implemented */
  1627. vuint32_t:4; /* Master 6 Priority - Not implemented */
  1628. vuint32_t:4; /* Master 5 Priority - Not implemented */
  1629. vuint32_t:1; /* */
  1630. vuint32_t MSTR4:3; /* Master 4 Priority - Core load/store & Nexus port */
  1631. vuint32_t:4; /* Master 3 Priority - Not implemented */
  1632. vuint32_t:1; /* */
  1633. vuint32_t MSTR2:3; /* Master 2 Priority - Unused implemented master port */
  1634. vuint32_t:1; /* */
  1635. vuint32_t MSTR1:3; /* Master 1 Priority - eDMA */
  1636. vuint32_t:1; /* */
  1637. vuint32_t MSTR0:3; /* Master 0 Priority - e200z335 core Instruction */
  1638. } B;
  1639. } MPR0; /* Master Priority Register for Slave port 0 @baseaddress + 0x00 - Flash */
  1640. int32_t XBAR_reserverd_35[3];
  1641. union {
  1642. vuint32_t R;
  1643. struct {
  1644. vuint32_t RO:1; /* Read Only */
  1645. vuint32_t HLP:1; /* Halt Low Priority (new in MPC563xM) */
  1646. vuint32_t:6; /* Slave General Purpose Control Register Reserved */
  1647. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1648. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1649. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1650. vuint32_t HPE4:1; /* High Priority Enable (new in MPC563xM) */
  1651. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1652. vuint32_t HPE2:1; /* High Priority Enable (new in MPC563xM) */
  1653. vuint32_t HPE1:1; /* High Priority Enable (new in MPC563xM) */
  1654. vuint32_t HPE0:1; /* High Priority Enable (new in MPC563xM) */
  1655. vuint32_t:6; /* */
  1656. vuint32_t ARB:2; /* Arbitration Mode */
  1657. vuint32_t:2; /* */
  1658. vuint32_t PCTL:2; /* Parking Control */
  1659. vuint32_t:1; /* */
  1660. vuint32_t PARK:3; /* PARK */
  1661. } B;
  1662. } SGPCR0; /* Slave General Purpose Control Register 0 @baseaddress + 0x10 */
  1663. int32_t XBAR_reserverd_71[59];
  1664. union {
  1665. vuint32_t R;
  1666. struct {
  1667. vuint32_t:4; /* Master 7 Priority - Not implemented */
  1668. vuint32_t:4; /* Master 6 Priority - Not implemented */
  1669. vuint32_t:4; /* Master 5 Priority - Not implemented */
  1670. vuint32_t:1; /* */
  1671. vuint32_t MSTR4:3; /* Master 4 Priority - Core load/store & Nexus port */
  1672. vuint32_t:4; /* Master 3 Priority - Not implemented */
  1673. vuint32_t:1; /* */
  1674. vuint32_t MSTR2:3; /* Master 2 Priority - Unused implemented master port */
  1675. vuint32_t:1; /* */
  1676. vuint32_t MSTR1:3; /* Master 1 Priority - eDMA */
  1677. vuint32_t:1; /* */
  1678. vuint32_t MSTR0:3; /* Master 0 Priority - e200z335 core Instruction */
  1679. } B;
  1680. } MPR1; /* Master Priority Register for Slave port 1 @baseaddress + 0x100 */
  1681. int32_t XBAR_reserverd_105[3];
  1682. union {
  1683. vuint32_t R;
  1684. struct {
  1685. vuint32_t RO:1; /* Read Only */
  1686. vuint32_t HLP:1; /* Halt Low Priority (new in MPC563xM) */
  1687. vuint32_t:6; /* Slave General Purpose Control Register Reserved */
  1688. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1689. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1690. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1691. vuint32_t HPE4:1; /* High Priority Enable (new in MPC563xM) */
  1692. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1693. vuint32_t HPE2:1; /* High Priority Enable (new in MPC563xM) */
  1694. vuint32_t HPE1:1; /* High Priority Enable (new in MPC563xM) */
  1695. vuint32_t HPE0:1; /* High Priority Enable (new in MPC563xM) */
  1696. vuint32_t:6; /* */
  1697. vuint32_t ARB:2; /* Arbitration Mode */
  1698. vuint32_t:2; /* */
  1699. vuint32_t PCTL:2; /* Parking Control */
  1700. vuint32_t:1; /* */
  1701. vuint32_t PARK:3; /* PARK */
  1702. } B;
  1703. } SGPCR1; /* Slave General Purpose Control Register 1 @baseaddress + 0x110 */
  1704. int32_t XBAR_reserverd_141[59];
  1705. /* Slave General Purpose Control Register 2 @baseaddress + 0x210 - not implemented */
  1706. int32_t XBAR_reserverd_211[64];
  1707. union {
  1708. vuint32_t R;
  1709. struct {
  1710. vuint32_t:4; /* Master 7 Priority - Not implemented */
  1711. vuint32_t:4; /* Master 6 Priority - Not implemented */
  1712. vuint32_t:4; /* Master 5 Priority - Not implemented */
  1713. vuint32_t:1; /* */
  1714. vuint32_t MSTR4:3; /* Master 4 Priority - Core load/store & Nexus port */
  1715. vuint32_t:4; /* Master 3 Priority - Not implemented */
  1716. vuint32_t:1; /* */
  1717. vuint32_t MSTR2:3; /* Master 2 Priority - Unused implemented master port */
  1718. vuint32_t:1; /* */
  1719. vuint32_t MSTR1:3; /* Master 1 Priority - eDMA */
  1720. vuint32_t:1; /* */
  1721. vuint32_t MSTR0:3; /* Master 0 Priority - e200z335 core Instruction */
  1722. } B;
  1723. } MPR3; /* Master Priority Register for Slave port 3 @baseaddress + 0x300 */
  1724. int32_t XBAR_reserverd_245[3];
  1725. union {
  1726. vuint32_t R;
  1727. struct {
  1728. vuint32_t RO:1; /* Read Only */
  1729. vuint32_t HLP:1; /* Halt Low Priority (new in MPC563xM) */
  1730. vuint32_t:6; /* Slave General Purpose Control Register Reserved */
  1731. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1732. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1733. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1734. vuint32_t HPE4:1; /* High Priority Enable (new in MPC563xM) */
  1735. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1736. vuint32_t HPE2:1; /* High Priority Enable (new in MPC563xM) */
  1737. vuint32_t HPE1:1; /* High Priority Enable (new in MPC563xM) */
  1738. vuint32_t HPE0:1; /* High Priority Enable (new in MPC563xM) */
  1739. vuint32_t:6; /* */
  1740. vuint32_t ARB:2; /* Arbitration Mode */
  1741. vuint32_t:2; /* */
  1742. vuint32_t PCTL:2; /* Parking Control */
  1743. vuint32_t:1; /* */
  1744. vuint32_t PARK:3; /* PARK */
  1745. } B;
  1746. } SGPCR3; /* Slave General Purpose Control Register 3 @baseaddress + 0x310 */
  1747. int32_t XBAR_reserverd_281[59];
  1748. /* Slave General Purpose Control Register 4 @baseaddress + 0x410 - not implemented */
  1749. int32_t XBAR_reserverd_351[64];
  1750. /* Slave XBAR Port 5 Not implemented @baseaddress + 0x510 */
  1751. int32_t XBAR_reserverd_421[64];
  1752. /* Slave Port 6 not implemented @baseaddress + 0x610 */
  1753. int32_t XBAR_reserverd_491[64];
  1754. union {
  1755. vuint32_t R;
  1756. struct {
  1757. vuint32_t:4; /* Master 7 Priority - Not implemented */
  1758. vuint32_t:4; /* Master 6 Priority - Not implemented */
  1759. vuint32_t:4; /* Master 5 Priority - Not implemented */
  1760. vuint32_t:1; /* */
  1761. vuint32_t MSTR4:3; /* Master 4 Priority - Core load/store & Nexus port */
  1762. vuint32_t:4; /* Master 3 Priority - Not implemented */
  1763. vuint32_t:1; /* */
  1764. vuint32_t MSTR2:3; /* Master 2 Priority - Unused implemented master port */
  1765. vuint32_t:1; /* */
  1766. vuint32_t MSTR1:3; /* Master 1 Priority - eDMA */
  1767. vuint32_t:1; /* */
  1768. vuint32_t MSTR0:3; /* Master 0 Priority - e200z335 core Instruction */
  1769. } B;
  1770. } MPR7; /* Master Priority Register for Slave port 7 @baseaddress + 0x700 */
  1771. int32_t XBAR_reserverd_525[3];
  1772. union {
  1773. vuint32_t R;
  1774. struct {
  1775. vuint32_t RO:1; /* Read Only */
  1776. vuint32_t HLP:1; /* Halt Low Priority (new in MPC563xM) */
  1777. vuint32_t:6; /* Slave General Purpose Control Register Reserved */
  1778. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1779. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1780. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1781. vuint32_t HPE4:1; /* High Priority Enable (new in MPC563xM) */
  1782. vuint32_t:1; /* High Priority Enable (new in MPC563xM - not implemented) */
  1783. vuint32_t HPE2:1; /* High Priority Enable (new in MPC563xM) */
  1784. vuint32_t HPE1:1; /* High Priority Enable (new in MPC563xM) */
  1785. vuint32_t HPE0:1; /* High Priority Enable (new in MPC563xM) */
  1786. vuint32_t:6; /* */
  1787. vuint32_t ARB:2; /* Arbitration Mode */
  1788. vuint32_t:2; /* */
  1789. vuint32_t PCTL:2; /* Parking Control */
  1790. vuint32_t:1; /* */
  1791. vuint32_t PARK:3; /* PARK */
  1792. } B;
  1793. } SGPCR7; /* Slave General Purpose Control Register 7 @baseaddress + 0x710 */
  1794. int32_t XBAR_reserverd_561[59];
  1795. union {
  1796. vuint32_t R;
  1797. struct {
  1798. vuint32_t:29; /* */
  1799. vuint32_t AULB:3; /* Arbitrate on Undefined Length Bursts */
  1800. } B;
  1801. } MGPCR0; /* Master General Purpose Control Register 0 @baseaddress + 0x800 */
  1802. int32_t XBAR_reserverd_564[63];
  1803. union {
  1804. vuint32_t R;
  1805. struct {
  1806. vuint32_t:29; /* */
  1807. vuint32_t AULB:3; /* Arbitrate on Undefined Length Bursts */
  1808. } B;
  1809. } MGPCR1; /* Master General Purpose Control Register 1 @baseaddress + 0x900 */
  1810. int32_t XBAR_reserverd_567[63];
  1811. union {
  1812. vuint32_t R;
  1813. struct {
  1814. vuint32_t:29; /* */
  1815. vuint32_t AULB:3; /* Arbitrate on Undefined Length Bursts */
  1816. } B;
  1817. } MGPCR2; /* Master General Purpose Control Register 2 @baseaddress + 0xA00 */
  1818. int32_t XBAR_reserverd_570[63];
  1819. /* Master General Purpose Control Register 3 not implemented @baseaddress + 0xB00 */
  1820. int32_t XBAR_reserverd_573[64];
  1821. union {
  1822. vuint32_t R;
  1823. struct {
  1824. vuint32_t:29; /* */
  1825. vuint32_t AULB:3; /* Arbitrate on Undefined Length Bursts */
  1826. } B;
  1827. } MGPCR4; /* Master General Purpose Control Register 4 @baseaddress + 0xC00 */
  1828. int32_t XBAR_reserverd_576[64];
  1829. /* Master General Purpose Control Register 5 not implemented @baseaddress + 0xD00 */
  1830. int32_t XBAR_reserverd_579[64];
  1831. /* Master General Purpose Control Register 6 not implemented @baseaddress + 0xE00 */
  1832. int32_t XBAR_reserverd_582[64];
  1833. /* Master General Purpose Control Register 7 not implemented @baseaddress + 0xF00 */
  1834. }; /* end of XBAR_tag */
  1835. /****************************************************************************/
  1836. /* MODULE : ECSM */
  1837. /****************************************************************************/
  1838. struct ECSM_tag {
  1839. /* SWTCR, SWTSR and SWTIR don't exist in MPC563xM */
  1840. uint32_t ecsm_reserved1[16];
  1841. uint8_t ecsm_reserved3[3]; /* base + 0x40 */
  1842. union {
  1843. vuint8_t R;
  1844. struct {
  1845. vuint8_t:6;
  1846. vuint8_t ERNCR:1; /* <URM>EPRNCR</URM> */
  1847. vuint8_t EFNCR:1; /* <URM>EPFNCR</URM> */
  1848. } B;
  1849. } ECR; /* ECC Configuration Register */
  1850. uint8_t ecsm_reserved4[3]; /* base + 0x44 */
  1851. union {
  1852. vuint8_t R;
  1853. struct {
  1854. vuint8_t:6;
  1855. vuint8_t RNCE:1; /* <URM>PRNCE</URM> */
  1856. vuint8_t FNCE:1; /* <URM>PFNCE</URM> */
  1857. } B;
  1858. } ESR; /* ECC Status Register */
  1859. /* EEGR don't exist in MPC563xM */
  1860. uint32_t ecsm_reserved4a[2];
  1861. union {
  1862. vuint32_t R;
  1863. struct {
  1864. vuint32_t FEAR:32; /* <URM>PFEAR</URM> */
  1865. } B;
  1866. } FEAR; /* Flash ECC Address Register <URM>PFEAR</URM> - 0x50 */
  1867. uint16_t ecsm_reserved4b;
  1868. union {
  1869. vuint8_t R;
  1870. struct {
  1871. vuint8_t:4;
  1872. vuint8_t FEMR:4; /* <URM>PFEMR</URM> */
  1873. } B;
  1874. } FEMR; /* Flash ECC Master Register <URM>PFEMR</URM> */
  1875. union {
  1876. vuint8_t R;
  1877. struct {
  1878. vuint8_t WRITE:1;
  1879. vuint8_t SIZE:3;
  1880. vuint8_t PROT0:1; /* <URM>PROTECTION</URM> */
  1881. vuint8_t PROT1:1; /* <URM>PROTECTION</URM> */
  1882. vuint8_t PROT2:1; /* <URM>PROTECTION</URM> */
  1883. vuint8_t PROT3:1; /* <URM>PROTECTION</URM> */
  1884. } B;
  1885. } FEAT; /* Flash ECC Attributes Register <URM>PFEAT</URM> */
  1886. union {
  1887. vuint32_t R;
  1888. struct {
  1889. vuint32_t FEDH:32; /* <URM>PFEDR</URM> */
  1890. } B;
  1891. } FEDRH; /* Flash ECC Data High Register <URM>PFEDRH</URM> */
  1892. union {
  1893. vuint32_t R;
  1894. struct {
  1895. vuint32_t FEDL:32; /* <URM>PFEDR</URM> */
  1896. } B;
  1897. } FEDRL; /* Flash ECC Data Low Register <URM>PFEDRL</URM> */
  1898. union {
  1899. vuint32_t R;
  1900. struct {
  1901. vuint32_t REAR:32; /* <URM>PREAR</URM> */
  1902. } B;
  1903. } REAR; /* RAM ECC Address <URM>PREAR</URM> */
  1904. uint8_t ecsm_reserved5;
  1905. union {
  1906. vuint8_t R;
  1907. struct {
  1908. vuint8_t PRESR:8;
  1909. } B;
  1910. } PRESR; /* RAM ECC Syndrome (new in MPC563xM) */
  1911. union {
  1912. vuint8_t R;
  1913. struct {
  1914. vuint8_t:4;
  1915. vuint8_t REMR:4; /* <URM>PREMR</URM> */
  1916. } B;
  1917. } REMR; /* RAM ECC Master <URM>PREMR</URM> */
  1918. union {
  1919. vuint8_t R;
  1920. struct {
  1921. vuint8_t WRITE:1;
  1922. vuint8_t SIZE:3;
  1923. vuint8_t PROT0:1; /* <URM>PROTECTION</URM> */
  1924. vuint8_t PROT1:1; /* <URM>PROTECTION</URM> */
  1925. vuint8_t PROT2:1; /* <URM>PROTECTION</URM> */
  1926. vuint8_t PROT3:1; /* <URM>PROTECTION</URM> */
  1927. } B;
  1928. } REAT; /* RAM ECC Attributes Register <URM>PREAT</URM> */
  1929. union {
  1930. vuint32_t R;
  1931. struct {
  1932. vuint32_t REDH:32; /* <URM>PREDR</URM> */
  1933. } B;
  1934. } REDRH; /* RAM ECC Data High Register <URM>PREDRH</URM> */
  1935. union {
  1936. vuint32_t R;
  1937. struct {
  1938. vuint32_t REDL:32; /* <URM>PREDR</URM> */
  1939. } B;
  1940. } REDRL; /* RAMECC Data Low Register <URM>PREDRL</URM> */
  1941. };
  1942. /****************************************************************************/
  1943. /* MODULE : EDMA */
  1944. /****************************************************************************/
  1945. struct EDMA_tag {
  1946. union {
  1947. vuint32_t R;
  1948. struct {
  1949. vuint32_t:14; /* Reserved */
  1950. vuint32_t CX:1; /* Cancel Transfer (new in MPC563xM) */
  1951. vuint32_t ECX:1; /* Error Cancel Transfer (new in MPC563xM) */
  1952. vuint32_t GRP3PRI:2; /* Channel Group 3 Priority (new in MPC563xM) */
  1953. vuint32_t GRP2PRI:2; /* Channel Group 2 Priority (new in MPC563xM) */
  1954. vuint32_t GRP1PRI:2; /* Channel Group 1 Priority */
  1955. vuint32_t GRP0PRI:2; /* Channel Group 0 Priority */
  1956. vuint32_t EMLM:1; /* Enable Minor Loop Mapping (new in MPC563xM) */
  1957. vuint32_t CLM:1; /* Continuous Link Mode (new in MPC563xM) */
  1958. vuint32_t HALT:1; /* Halt DMA Operations (new in MPC563xM) */
  1959. vuint32_t HOE:1; /* Halt On Error (new in MPC563xM) */
  1960. vuint32_t ERGA:1; /* Enable Round Robin Group Arbitration */
  1961. vuint32_t ERCA:1; /* Enable Round Robin Channel Arbitration */
  1962. vuint32_t EDBG:1; /* Enable Debug */
  1963. vuint32_t EBW:1; /* Enable Buffered Writes */
  1964. } B;
  1965. } CR; /* DMA Control Register <URM>DMACR</URM> @baseaddress + 0x0 */
  1966. union {
  1967. vuint32_t R;
  1968. struct {
  1969. vuint32_t VLD:1; /* Logical OR of all DMAERRH */
  1970. vuint32_t:14; /* Reserved */
  1971. vuint32_t ECX:1; /* (new in MPC563xM) */
  1972. vuint32_t GPE:1; /* Group Priority Error */
  1973. vuint32_t CPE:1; /* Channel Priority Error */
  1974. vuint32_t ERRCHN:6; /* ERRCHN[5:0] Error Channel Number or The channel number of the last recorded error */
  1975. vuint32_t SAE:1; /* Source Address Error 0 */
  1976. vuint32_t SOE:1; /* Source Offset Error */
  1977. vuint32_t DAE:1; /* Destination Address Error */
  1978. vuint32_t DOE:1; /* Destination Offset Error */
  1979. vuint32_t NCE:1; /* Nbytes/Citer Configuration Error */
  1980. vuint32_t SGE:1; /* Scatter/Gather Configuration Error */
  1981. vuint32_t SBE:1; /* Source Bus Error */
  1982. vuint32_t DBE:1; /* Destination Bus Error */
  1983. } B;
  1984. } ESR; /* <URM>DMAES</URM> Error Status Register */
  1985. uint32_t edma_reserved_erqrh;
  1986. union {
  1987. vuint32_t R;
  1988. struct {
  1989. vuint32_t ERQ31:1;
  1990. vuint32_t ERQ30:1;
  1991. vuint32_t ERQ29:1;
  1992. vuint32_t ERQ28:1;
  1993. vuint32_t ERQ27:1;
  1994. vuint32_t ERQ26:1;
  1995. vuint32_t ERQ25:1;
  1996. vuint32_t ERQ24:1;
  1997. vuint32_t ERQ23:1;
  1998. vuint32_t ERQ22:1;
  1999. vuint32_t ERQ21:1;
  2000. vuint32_t ERQ20:1;
  2001. vuint32_t ERQ19:1;
  2002. vuint32_t ERQ18:1;
  2003. vuint32_t ERQ17:1;
  2004. vuint32_t ERQ16:1;
  2005. vuint32_t ERQ15:1;
  2006. vuint32_t ERQ14:1;
  2007. vuint32_t ERQ13:1;
  2008. vuint32_t ERQ12:1;
  2009. vuint32_t ERQ11:1;
  2010. vuint32_t ERQ10:1;
  2011. vuint32_t ERQ09:1;
  2012. vuint32_t ERQ08:1;
  2013. vuint32_t ERQ07:1;
  2014. vuint32_t ERQ06:1;
  2015. vuint32_t ERQ05:1;
  2016. vuint32_t ERQ04:1;
  2017. vuint32_t ERQ03:1;
  2018. vuint32_t ERQ02:1;
  2019. vuint32_t ERQ01:1;
  2020. vuint32_t ERQ00:1;
  2021. } B;
  2022. } ERQRL; /* <URM>DMAERQL</URM> ,DMA Enable Request Register Low */
  2023. uint32_t edma_reserved_eeirh;
  2024. union {
  2025. vuint32_t R;
  2026. struct {
  2027. vuint32_t EEI31:1;
  2028. vuint32_t EEI30:1;
  2029. vuint32_t EEI29:1;
  2030. vuint32_t EEI28:1;
  2031. vuint32_t EEI27:1;
  2032. vuint32_t EEI26:1;
  2033. vuint32_t EEI25:1;
  2034. vuint32_t EEI24:1;
  2035. vuint32_t EEI23:1;
  2036. vuint32_t EEI22:1;
  2037. vuint32_t EEI21:1;
  2038. vuint32_t EEI20:1;
  2039. vuint32_t EEI19:1;
  2040. vuint32_t EEI18:1;
  2041. vuint32_t EEI17:1;
  2042. vuint32_t EEI16:1;
  2043. vuint32_t EEI15:1;
  2044. vuint32_t EEI14:1;
  2045. vuint32_t EEI13:1;
  2046. vuint32_t EEI12:1;
  2047. vuint32_t EEI11:1;
  2048. vuint32_t EEI10:1;
  2049. vuint32_t EEI09:1;
  2050. vuint32_t EEI08:1;
  2051. vuint32_t EEI07:1;
  2052. vuint32_t EEI06:1;
  2053. vuint32_t EEI05:1;
  2054. vuint32_t EEI04:1;
  2055. vuint32_t EEI03:1;
  2056. vuint32_t EEI02:1;
  2057. vuint32_t EEI01:1;
  2058. vuint32_t EEI00:1;
  2059. } B;
  2060. } EEIRL; /* <URM>DMAEEIL</URM> , DMA Enable Error Interrupt Register Low */
  2061. union {
  2062. vuint8_t R;
  2063. vuint8_t B; /* <URM>NOP:1 SERQ:7</URM> */
  2064. } SERQR; /* <URM>DMASERQ</URM> , DMA Set Enable Request Register */
  2065. union {
  2066. vuint8_t R;
  2067. vuint8_t B; /* <URM>NOP:1 CERQ:7</URM> */
  2068. } CERQR; /* <URM>DMACERQ</URM> , DMA Clear Enable Request Register */
  2069. union {
  2070. vuint8_t R;
  2071. vuint8_t B; /* <URM>NOP:1 SEEI:7</URM> */
  2072. } SEEIR; /* <URM>DMASEEI</URM> , DMA Set Enable Error Interrupt Register */
  2073. union {
  2074. vuint8_t R;
  2075. vuint8_t B; /* <URM>NOP:1 CEEI:7</URM> */
  2076. } CEEIR; /* <URM>DMACEEI</URM> , DMA Clear Enable Error Interrupt Register */
  2077. union {
  2078. vuint8_t R;
  2079. vuint8_t B; /* <URM>NOP:1 CINT:7</URM> */
  2080. } CIRQR; /* <URM>DMACINT</URM> , DMA Clear Interrupt Request Register */
  2081. union {
  2082. vuint8_t R;
  2083. vuint8_t B; /* <URM>NOP:1 CERR:7</URM> */
  2084. } CER; /* <URM>DMACERR</URM> , DMA Clear error Register */
  2085. union {
  2086. vuint8_t R;
  2087. vuint8_t B; /* <URM>NOP:1 SSRT:7</URM> */
  2088. } SSBR; /* <URM>DMASSRT</URM> , Set Start Bit Register */
  2089. union {
  2090. vuint8_t R;
  2091. vuint8_t B; /* <URM>NOP:1 CDNE:7</URM> */
  2092. } CDSBR; /* <URM>DMACDNE</URM> , Clear Done Status Bit Register */
  2093. uint32_t edma_reserved_irqrh;
  2094. union {
  2095. vuint32_t R;
  2096. struct {
  2097. vuint32_t INT31:1;
  2098. vuint32_t INT30:1;
  2099. vuint32_t INT29:1;
  2100. vuint32_t INT28:1;
  2101. vuint32_t INT27:1;
  2102. vuint32_t INT26:1;
  2103. vuint32_t INT25:1;
  2104. vuint32_t INT24:1;
  2105. vuint32_t INT23:1;
  2106. vuint32_t INT22:1;
  2107. vuint32_t INT21:1;
  2108. vuint32_t INT20:1;
  2109. vuint32_t INT19:1;
  2110. vuint32_t INT18:1;
  2111. vuint32_t INT17:1;
  2112. vuint32_t INT16:1;
  2113. vuint32_t INT15:1;
  2114. vuint32_t INT14:1;
  2115. vuint32_t INT13:1;
  2116. vuint32_t INT12:1;
  2117. vuint32_t INT11:1;
  2118. vuint32_t INT10:1;
  2119. vuint32_t INT09:1;
  2120. vuint32_t INT08:1;
  2121. vuint32_t INT07:1;
  2122. vuint32_t INT06:1;
  2123. vuint32_t INT05:1;
  2124. vuint32_t INT04:1;
  2125. vuint32_t INT03:1;
  2126. vuint32_t INT02:1;
  2127. vuint32_t INT01:1;
  2128. vuint32_t INT00:1;
  2129. } B;
  2130. } IRQRL; /* <URM>DMAINTL</URM> , DMA Interrupt Request Low */
  2131. uint32_t edma_reserved_erh;
  2132. union {
  2133. vuint32_t R;
  2134. struct {
  2135. vuint32_t ERR31:1;
  2136. vuint32_t ERR30:1;
  2137. vuint32_t ERR29:1;
  2138. vuint32_t ERR28:1;
  2139. vuint32_t ERR27:1;
  2140. vuint32_t ERR26:1;
  2141. vuint32_t ERR25:1;
  2142. vuint32_t ERR24:1;
  2143. vuint32_t ERR23:1;
  2144. vuint32_t ERR22:1;
  2145. vuint32_t ERR21:1;
  2146. vuint32_t ERR20:1;
  2147. vuint32_t ERR19:1;
  2148. vuint32_t ERR18:1;
  2149. vuint32_t ERR17:1;
  2150. vuint32_t ERR16:1;
  2151. vuint32_t ERR15:1;
  2152. vuint32_t ERR14:1;
  2153. vuint32_t ERR13:1;
  2154. vuint32_t ERR12:1;
  2155. vuint32_t ERR11:1;
  2156. vuint32_t ERR10:1;
  2157. vuint32_t ERR09:1;
  2158. vuint32_t ERR08:1;
  2159. vuint32_t ERR07:1;
  2160. vuint32_t ERR06:1;
  2161. vuint32_t ERR05:1;
  2162. vuint32_t ERR04:1;
  2163. vuint32_t ERR03:1;
  2164. vuint32_t ERR02:1;
  2165. vuint32_t ERR01:1;
  2166. vuint32_t ERR00:1;
  2167. } B;
  2168. } ERL; /* <URM>DMAERRL</URM> , DMA Error Low */
  2169. int32_t edma_reserverd_hrsh[1];
  2170. int32_t edma_reserverd_hrsl[1];
  2171. int32_t edma_reserverd_gpor[1];
  2172. int32_t EDMA_reserverd_223[49];
  2173. union {
  2174. vuint8_t R;
  2175. struct {
  2176. vuint8_t ECP:1;
  2177. vuint8_t DPA:1;
  2178. vuint8_t GRPPRI:2;
  2179. vuint8_t CHPRI:4;
  2180. } B;
  2181. } CPR[64]; /* <URM>DCHPRI [32]</URM> , Channel n Priority */
  2182. uint32_t edma_reserved2[944];
  2183. /****************************************************************************/
  2184. /* DMA2 Transfer Control Descriptor */
  2185. /****************************************************************************/
  2186. struct tcd_t { /*for "standard" format TCDs (when EDMA.TCD[x].CITER.E_LINK==BITER.E_LINK=0 && EDMA.EMLM=0 ) */
  2187. vuint32_t SADDR; /* source address */
  2188. vuint16_t SMOD:5; /* source address modulo */
  2189. vuint16_t SSIZE:3; /* source transfer size */
  2190. vuint16_t DMOD:5; /* destination address modulo */
  2191. vuint16_t DSIZE:3; /* destination transfer size */
  2192. vint16_t SOFF; /* signed source address offset */
  2193. vuint32_t NBYTES; /* inner (“minor”) byte count */
  2194. vint32_t SLAST; /* last destination address adjustment, or
  2195. scatter/gather address (if e_sg = 1) */
  2196. vuint32_t DADDR; /* destination address */
  2197. vuint16_t CITERE_LINK:1;
  2198. vuint16_t CITER:15;
  2199. vint16_t DOFF; /* signed destination address offset */
  2200. vint32_t DLAST_SGA;
  2201. vuint16_t BITERE_LINK:1; /* beginning ("major") iteration count */
  2202. vuint16_t BITER:15;
  2203. vuint16_t BWC:2; /* bandwidth control */
  2204. vuint16_t MAJORLINKCH:6; /* enable channel-to-channel link */
  2205. vuint16_t DONE:1; /* channel done */
  2206. vuint16_t ACTIVE:1; /* channel active */
  2207. vuint16_t MAJORE_LINK:1; /* enable channel-to-channel link */
  2208. vuint16_t E_SG:1; /* enable scatter/gather descriptor */
  2209. vuint16_t D_REQ:1; /* disable ipd_req when done */
  2210. vuint16_t INT_HALF:1; /* interrupt on citer = (biter >> 1) */
  2211. vuint16_t INT_MAJ:1; /* interrupt on major loop completion */
  2212. vuint16_t START:1; /* explicit channel start */
  2213. } TCD[64]; /* <URM>TCD [32]</URM> , transfer_control_descriptor */
  2214. };
  2215. struct EDMA_TCD_alt1_tag { /*for alternate format TCDs (when EDMA.TCD[x].CITER.E_LINK==BITER.E_LINK=1 ) */
  2216. struct tcd_alt1_t {
  2217. vuint32_t SADDR; /* source address */
  2218. vuint16_t SMOD:5; /* source address modulo */
  2219. vuint16_t SSIZE:3; /* source transfer size */
  2220. vuint16_t DMOD:5; /* destination address modulo */
  2221. vuint16_t DSIZE:3; /* destination transfer size */
  2222. vint16_t SOFF; /* signed source address offset */
  2223. vuint32_t NBYTES; /* inner (“minor”) byte count */
  2224. vint32_t SLAST; /* last destination address adjustment, or
  2225. scatter/gather address (if e_sg = 1) */
  2226. vuint32_t DADDR; /* destination address */
  2227. vuint16_t CITERE_LINK:1;
  2228. vuint16_t CITERLINKCH:6;
  2229. vuint16_t CITER:9;
  2230. vint16_t DOFF; /* signed destination address offset */
  2231. vint32_t DLAST_SGA;
  2232. vuint16_t BITERE_LINK:1; /* beginning (“major”) iteration count */
  2233. vuint16_t BITERLINKCH:6;
  2234. vuint16_t BITER:9;
  2235. vuint16_t BWC:2; /* bandwidth control */
  2236. vuint16_t MAJORLINKCH:6; /* enable channel-to-channel link */
  2237. vuint16_t DONE:1; /* channel done */
  2238. vuint16_t ACTIVE:1; /* channel active */
  2239. vuint16_t MAJORE_LINK:1; /* enable channel-to-channel link */
  2240. vuint16_t E_SG:1; /* enable scatter/gather descriptor */
  2241. vuint16_t D_REQ:1; /* disable ipd_req when done */
  2242. vuint16_t INT_HALF:1; /* interrupt on citer = (biter >> 1) */
  2243. vuint16_t INT_MAJ:1; /* interrupt on major loop completion */
  2244. vuint16_t START:1; /* explicit channel start */
  2245. } TCD[64]; /* <URM>TCD [32]</URM> , transfer_control_descriptor */
  2246. };
  2247. /****************************************************************************/
  2248. /* MODULE : INTC */
  2249. /****************************************************************************/
  2250. struct INTC_tag {
  2251. union {
  2252. vuint32_t R;
  2253. struct {
  2254. vuint32_t:18; /* Reserved */
  2255. vuint32_t VTES_PRC1:1; /* Vector Table Entry Size for PRC1 (new in MPC563xM) */
  2256. vuint32_t:4; /* Reserved */
  2257. vuint32_t HVEN_PRC1:1; /* Hardware Vector Enable for PRC1 (new in MPC563xM) */
  2258. vuint32_t:2; /* Reserved */
  2259. vuint32_t VTES:1; /* Vector Table Entry Size for PRC0 <URM>VTES_PRC0</URM> */
  2260. vuint32_t:4; /* Reserved */
  2261. vuint32_t HVEN:1; /* Hardware Vector Enable for PRC0 <URM>HVEN_PRC0</URM> */
  2262. } B;
  2263. } MCR; /* INTC Module Configuration Register (MCR) <URM>INTC_BCR</URM> @baseaddress + 0x00 */
  2264. int32_t INTC_reserverd_10[1];
  2265. union {
  2266. vuint32_t R;
  2267. struct {
  2268. vuint32_t:28; /* Reserved */
  2269. vuint32_t PRI:4; /* Priority */
  2270. } B;
  2271. } CPR; /* INTC Current Priority Register for Processor 0 (CPR) <URM>INTC_CPR_PRC0</URM> @baseaddress + 0x08 */
  2272. int32_t INTC_reserved_1; /* CPR_PRC1 - INTC Current Priority Register for Processor 1 (CPR_PRC1) <URM>INTC_CPR_PRC1</URM> @baseaddress + 0x0c */
  2273. union {
  2274. vuint32_t R;
  2275. struct {
  2276. vuint32_t VTBA:21; /* Vector Table Base Address <URM>VTBA_PRC0</URM> */
  2277. vuint32_t INTVEC:9; /* Interrupt Vector <URM>INTVEC_PRC0</URM> */
  2278. vuint32_t:2; /* Reserved */
  2279. } B;
  2280. } IACKR; /* INTC Interrupt Acknowledge Register for Processor 0 (IACKR) <URM>INTC_IACKR_PRC0</URM> @baseaddress + 0x10 */
  2281. int32_t INTC_reserverd_2; /* IACKR_PRC1 - INTC Interrupt Acknowledge Register for Processor 1 (IACKR_PRC1) <URM>INTC_IACKR_PRC1</URM> @baseaddress + 0x14 */
  2282. union {
  2283. vuint32_t R;
  2284. } EOIR; /* INTC End of Interrupt Register for Processor 0 (EOIR) <URM>INTC_EOIR_PRC0</URM> @baseaddress + 0x18 */
  2285. int32_t INTC_reserverd_3; /* EOIR_PRC1 - INTC End of Interrupt Register for Processor 1 (EOIR_PRC1) <URM>INTC_EOIR_PRC1</URM> @baseaddress + 0x1C */
  2286. union {
  2287. vuint8_t R;
  2288. struct {
  2289. vuint8_t:6; /* Reserved */
  2290. vuint8_t SET:1; /* Set Flag bits */
  2291. vuint8_t CLR:1; /* Clear Flag bits */
  2292. } B;
  2293. } SSCIR[8]; /* INTC Software Set/Clear Interrupt Registers (SSCIR) <URM>INTC_SSCIRn</URM> @baseaddress + 0x20 */
  2294. int32_t INTC_reserverd_32[6];
  2295. union {
  2296. vuint8_t R;
  2297. struct {
  2298. vuint8_t PRC_SEL:2; /* Processor Select (new in MPC563xM) */
  2299. vuint8_t:2; /* Reserved */
  2300. vuint8_t PRI:4; /* Priority Select */
  2301. } B;
  2302. } PSR[512]; /* INTC Priority Select Registers (PSR) <URM>INTC_PSR</URM> @baseaddress + 0x40 */
  2303. }; /* end of INTC_tag */
  2304. /****************************************************************************/
  2305. /* MODULE : EQADC */
  2306. /****************************************************************************/
  2307. struct EQADC_tag {
  2308. union {
  2309. vuint32_t R;
  2310. struct {
  2311. vuint32_t:24;
  2312. vuint32_t ICEA0:1;
  2313. vuint32_t ICEA1:1;
  2314. vuint32_t:1;
  2315. vuint32_t ESSIE:2;
  2316. vuint32_t:1;
  2317. vuint32_t DBG:2;
  2318. } B;
  2319. } MCR; /* Module Configuration Register <URM>EQADC_MCR</URM> */
  2320. int32_t EQADC_reserved00;
  2321. union {
  2322. vuint32_t R;
  2323. struct {
  2324. vuint32_t:6;
  2325. vuint32_t NMF:26;
  2326. } B;
  2327. } NMSFR; /* Null Message Send Format Register <URM>EQADC_NMSFR</URM> */
  2328. union {
  2329. vuint32_t R;
  2330. struct {
  2331. vuint32_t:28;
  2332. vuint32_t DFL:4;
  2333. } B;
  2334. } ETDFR; /* External Trigger Digital Filter Register <URM>EQADC_ETDFR</URM> */
  2335. union {
  2336. vuint32_t R;
  2337. struct {
  2338. vuint32_t CFPUSH:32; /* <URM>CF_PUSH</URM> */
  2339. } B;
  2340. } CFPR[6]; /* CFIFO Push Registers <URM>EQADC_CFPR</URM> */
  2341. uint32_t eqadc_reserved1;
  2342. uint32_t eqadc_reserved2;
  2343. union {
  2344. vuint32_t R;
  2345. struct {
  2346. vuint32_t:16;
  2347. vuint32_t RFPOP:16; /* <URM>RF_POP</URM> */
  2348. } B;
  2349. } RFPR[6]; /* Result FIFO Pop Registers <URM>EQADC_RFPR</URM> */
  2350. uint32_t eqadc_reserved3;
  2351. uint32_t eqadc_reserved4;
  2352. union {
  2353. vuint16_t R;
  2354. struct {
  2355. vuint16_t:3;
  2356. vuint16_t CFEE0:1;
  2357. vuint16_t STRME0:1;
  2358. vuint16_t SSE:1;
  2359. vuint16_t CFINV:1;
  2360. vuint16_t:1;
  2361. vuint16_t MODE:4;
  2362. vuint16_t AMODE0:4; /* CFIFO0 only */
  2363. } B;
  2364. } CFCR[6]; /* CFIFO Control Registers <URM>EQADC_CFCR</URM> */
  2365. uint32_t eqadc_reserved5;
  2366. union {
  2367. vuint16_t R;
  2368. struct {
  2369. vuint16_t NCIE:1;
  2370. vuint16_t TORIE:1;
  2371. vuint16_t PIE:1;
  2372. vuint16_t EOQIE:1;
  2373. vuint16_t CFUIE:1;
  2374. vuint16_t:1;
  2375. vuint16_t CFFE:1;
  2376. vuint16_t CFFS:1;
  2377. vuint16_t:4;
  2378. vuint16_t RFOIE:1;
  2379. vuint16_t:1;
  2380. vuint16_t RFDE:1;
  2381. vuint16_t RFDS:1;
  2382. } B;
  2383. } IDCR[6]; /* Interrupt and DMA Control Registers <URM>EQADC_IDCR</URM> */
  2384. uint32_t eqadc_reserved6;
  2385. union {
  2386. vuint32_t R;
  2387. struct {
  2388. vuint32_t NCF:1;
  2389. vuint32_t TORF:1;
  2390. vuint32_t PF:1;
  2391. vuint32_t EOQF:1;
  2392. vuint32_t CFUF:1;
  2393. vuint32_t SSS:1;
  2394. vuint32_t CFFF:1;
  2395. vuint32_t:5;
  2396. vuint32_t RFOF:1;
  2397. vuint32_t:1;
  2398. vuint32_t RFDF:1;
  2399. vuint32_t:1;
  2400. vuint32_t CFCTR:4;
  2401. vuint32_t TNXTPTR:4;
  2402. vuint32_t RFCTR:4;
  2403. vuint32_t POPNXTPTR:4;
  2404. } B;
  2405. } FISR[6]; /* FIFO and Interrupt Status Registers <URM>EQADC_FISR</URM> */
  2406. uint32_t eqadc_reserved7;
  2407. uint32_t eqadc_reserved8;
  2408. union {
  2409. vuint16_t R;
  2410. struct {
  2411. vuint16_t:5;
  2412. vuint16_t TCCF:11; /* <URM>TC_CF</URM> */
  2413. } B;
  2414. } CFTCR[6]; /* CFIFO Transfer Counter Registers <URM>EQADC_CFTCR</URM> */
  2415. uint32_t eqadc_reserved9;
  2416. union {
  2417. vuint32_t R;
  2418. struct {
  2419. vuint32_t CFS0:2; /* <URM>CFS0_TCB0</URM> */
  2420. vuint32_t CFS1:2; /* <URM>CFS1_TCB0</URM> */
  2421. vuint32_t CFS2:2; /* <URM>CFS2_TCB0</URM> */
  2422. vuint32_t CFS3:2; /* <URM>CFS3_TCB0</URM> */
  2423. vuint32_t CFS4:2; /* <URM>CFS4_TCB0</URM> */
  2424. vuint32_t CFS5:2; /* <URM>CFS5_TCB0</URM> */
  2425. vuint32_t:5;
  2426. vuint32_t LCFTCB0:4;
  2427. vuint32_t TC_LCFTCB0:11;
  2428. } B;
  2429. } CFSSR0; /* CFIFO Status Register 0 <URM>EQADC_CFSSR0</URM> */
  2430. union {
  2431. vuint32_t R;
  2432. struct {
  2433. vuint32_t CFS0:2; /* <URM>CFS0_TCB1</URM> */
  2434. vuint32_t CFS1:2; /* <URM>CFS1_TCB1</URM> */
  2435. vuint32_t CFS2:2; /* <URM>CFS2_TCB1</URM> */
  2436. vuint32_t CFS3:2; /* <URM>CFS3_TCB1</URM> */
  2437. vuint32_t CFS4:2; /* <URM>CFS4_TCB1</URM> */
  2438. vuint32_t CFS5:2; /* <URM>CFS5_TCB1</URM> */
  2439. vuint32_t:5;
  2440. vuint32_t LCFTCB1:4;
  2441. vuint32_t TC_LCFTCB1:11;
  2442. } B;
  2443. } CFSSR1; /* CFIFO Status Register 1 <URM>EQADC_CFSSR1</URM> */
  2444. union {
  2445. vuint32_t R;
  2446. struct {
  2447. vuint32_t CFS0:2; /* <URM>CFS0_TSSI</URM> */
  2448. vuint32_t CFS1:2; /* <URM>CFS1_TSSI</URM> */
  2449. vuint32_t CFS2:2; /* <URM>CFS2_TSSI</URM> */
  2450. vuint32_t CFS3:2; /* <URM>CFS3_TSSI</URM> */
  2451. vuint32_t CFS4:2; /* <URM>CFS4_TSSI</URM> */
  2452. vuint32_t CFS5:2; /* <URM>CFS5_TSSI</URM> */
  2453. vuint32_t:4;
  2454. vuint32_t ECBNI:1;
  2455. vuint32_t LCFTSSI:4;
  2456. vuint32_t TC_LCFTSSI:11;
  2457. } B;
  2458. } CFSSR2; /* CFIFO Status Register 2 <URM>EQADC_CFSSR2</URM> */
  2459. union {
  2460. vuint32_t R;
  2461. struct {
  2462. vuint32_t CFS0:2;
  2463. vuint32_t CFS1:2;
  2464. vuint32_t CFS2:2;
  2465. vuint32_t CFS3:2;
  2466. vuint32_t CFS4:2;
  2467. vuint32_t CFS5:2;
  2468. vuint32_t:20;
  2469. } B;
  2470. } CFSR; /* <URM>EQADC_CFSR</URM> */
  2471. uint32_t eqadc_reserved11;
  2472. union {
  2473. vuint32_t R;
  2474. struct {
  2475. vuint32_t:21;
  2476. vuint32_t MDT:3;
  2477. vuint32_t:4;
  2478. vuint32_t BR:4;
  2479. } B;
  2480. } SSICR; /* SSI Control Register <URM>EQADC_SSICR</URM> */
  2481. union {
  2482. vuint32_t R;
  2483. struct {
  2484. vuint32_t RDV:1;
  2485. vuint32_t:5;
  2486. vuint32_t RDATA:26;
  2487. } B;
  2488. } SSIRDR; /* SSI Recieve Data Register <URM>EQADC_SSIRDR</URM> @ baseaddress + 0xB8 */
  2489. uint32_t eqadc_reserved11b[5];
  2490. uint32_t eqadc_reserved15; /* EQADC Red Line Client Configuration Register @ baseaddress + 0xD0 */
  2491. /* REDLCCR is not implemented in the MPC563xM */
  2492. uint32_t eqadc_reserved12[11];
  2493. struct {
  2494. union {
  2495. vuint32_t R;
  2496. /*<URM>B.CFIFOx_DATAw</URM> */
  2497. } R[4]; /*<URM>EQADC_CFxRw<URM> */
  2498. union {
  2499. vuint32_t R;
  2500. /*<URM>B.CFIFOx_EDATAw</URM> */
  2501. } EDATA[4]; /*<URM>EQADC_CFxERw</URM> (new in MPC563xM) */
  2502. uint32_t eqadc_reserved13[8];
  2503. } CF[6];
  2504. uint32_t eqadc_reserved14[32];
  2505. struct {
  2506. union {
  2507. vuint32_t R;
  2508. /*<URM>RFIFOx_DATAw</URM> */
  2509. } R[4]; /*<URM>EQADC_RFxRw</URM> */
  2510. uint32_t eqadc_reserved15[12];
  2511. } RF[6];
  2512. };
  2513. /****************************************************************************/
  2514. /* MODULE : DSPI */
  2515. /****************************************************************************/
  2516. struct DSPI_tag {
  2517. union {
  2518. vuint32_t R;
  2519. struct {
  2520. vuint32_t MSTR:1;
  2521. vuint32_t CONT_SCKE:1;
  2522. vuint32_t DCONF:2;
  2523. vuint32_t FRZ:1;
  2524. vuint32_t MTFE:1;
  2525. vuint32_t PCSSE:1;
  2526. vuint32_t ROOE:1;
  2527. vuint32_t PCSIS7:1; /* new in MPC563xM */
  2528. vuint32_t PCSIS6:1; /* new in MPC563xM */
  2529. vuint32_t PCSIS5:1;
  2530. vuint32_t PCSIS4:1;
  2531. vuint32_t PCSIS3:1;
  2532. vuint32_t PCSIS2:1;
  2533. vuint32_t PCSIS1:1;
  2534. vuint32_t PCSIS0:1;
  2535. vuint32_t DOZE:1;
  2536. vuint32_t MDIS:1;
  2537. vuint32_t DIS_TXF:1;
  2538. vuint32_t DIS_RXF:1;
  2539. vuint32_t CLR_TXF:1;
  2540. vuint32_t CLR_RXF:1;
  2541. vuint32_t SMPL_PT:2;
  2542. vuint32_t:7;
  2543. vuint32_t HALT:1;
  2544. } B;
  2545. } MCR; /* Module Configuration Register <URM>DSPI_MCR</URM> @baseaddress + 0x00 */
  2546. uint32_t dspi_reserved1;
  2547. union {
  2548. vuint32_t R;
  2549. struct {
  2550. vuint32_t TCNT:16; /* <URM>SPI_TCNT</URM> */
  2551. vuint32_t:16;
  2552. } B;
  2553. } TCR; /* DSPI Transfer Count Register <URM>DSPI_TCR</URM> @baseaddress + 0x08 */
  2554. union {
  2555. vuint32_t R;
  2556. struct {
  2557. vuint32_t DBR:1;
  2558. vuint32_t FMSZ:4;
  2559. vuint32_t CPOL:1;
  2560. vuint32_t CPHA:1;
  2561. vuint32_t LSBFE:1;
  2562. vuint32_t PCSSCK:2;
  2563. vuint32_t PASC:2;
  2564. vuint32_t PDT:2;
  2565. vuint32_t PBR:2;
  2566. vuint32_t CSSCK:4;
  2567. vuint32_t ASC:4;
  2568. vuint32_t DT:4;
  2569. vuint32_t BR:4;
  2570. } B;
  2571. } CTAR[8]; /* Clock and Transfer Attributes Registers <URM>DSPI_CTARx</URM> @baseaddress + 0x0C - 0x28 */
  2572. union {
  2573. vuint32_t R;
  2574. struct {
  2575. vuint32_t TCF:1;
  2576. vuint32_t TXRXS:1;
  2577. vuint32_t:1;
  2578. vuint32_t EOQF:1;
  2579. vuint32_t TFUF:1;
  2580. vuint32_t:1;
  2581. vuint32_t TFFF:1;
  2582. vuint32_t:5;
  2583. vuint32_t RFOF:1;
  2584. vuint32_t:1;
  2585. vuint32_t RFDF:1;
  2586. vuint32_t:1;
  2587. vuint32_t TXCTR:4;
  2588. vuint32_t TXNXTPTR:4;
  2589. vuint32_t RXCTR:4;
  2590. vuint32_t POPNXTPTR:4;
  2591. } B;
  2592. } SR; /* Status Register <URM>DSPI_SR</URM> @baseaddress + 0x2C */
  2593. union {
  2594. vuint32_t R;
  2595. struct {
  2596. vuint32_t TCFRE:1; /*<URM>TCF_RE</URM> */
  2597. vuint32_t:2;
  2598. vuint32_t EOQFRE:1; /*<URM>EQQF_RE</URM> */
  2599. vuint32_t TFUFRE:1; /*<URM>TFUF_RE</URM> */
  2600. vuint32_t:1;
  2601. vuint32_t TFFFRE:1; /*<URM>TFFF_RE</URM> */
  2602. vuint32_t TFFFDIRS:1; /*<URM>TFFF_DIRS</URM> */
  2603. vuint32_t:4;
  2604. vuint32_t RFOFRE:1; /*<URM>RFOF_RE</URM> */
  2605. vuint32_t:1;
  2606. vuint32_t RFDFRE:1; /*<URM>RFDF_RE</URM> */
  2607. vuint32_t RFDFDIRS:1; /*<URM>RFDF_DIRS</URM> */
  2608. vuint32_t:16;
  2609. } B;
  2610. } RSER; /* DMA/Interrupt Request Select and Enable Register <URM>DSPI_RSER</URM> @baseaddress + 0x30 */
  2611. union {
  2612. vuint32_t R;
  2613. struct {
  2614. vuint32_t CONT:1;
  2615. vuint32_t CTAS:3;
  2616. vuint32_t EOQ:1;
  2617. vuint32_t CTCNT:1;
  2618. vuint32_t:2;
  2619. vuint32_t PCS7:1; /* new in MPC563xM */
  2620. vuint32_t PCS6:1; /* new in MPC563xM */
  2621. vuint32_t PCS5:1;
  2622. vuint32_t PCS4:1;
  2623. vuint32_t PCS3:1;
  2624. vuint32_t PCS2:1;
  2625. vuint32_t PCS1:1;
  2626. vuint32_t PCS0:1;
  2627. vuint32_t TXDATA:16;
  2628. } B;
  2629. } PUSHR; /* PUSH TX FIFO Register <URM>DSPI_PUSHR</URM> @baseaddress + 0x34 */
  2630. union {
  2631. vuint32_t R;
  2632. struct {
  2633. vuint32_t:16;
  2634. vuint32_t RXDATA:16;
  2635. } B;
  2636. } POPR; /* POP RX FIFO Register <URM>DSPI_POPR</URM> @baseaddress + 0x38 */
  2637. union {
  2638. vuint32_t R;
  2639. struct {
  2640. vuint32_t TXCMD:16;
  2641. vuint32_t TXDATA:16;
  2642. } B;
  2643. } TXFR[4]; /* Transmit FIFO Registers <URM>DSPI_TXFRx</URM> @baseaddress + 0x3c - 0x78 */
  2644. vuint32_t DSPI_reserved_txf[12];
  2645. union {
  2646. vuint32_t R;
  2647. struct {
  2648. vuint32_t:16;
  2649. vuint32_t RXDATA:16;
  2650. } B;
  2651. } RXFR[4]; /* Transmit FIFO Registers <URM>DSPI_RXFRx</URM> @baseaddress + 0x7c - 0xB8 */
  2652. vuint32_t DSPI_reserved_rxf[12];
  2653. union {
  2654. vuint32_t R;
  2655. struct {
  2656. vuint32_t MTOE:1;
  2657. vuint32_t:1;
  2658. vuint32_t MTOCNT:6;
  2659. vuint32_t:3;
  2660. vuint32_t TSBC:1;
  2661. vuint32_t TXSS:1;
  2662. vuint32_t TPOL:1;
  2663. vuint32_t TRRE:1;
  2664. vuint32_t CID:1;
  2665. vuint32_t DCONT:1;
  2666. vuint32_t DSICTAS:3;
  2667. vuint32_t:4;
  2668. vuint32_t DPCS7:1;
  2669. vuint32_t DPCS6:1;
  2670. vuint32_t DPCS5:1;
  2671. vuint32_t DPCS4:1;
  2672. vuint32_t DPCS3:1;
  2673. vuint32_t DPCS2:1;
  2674. vuint32_t DPCS1:1;
  2675. vuint32_t DPCS0:1;
  2676. } B;
  2677. } DSICR; /* DSI Configuration Register <URM>DSPI_DSICR</URM> @baseaddress + 0xBC */
  2678. union {
  2679. vuint32_t R;
  2680. struct {
  2681. vuint32_t SER_DATA:32; /* 32bit instead of 16 in MPC563xM */
  2682. } B;
  2683. } SDR; /* DSI Serialization Data Register <URM>DSPI_SDR</URM> @baseaddress + 0xC0 */
  2684. union {
  2685. vuint32_t R;
  2686. struct {
  2687. vuint32_t ASER_DATA:32; /* 32bit instead of 16 in MPC563xM */
  2688. } B;
  2689. } ASDR; /* DSI Alternate Serialization Data Register <URM>DSPI_ASDR</URM> @baseaddress + 0xC4 */
  2690. union {
  2691. vuint32_t R;
  2692. struct {
  2693. vuint32_t COMP_DATA:32; /* 32bit instead of 16 in MPC563xM */
  2694. } B;
  2695. } COMPR; /* DSI Transmit Comparison Register <URM>DSPI_COMPR</URM> @baseaddress + 0xC8 */
  2696. union {
  2697. vuint32_t R;
  2698. struct {
  2699. vuint32_t DESER_DATA:32; /* 32bit instead of 16 in MPC563xM */
  2700. } B;
  2701. } DDR; /* DSI deserialization Data Register <URM>DSPI_DDR</URM> @baseaddress + 0xCC */
  2702. union {
  2703. vuint32_t R;
  2704. struct {
  2705. vuint32_t:3;
  2706. vuint32_t TSBCNT:5;
  2707. vuint32_t:16;
  2708. vuint32_t DPCS1_7:1;
  2709. vuint32_t DPCS1_6:1;
  2710. vuint32_t DPCS1_5:1;
  2711. vuint32_t DPCS1_4:1;
  2712. vuint32_t DPCS1_3:1;
  2713. vuint32_t DPCS1_2:1;
  2714. vuint32_t DPCS1_1:1;
  2715. vuint32_t DPCS1_0:1;
  2716. } B;
  2717. } DSICR1; /* DSI Configuration Register 1 <URM>DSPI_DSICR1</URM> @baseaddress + 0xD0 */
  2718. };
  2719. /****************************************************************************/
  2720. /* MODULE : eSCI */
  2721. /****************************************************************************/
  2722. struct ESCI_tag {
  2723. union {
  2724. vuint32_t R;
  2725. struct {
  2726. vuint32_t:3;
  2727. vuint32_t SBR:13;
  2728. vuint32_t LOOPS:1;
  2729. vuint32_t:1; /* Reserved in MPC563xM */
  2730. vuint32_t RSRC:1;
  2731. vuint32_t M:1;
  2732. vuint32_t WAKE:1;
  2733. vuint32_t ILT:1;
  2734. vuint32_t PE:1;
  2735. vuint32_t PT:1;
  2736. vuint32_t TIE:1;
  2737. vuint32_t TCIE:1;
  2738. vuint32_t RIE:1;
  2739. vuint32_t ILIE:1;
  2740. vuint32_t TE:1;
  2741. vuint32_t RE:1;
  2742. vuint32_t RWU:1;
  2743. vuint32_t SBK:1;
  2744. } B;
  2745. } CR1; /* Control Register 1 <URM>SCIBDH, SCIBDL, SCICR1, SCICR2</URM> @baseaddress + 0x00 */
  2746. union {
  2747. vuint16_t R;
  2748. struct {
  2749. vuint16_t MDIS:1;
  2750. vuint16_t FBR:1;
  2751. vuint16_t BSTP:1;
  2752. vuint16_t IEBERR:1; /* <URM>BERIE</URM> */
  2753. vuint16_t RXDMA:1;
  2754. vuint16_t TXDMA:1;
  2755. vuint16_t BRK13:1; /* <URM>BRCL</URM> */
  2756. vuint16_t TXDIR:1;
  2757. vuint16_t BESM13:1; /* <URM>BESM</URM> */
  2758. vuint16_t SBSTP:1; /* <URM>BESTP</URM> */
  2759. vuint16_t RXPOL:1;
  2760. vuint16_t PMSK:1;
  2761. vuint16_t ORIE:1;
  2762. vuint16_t NFIE:1;
  2763. vuint16_t FEIE:1;
  2764. vuint16_t PFIE:1;
  2765. } B;
  2766. } CR2; /* Control Register 2 <URM>SCICR3, SCICR4</URM> @baseaddress + 0x04 */
  2767. union {
  2768. vuint16_t R;
  2769. struct {
  2770. vuint16_t R8:1; /* <URM>RN</URM> */
  2771. vuint16_t T8:1; /* <URM>TN</URM> */
  2772. vuint16_t ERR:1;
  2773. vuint16_t:1;
  2774. vuint16_t R:4;
  2775. vuint8_t D;
  2776. } B;
  2777. } DR; /* Data Register <URM>SCIDRH, SCIDRL</URM> @baseaddress + 0x06 */
  2778. union {
  2779. vuint32_t R;
  2780. struct {
  2781. vuint32_t TDRE:1;
  2782. vuint32_t TC:1;
  2783. vuint32_t RDRF:1;
  2784. vuint32_t IDLE:1;
  2785. vuint32_t OR:1;
  2786. vuint32_t NF:1;
  2787. vuint32_t FE:1;
  2788. vuint32_t PF:1;
  2789. vuint32_t:3;
  2790. vuint32_t BERR:1;
  2791. vuint32_t:2;
  2792. vuint32_t TACT:1;
  2793. vuint32_t RAF:1; /* <URM>RACT</URM> */
  2794. vuint32_t RXRDY:1;
  2795. vuint32_t TXRDY:1;
  2796. vuint32_t LWAKE:1;
  2797. vuint32_t STO:1;
  2798. vuint32_t PBERR:1;
  2799. vuint32_t CERR:1;
  2800. vuint32_t CKERR:1;
  2801. vuint32_t FRC:1;
  2802. vuint32_t:6;
  2803. vuint32_t UREQ:1;
  2804. vuint32_t OVFL:1;
  2805. } B;
  2806. } SR; /* Status Register <URM>SCISR1, SCIRSR2, LINSTAT1, LINSTAT2 </URM> @baseaddress + 0x08 */
  2807. union {
  2808. vuint32_t R;
  2809. struct {
  2810. vuint32_t LRES:1;
  2811. vuint32_t WU:1;
  2812. vuint32_t WUD0:1;
  2813. vuint32_t WUD1:1;
  2814. vuint32_t:2; /* reserved: LDBG and DSF not longer supported */
  2815. vuint32_t PRTY:1;
  2816. vuint32_t LIN:1;
  2817. vuint32_t RXIE:1;
  2818. vuint32_t TXIE:1;
  2819. vuint32_t WUIE:1;
  2820. vuint32_t STIE:1;
  2821. vuint32_t PBIE:1;
  2822. vuint32_t CIE:1;
  2823. vuint32_t CKIE:1;
  2824. vuint32_t FCIE:1;
  2825. vuint32_t:6;
  2826. vuint32_t UQIE:1;
  2827. vuint32_t OFIE:1;
  2828. vuint32_t:8;
  2829. } B;
  2830. } LCR; /* LIN Control Register <URM>LINCTRL1, LINCTRL2, LINCTRL3 </URM> @baseaddress + 0x0C */
  2831. union {
  2832. vuint32_t R;
  2833. } LTR; /* LIN Transmit Register <URM>LINTX</URM> @baseaddress + 0x10 */
  2834. union {
  2835. vuint32_t R;
  2836. } LRR; /* LIN Recieve Register <URM>LINRX</URM> @baseaddress + 0x14 */
  2837. union {
  2838. vuint32_t R;
  2839. struct {
  2840. vuint32_t P:16;
  2841. vuint32_t:3;
  2842. vuint32_t SYNM:1;
  2843. vuint32_t EROE:1;
  2844. vuint32_t ERFE:1;
  2845. vuint32_t ERPE:1;
  2846. vuint32_t M2:1;
  2847. vuint32_t:8;
  2848. } B;
  2849. } LPR; /* LIN CRC Polynom Register <URM>LINCRCP1, LINCRCP2, SCICR5</URM> @baseaddress + 0x18 */
  2850. };
  2851. /****************************************************************************/
  2852. /* MODULE : eSCI */
  2853. /****************************************************************************/
  2854. struct ESCI_12_13_bit_tag {
  2855. union {
  2856. vuint16_t R;
  2857. struct {
  2858. vuint16_t R8:1;
  2859. vuint16_t T8:1;
  2860. vuint16_t ERR:1;
  2861. vuint16_t:1;
  2862. vuint16_t D:12;
  2863. } B;
  2864. } DR; /* Data Register */
  2865. };
  2866. /****************************************************************************/
  2867. /* MODULE : FlexCAN */
  2868. /****************************************************************************/
  2869. struct FLEXCAN_BUF_t {
  2870. union {
  2871. vuint32_t R;
  2872. struct {
  2873. vuint32_t:4;
  2874. vuint32_t CODE:4;
  2875. vuint32_t:1;
  2876. vuint32_t SRR:1;
  2877. vuint32_t IDE:1;
  2878. vuint32_t RTR:1;
  2879. vuint32_t LENGTH:4;
  2880. vuint32_t TIMESTAMP:16;
  2881. } B;
  2882. } CS;
  2883. union {
  2884. vuint32_t R;
  2885. struct {
  2886. vuint32_t PRIO:3;
  2887. vuint32_t STD_ID:11;
  2888. vuint32_t EXT_ID:18;
  2889. } B;
  2890. } ID;
  2891. union {
  2892. /*vuint8_t B[8]; *//* Data buffer in Bytes (8 bits) *//* Not used in MPC563xM */
  2893. /*vuint16_t H[4]; *//* Data buffer in Half-words (16 bits) *//* Not used in MPC563xM */
  2894. vuint32_t W[2]; /* Data buffer in words (32 bits) */
  2895. /*vuint32_t R[2]; *//* Data buffer in words (32 bits) *//* Not used in MPC563xM */
  2896. } DATA;
  2897. }; /* end of FLEXCAN_BUF_t */
  2898. struct FLEXCAN_RXFIFO_t {
  2899. union {
  2900. vuint32_t R;
  2901. struct {
  2902. vuint32_t:9;
  2903. vuint32_t SRR:1;
  2904. vuint32_t IDE:1;
  2905. vuint32_t RTR:1;
  2906. vuint32_t LENGTH:4;
  2907. vuint32_t TIMESTAMP:16;
  2908. } B;
  2909. } CS;
  2910. union {
  2911. vuint32_t R;
  2912. struct {
  2913. vuint32_t:3;
  2914. vuint32_t STD_ID:11;
  2915. vuint32_t EXT_ID:18;
  2916. } B;
  2917. } ID;
  2918. union {
  2919. /*vuint8_t B[8]; *//* Data buffer in Bytes (8 bits) *//* Not used in MPC563xM */
  2920. /*vuint16_t H[4]; *//* Data buffer in Half-words (16 bits) *//* Not used in MPC563xM */
  2921. vuint32_t W[2]; /* Data buffer in words (32 bits) */
  2922. /*vuint32_t R[2]; *//* Data buffer in words (32 bits) *//* Not used in MPC563xM */
  2923. } DATA;
  2924. uint32_t FLEXCAN_RXFIFO_reserved[20]; /* {0x00E0-0x0090}/0x4 = 0x14 */
  2925. union {
  2926. vuint32_t R;
  2927. } IDTABLE[8];
  2928. }; /* end of FLEXCAN_RXFIFO_t */
  2929. struct FLEXCAN2_tag {
  2930. union {
  2931. vuint32_t R;
  2932. struct {
  2933. vuint32_t MDIS:1;
  2934. vuint32_t FRZ:1;
  2935. vuint32_t FEN:1; /* new in MPC563xM */
  2936. vuint32_t HALT:1;
  2937. vuint32_t NOTRDY:1; /* <URM>NOT_RDY</URM> */
  2938. vuint32_t WAK_MSK:1; /* new in MPC563xM */
  2939. vuint32_t SOFTRST:1; /* <URM>SOFT_RST</URM> */
  2940. vuint32_t FRZACK:1; /* <URM>FRZ_ACK</URM> */
  2941. vuint32_t SUPV:1; /* new in MPC563xM */
  2942. vuint32_t SLF_WAK:1; /* new in MPC563xM */
  2943. vuint32_t WRNEN:1; /* <URM>WRN_EN</URM> */
  2944. vuint32_t MDISACK:1; /* <URM>LPM_ACK</URM> */
  2945. vuint32_t WAK_SRC:1; /* new in MPC563xM */
  2946. vuint32_t DOZE:1; /* new in MPC563xM */
  2947. vuint32_t SRXDIS:1; /* <URM>SRX_DIS</URM> */
  2948. vuint32_t MBFEN:1; /* <URM>BCC</URM> */
  2949. vuint32_t:2;
  2950. vuint32_t LPRIO_EN:1; /* new in MPC563xM */
  2951. vuint32_t AEN:1; /* new in MPC563xM */
  2952. vuint32_t:2;
  2953. vuint32_t IDAM:2; /* new in MPC563xM */
  2954. vuint32_t:2;
  2955. vuint32_t MAXMB:6;
  2956. } B;
  2957. } MCR; /* Module Configuration Register */
  2958. union {
  2959. vuint32_t R;
  2960. struct {
  2961. vuint32_t PRESDIV:8;
  2962. vuint32_t RJW:2;
  2963. vuint32_t PSEG1:3;
  2964. vuint32_t PSEG2:3;
  2965. vuint32_t BOFFMSK:1; /* <URM>BOFF_MSK</URM> */
  2966. vuint32_t ERRMSK:1; /* <URM>ERR_MSK</URM> */
  2967. vuint32_t CLKSRC:1; /* <URM>CLK_SRC</URM> */
  2968. vuint32_t LPB:1;
  2969. vuint32_t TWRNMSK:1; /* <URM>TWRN_MSK</URM> */
  2970. vuint32_t RWRNMSK:1; /* <URM>RWRN_MSK</URM> */
  2971. vuint32_t:2;
  2972. vuint32_t SMP:1;
  2973. vuint32_t BOFFREC:1; /* <URM>BOFF_REC</URM> */
  2974. vuint32_t TSYN:1;
  2975. vuint32_t LBUF:1;
  2976. vuint32_t LOM:1;
  2977. vuint32_t PROPSEG:3;
  2978. } B; /* Control Register */
  2979. } CR; /* <URM>CTRL</URM> */
  2980. union {
  2981. vuint32_t R;
  2982. } TIMER; /* Free Running Timer */
  2983. int32_t FLEXCAN_reserved00;
  2984. union {
  2985. vuint32_t R;
  2986. struct {
  2987. vuint32_t:3;
  2988. vuint32_t MI:29;
  2989. } B;
  2990. } RXGMASK; /* RX Global Mask */
  2991. union {
  2992. vuint32_t R;
  2993. struct {
  2994. vuint32_t:3;
  2995. vuint32_t MI:29;
  2996. } B;
  2997. } RX14MASK; /* RX 14 Mask */
  2998. union {
  2999. vuint32_t R;
  3000. struct {
  3001. vuint32_t:3;
  3002. vuint32_t MI:29;
  3003. } B;
  3004. } RX15MASK; /* RX 15 Mask */
  3005. union {
  3006. vuint32_t R;
  3007. struct {
  3008. vuint32_t:16;
  3009. vuint32_t RXECNT:8;
  3010. vuint32_t TXECNT:8;
  3011. } B;
  3012. } ECR; /* Error Counter Register */
  3013. union {
  3014. vuint32_t R;
  3015. struct {
  3016. vuint32_t:14;
  3017. vuint32_t TWRNINT:1; /* <URM>TWRN_INT</URM> */
  3018. vuint32_t RWRNINT:1; /* <URM>RWRN_INT</URM> */
  3019. vuint32_t BIT1ERR:1; /* <URM>BIT1_ERR</URM> */
  3020. vuint32_t BIT0ERR:1; /* <URM>BIT0_ERR</URM> */
  3021. vuint32_t ACKERR:1; /* <URM>ACK_ERR</URM> */
  3022. vuint32_t CRCERR:1; /* <URM>CRC_ERR</URM> */
  3023. vuint32_t FRMERR:1; /* <URM>FRM_ERR</URM> */
  3024. vuint32_t STFERR:1; /* <URM>STF_ERR</URM> */
  3025. vuint32_t TXWRN:1; /* <URM>TX_WRN</URM> */
  3026. vuint32_t RXWRN:1; /* <URM>RX_WRN</URM> */
  3027. vuint32_t IDLE:1;
  3028. vuint32_t TXRX:1;
  3029. vuint32_t FLTCONF:2; /* <URM>FLT_CONF</URM> */
  3030. vuint32_t:1;
  3031. vuint32_t BOFFINT:1; /* <URM>BOFF_INT</URM> */
  3032. vuint32_t ERRINT:1; /* <URM>ERR_INT</URM> */
  3033. vuint32_t WAK_INT:1; /* new in MPC563xM */
  3034. } B;
  3035. } ESR; /* Error and Status Register */
  3036. union {
  3037. vuint32_t R;
  3038. struct {
  3039. vuint32_t BUF63M:1;
  3040. vuint32_t BUF62M:1;
  3041. vuint32_t BUF61M:1;
  3042. vuint32_t BUF60M:1;
  3043. vuint32_t BUF59M:1;
  3044. vuint32_t BUF58M:1;
  3045. vuint32_t BUF57M:1;
  3046. vuint32_t BUF56M:1;
  3047. vuint32_t BUF55M:1;
  3048. vuint32_t BUF54M:1;
  3049. vuint32_t BUF53M:1;
  3050. vuint32_t BUF52M:1;
  3051. vuint32_t BUF51M:1;
  3052. vuint32_t BUF50M:1;
  3053. vuint32_t BUF49M:1;
  3054. vuint32_t BUF48M:1;
  3055. vuint32_t BUF47M:1;
  3056. vuint32_t BUF46M:1;
  3057. vuint32_t BUF45M:1;
  3058. vuint32_t BUF44M:1;
  3059. vuint32_t BUF43M:1;
  3060. vuint32_t BUF42M:1;
  3061. vuint32_t BUF41M:1;
  3062. vuint32_t BUF40M:1;
  3063. vuint32_t BUF39M:1;
  3064. vuint32_t BUF38M:1;
  3065. vuint32_t BUF37M:1;
  3066. vuint32_t BUF36M:1;
  3067. vuint32_t BUF35M:1;
  3068. vuint32_t BUF34M:1;
  3069. vuint32_t BUF33M:1;
  3070. vuint32_t BUF32M:1;
  3071. } B; /* Interruput Masks Register */
  3072. } IMRH; /* <URM>IMASK2</URM> */
  3073. union {
  3074. vuint32_t R;
  3075. struct {
  3076. vuint32_t BUF31M:1;
  3077. vuint32_t BUF30M:1;
  3078. vuint32_t BUF29M:1;
  3079. vuint32_t BUF28M:1;
  3080. vuint32_t BUF27M:1;
  3081. vuint32_t BUF26M:1;
  3082. vuint32_t BUF25M:1;
  3083. vuint32_t BUF24M:1;
  3084. vuint32_t BUF23M:1;
  3085. vuint32_t BUF22M:1;
  3086. vuint32_t BUF21M:1;
  3087. vuint32_t BUF20M:1;
  3088. vuint32_t BUF19M:1;
  3089. vuint32_t BUF18M:1;
  3090. vuint32_t BUF17M:1;
  3091. vuint32_t BUF16M:1;
  3092. vuint32_t BUF15M:1;
  3093. vuint32_t BUF14M:1;
  3094. vuint32_t BUF13M:1;
  3095. vuint32_t BUF12M:1;
  3096. vuint32_t BUF11M:1;
  3097. vuint32_t BUF10M:1;
  3098. vuint32_t BUF09M:1;
  3099. vuint32_t BUF08M:1;
  3100. vuint32_t BUF07M:1;
  3101. vuint32_t BUF06M:1;
  3102. vuint32_t BUF05M:1;
  3103. vuint32_t BUF04M:1;
  3104. vuint32_t BUF03M:1;
  3105. vuint32_t BUF02M:1;
  3106. vuint32_t BUF01M:1;
  3107. vuint32_t BUF00M:1;
  3108. } B; /* Interruput Masks Register */
  3109. } IMRL; /* <URM>IMASK1</URM> */
  3110. union {
  3111. vuint32_t R;
  3112. struct {
  3113. vuint32_t BUF63I:1;
  3114. vuint32_t BUF62I:1;
  3115. vuint32_t BUF61I:1;
  3116. vuint32_t BUF60I:1;
  3117. vuint32_t BUF59I:1;
  3118. vuint32_t BUF58I:1;
  3119. vuint32_t BUF57I:1;
  3120. vuint32_t BUF56I:1;
  3121. vuint32_t BUF55I:1;
  3122. vuint32_t BUF54I:1;
  3123. vuint32_t BUF53I:1;
  3124. vuint32_t BUF52I:1;
  3125. vuint32_t BUF51I:1;
  3126. vuint32_t BUF50I:1;
  3127. vuint32_t BUF49I:1;
  3128. vuint32_t BUF48I:1;
  3129. vuint32_t BUF47I:1;
  3130. vuint32_t BUF46I:1;
  3131. vuint32_t BUF45I:1;
  3132. vuint32_t BUF44I:1;
  3133. vuint32_t BUF43I:1;
  3134. vuint32_t BUF42I:1;
  3135. vuint32_t BUF41I:1;
  3136. vuint32_t BUF40I:1;
  3137. vuint32_t BUF39I:1;
  3138. vuint32_t BUF38I:1;
  3139. vuint32_t BUF37I:1;
  3140. vuint32_t BUF36I:1;
  3141. vuint32_t BUF35I:1;
  3142. vuint32_t BUF34I:1;
  3143. vuint32_t BUF33I:1;
  3144. vuint32_t BUF32I:1;
  3145. } B; /* Interruput Flag Register */
  3146. } IFRH; /* <URM>IFLAG2</URM> */
  3147. union {
  3148. vuint32_t R;
  3149. struct {
  3150. vuint32_t BUF31I:1;
  3151. vuint32_t BUF30I:1;
  3152. vuint32_t BUF29I:1;
  3153. vuint32_t BUF28I:1;
  3154. vuint32_t BUF27I:1;
  3155. vuint32_t BUF26I:1;
  3156. vuint32_t BUF25I:1;
  3157. vuint32_t BUF24I:1;
  3158. vuint32_t BUF23I:1;
  3159. vuint32_t BUF22I:1;
  3160. vuint32_t BUF21I:1;
  3161. vuint32_t BUF20I:1;
  3162. vuint32_t BUF19I:1;
  3163. vuint32_t BUF18I:1;
  3164. vuint32_t BUF17I:1;
  3165. vuint32_t BUF16I:1;
  3166. vuint32_t BUF15I:1;
  3167. vuint32_t BUF14I:1;
  3168. vuint32_t BUF13I:1;
  3169. vuint32_t BUF12I:1;
  3170. vuint32_t BUF11I:1;
  3171. vuint32_t BUF10I:1;
  3172. vuint32_t BUF09I:1;
  3173. vuint32_t BUF08I:1;
  3174. vuint32_t BUF07I:1;
  3175. vuint32_t BUF06I:1;
  3176. vuint32_t BUF05I:1;
  3177. vuint32_t BUF04I:1;
  3178. vuint32_t BUF03I:1;
  3179. vuint32_t BUF02I:1;
  3180. vuint32_t BUF01I:1;
  3181. vuint32_t BUF00I:1;
  3182. } B; /* Interruput Flag Register */
  3183. } IFRL; /* <URM>IFLAG1</URM> */
  3184. uint32_t flexcan2_reserved2[19];
  3185. /****************************************************************************/
  3186. /* Use either Standard Buffer Structure OR RX FIFO and Buffer Structure */
  3187. /****************************************************************************/
  3188. /* Standard Buffer Structure */
  3189. struct FLEXCAN_BUF_t BUF[64];
  3190. /* RX FIFO and Buffer Structure *//* New options in MPC563xM */
  3191. /*struct FLEXCAN_RXFIFO_t RXFIFO; */
  3192. /*struct FLEXCAN_BUF_t BUF[56]; */
  3193. /****************************************************************************/
  3194. uint32_t FLEXCAN_reserved3[256]; /* {0x0880-0x0480}/0x4 = 0x100 *//* (New in MPC563xM) Address Base + 0x0034 */
  3195. union {
  3196. vuint32_t R;
  3197. struct {
  3198. vuint32_t MI:32;
  3199. } B; /* RX Individual Mask Registers */
  3200. } RXIMR[64]; /* (New in MPC563xM) Address Base + 0x0880 */
  3201. }; /* end of FLEXCAN_tag */
  3202. /****************************************************************************/
  3203. /* MODULE : Decimation Filter (DECFIL) */
  3204. /****************************************************************************/
  3205. struct DECFIL_tag {
  3206. union {
  3207. vuint32_t R;
  3208. struct {
  3209. vuint32_t MDIS:1;
  3210. vuint32_t FREN:1;
  3211. vuint32_t:1;
  3212. vuint32_t FRZ:1;
  3213. vuint32_t SRES:1;
  3214. vuint32_t:2; /* CASCD not supported in MPC563xM */
  3215. vuint32_t IDEN:1;
  3216. vuint32_t ODEN:1;
  3217. vuint32_t ERREN:1;
  3218. vuint32_t:1;
  3219. vuint32_t FTYPE:2;
  3220. vuint32_t:1;
  3221. vuint32_t SCAL:2;
  3222. vuint32_t:1;
  3223. vuint32_t SAT:1;
  3224. vuint32_t ISEL:1;
  3225. vuint32_t:1; /* MIXM does not appear to be implemented on the MPC563xM */
  3226. vuint32_t DEC_RATE:4;
  3227. vuint32_t:1; /* SDIE not supported in MPC563xM */
  3228. vuint32_t DSEL:1;
  3229. vuint32_t IBIE:1;
  3230. vuint32_t OBIE:1;
  3231. vuint32_t EDME:1;
  3232. vuint32_t TORE:1;
  3233. vuint32_t TMODE:2; /* the LSB of TMODE is always 0 on the MPC563xM */
  3234. } B;
  3235. } MCR; /* Configuration Register <URM>DECFILTER_MCR</URM> @baseaddress + 0x00 */
  3236. union {
  3237. vuint32_t R;
  3238. struct {
  3239. vuint32_t BSY:1;
  3240. vuint32_t:1;
  3241. vuint32_t DEC_COUNTER:4;
  3242. vuint32_t IDFC:1;
  3243. vuint32_t ODFC:1;
  3244. vuint32_t SDFC:1; /* SDFC not supported in MPC563xM */
  3245. vuint32_t IBIC:1;
  3246. vuint32_t OBIC:1;
  3247. vuint32_t SVRC:1; /* SVRC not supported in MPC563xM */
  3248. vuint32_t DIVRC:1;
  3249. vuint32_t OVFC:1;
  3250. vuint32_t OVRC:1;
  3251. vuint32_t IVRC:1;
  3252. vuint32_t:6;
  3253. vuint32_t IDF:1;
  3254. vuint32_t ODF:1;
  3255. vuint32_t SDF:1; /* SDF not supported in MPC563xM */
  3256. vuint32_t IBIF:1;
  3257. vuint32_t OBIF:1;
  3258. vuint32_t SVR:1; /* SVR not supported in MPC563xM */
  3259. vuint32_t DIVR:1;
  3260. vuint32_t OVF:1;
  3261. vuint32_t OVR:1;
  3262. vuint32_t IVR:1;
  3263. } B;
  3264. } MSR; /* Status Register <URM>DECFILTER_MSR</URM> @baseaddress + 0x04 */
  3265. /* Module Extended Config.Register - not siupported on the MPC563xM <URM>DECFILTER_MXCR</URM> @baseaddress + 0x08 */
  3266. uint32_t decfil_reserved1[2];
  3267. union {
  3268. vuint32_t R;
  3269. struct {
  3270. vuint32_t:4;
  3271. vuint32_t INTAG:4;
  3272. vuint32_t:6;
  3273. vuint32_t PREFILL:1;
  3274. vuint32_t FLUSH:1;
  3275. vuint32_t INPBUF:16;
  3276. } B;
  3277. } IB; /* Interface Input Buffer <URM>DECFILTER_IB</URM> @baseaddress + 0x10 */
  3278. union {
  3279. vuint32_t R;
  3280. struct {
  3281. vuint32_t:12;
  3282. vuint32_t OUTTAG:4;
  3283. vuint32_t OUTBUF:16;
  3284. } B;
  3285. } OB; /* Interface Output Buffer <URM>DECFILTER_OB</URM> @baseaddress + 0x14 */
  3286. uint32_t decfil_reserved2[2];
  3287. union {
  3288. vuint32_t R;
  3289. struct {
  3290. vuint32_t:8;
  3291. vuint32_t COEF:24;
  3292. } B;
  3293. } COEF[9]; /* Filter Coefficient Registers <URM>DECFILTER_COEFx</URM> @baseaddress + 0x20 - 0x40 */
  3294. uint32_t decfil_reserved3[13];
  3295. union {
  3296. vuint32_t R;
  3297. struct {
  3298. vuint32_t:8;
  3299. vuint32_t TAP:24;
  3300. } B;
  3301. } TAP[8]; /* Filter TAP Registers <URM>DECFILTER_TAPx</URM> @baseaddress + 0x78 - 0x94 */
  3302. uint32_t decfil_reserved4[14];
  3303. /* 0x0D0 */
  3304. union {
  3305. vuint16_t R;
  3306. struct {
  3307. vuint32_t:16;
  3308. vuint32_t SAMP_DATA:16;
  3309. } B;
  3310. } EDID; /* Filter EDID Registers <URM>DECFILTER_EDID</URM> @baseaddress + 0xD0 */
  3311. uint32_t decfil_reserved5[3];
  3312. /* 0x0E0 */
  3313. uint32_t decfil_reserved6;
  3314. /* Filter FINTVAL Registers - Not supported on MPC563xM <URM>DECFILTER_FINTVAL</URM> @baseaddress + 0xE0 */
  3315. /* 0x0E4 */
  3316. uint32_t decfil_reserved7;
  3317. /* Filter FINTCNT Registers - Not supported on MPC563xM <URM>DECFILTER_FINTCNT</URM> @baseaddress + 0xE4 */
  3318. /* 0x0E8 */
  3319. uint32_t decfil_reserved8;
  3320. /* Filter CINTVAL Registers - Not supported on MPC563xM <URM>DECFILTER_CINTVAL</URM> @baseaddress + 0xE8 */
  3321. /* 0x0EC */
  3322. uint32_t decfil_reserved9;
  3323. /* Filter CINTCNT Registers - Not supported on MPC563xM <URM>DECFILTER_CINTCNT</URM> @baseaddress + 0xEC */
  3324. };
  3325. /****************************************************************************/
  3326. /* MODULE : Periodic Interval Timer (PIT) */
  3327. /****************************************************************************/
  3328. struct PIT_tag {
  3329. union {
  3330. vuint32_t R;
  3331. struct {
  3332. vuint32_t:29;
  3333. vuint32_t MDIS_RTI:1;
  3334. vuint32_t MDIS:1;
  3335. vuint32_t FRZ:1;
  3336. } B;
  3337. } PITMCR; /* PIT Module Control Register */
  3338. uint32_t pit_reserved1[59];
  3339. struct {
  3340. union {
  3341. vuint32_t R; /* <URM>TSVn</URM> */
  3342. } LDVAL; /* Timer Load Value Register */
  3343. union {
  3344. vuint32_t R; /* <URM>TVLn</URM> */
  3345. } CVAL; /* Current Timer Value Register */
  3346. union {
  3347. vuint32_t R;
  3348. struct {
  3349. vuint32_t:30;
  3350. vuint32_t TIE:1;
  3351. vuint32_t TEN:1;
  3352. } B;
  3353. } TCTRL; /* Timer Control Register */
  3354. union {
  3355. vuint32_t R;
  3356. struct {
  3357. vuint32_t:31;
  3358. vuint32_t TIF:1;
  3359. } B;
  3360. } TFLG; /* Timer Flag Register */
  3361. } RTI; /* RTI Channel */
  3362. struct {
  3363. union {
  3364. vuint32_t R;
  3365. } LDVAL; /* Timer Load Value Register */
  3366. union {
  3367. vuint32_t R;
  3368. } CVAL; /* Current Timer Value Register */
  3369. union {
  3370. vuint32_t R;
  3371. struct {
  3372. vuint32_t:30;
  3373. vuint32_t TIE:1;
  3374. vuint32_t TEN:1;
  3375. } B;
  3376. } TCTRL; /* Timer Control Register */
  3377. union {
  3378. vuint32_t R;
  3379. struct {
  3380. vuint32_t:31;
  3381. vuint32_t TIF:1;
  3382. } B;
  3383. } TFLG; /* Timer Flag Register */
  3384. } TIMER[4]; /* Timer Channels */
  3385. };
  3386. /****************************************************************************/
  3387. /* MODULE : System Timer Module (STM) */
  3388. /****************************************************************************/
  3389. struct STM_tag {
  3390. union {
  3391. vuint32_t R;
  3392. struct {
  3393. vuint32_t:16;
  3394. vuint32_t CPS:8;
  3395. vuint32_t:6;
  3396. vuint32_t FRZ:1;
  3397. vuint32_t TEN:1;
  3398. } B;
  3399. } CR; /* STM Control Register <URM>STM_CR</URM> (new in MPC563xM) Offset 0x0000 */
  3400. union {
  3401. vuint32_t R;
  3402. } CNT; /* STM Count Register <URM>STM_CNT</URM> (new in MPC563xM) Offset Offset 0x0004 */
  3403. uint32_t stm_reserved1[2]; /* Reserved (new in MPC563xM) Offset Offset 0x0008 */
  3404. union {
  3405. vuint32_t R;
  3406. struct {
  3407. vuint32_t:31;
  3408. vuint32_t CEN:1;
  3409. } B;
  3410. } CCR0; /* STM Channel Control Register <URM>STM_CCR0</URM> (new in MPC563xM) Offset 0x0010 */
  3411. union {
  3412. vuint32_t R;
  3413. struct {
  3414. vuint32_t:31;
  3415. vuint32_t CIF:1;
  3416. } B;
  3417. } CIR0; /* STM Channel Interrupt Register <URM>STM_CIR0</URM> (new in MPC563xM) Offset 0x0014 */
  3418. union {
  3419. vuint32_t R;
  3420. } CMP0; /* STM Channel Compare Register <URM>STM_CMP0</URM> (new in MPC563xM) Offset Offset 0x0018 */
  3421. uint32_t stm_reserved2; /* Reserved (new in MPC563xM) Offset Offset 0x001C */
  3422. union {
  3423. vuint32_t R;
  3424. struct {
  3425. vuint32_t:31;
  3426. vuint32_t CEN:1;
  3427. } B;
  3428. } CCR1; /* STM Channel Control Register <URM>STM_CCR1</URM> (new in MPC563xM) Offset 0x0020 */
  3429. union {
  3430. vuint32_t R;
  3431. struct {
  3432. vuint32_t:31;
  3433. vuint32_t CIF:1;
  3434. } B;
  3435. } CIR1; /* STM Channel Interrupt Register <URM>STM_CIR1</URM> (new in MPC563xM) Offset 0x0024 */
  3436. union {
  3437. vuint32_t R;
  3438. } CMP1; /* STM Channel Compare Register <URM>STM_CMP1</URM> (new in MPC563xM) Offset Offset 0x0028 */
  3439. uint32_t stm_reserved3; /* Reserved (new in MPC563xM) Offset Offset 0x002C */
  3440. union {
  3441. vuint32_t R;
  3442. struct {
  3443. vuint32_t:31;
  3444. vuint32_t CEN:1;
  3445. } B;
  3446. } CCR2; /* STM Channel Control Register <URM>STM_CCR2</URM> (new in MPC563xM) Offset 0x0030 */
  3447. union {
  3448. vuint32_t R;
  3449. struct {
  3450. vuint32_t:31;
  3451. vuint32_t CIF:1;
  3452. } B;
  3453. } CIR2; /* STM Channel Interrupt Register <URM>STM_CIR2</URM> (new in MPC563xM) Offset 0x0034 */
  3454. union {
  3455. vuint32_t R;
  3456. } CMP2; /* STM Channel Compare Register <URM>STM_CMP2</URM> (new in MPC563xM) Offset Offset 0x0038 */
  3457. uint32_t stm_reserved4; /* Reserved (new in MPC563xM) Offset Offset 0x003C */
  3458. union {
  3459. vuint32_t R;
  3460. struct {
  3461. vuint32_t:31;
  3462. vuint32_t CEN:1;
  3463. } B;
  3464. } CCR3; /* STM Channel Control Register <URM>STM_CCR3</URM> (new in MPC563xM) Offset 0x0040 */
  3465. union {
  3466. vuint32_t R;
  3467. struct {
  3468. vuint32_t:31;
  3469. vuint32_t CIF:1;
  3470. } B;
  3471. } CIR3; /* STM Channel Interrupt Register <URM>STM_CIR3</URM> (new in MPC563xM) Offset 0x0044 */
  3472. union {
  3473. vuint32_t R;
  3474. } CMP3; /* STM Channel Compare Register <URM>STM_CMP3</URM> (new in MPC563xM) Offset Offset 0x0048 */
  3475. uint32_t stm_reserved5; /* Reserved (new in MPC563xM) Offset Offset 0x004C */
  3476. };
  3477. /****************************************************************************/
  3478. /* MODULE : SWT */
  3479. /****************************************************************************/
  3480. struct SWT_tag {
  3481. union {
  3482. vuint32_t R;
  3483. struct {
  3484. vuint32_t MAP0:1;
  3485. vuint32_t MAP1:1;
  3486. vuint32_t MAP2:1;
  3487. vuint32_t MAP3:1;
  3488. vuint32_t MAP4:1;
  3489. vuint32_t MAP5:1;
  3490. vuint32_t MAP6:1;
  3491. vuint32_t MAP7:1;
  3492. vuint32_t:14;
  3493. vuint32_t KEY:1;
  3494. vuint32_t RIA:1;
  3495. vuint32_t WND:1;
  3496. vuint32_t ITR:1;
  3497. vuint32_t HLK:1;
  3498. vuint32_t SLK:1;
  3499. vuint32_t CSL:1;
  3500. vuint32_t STP:1;
  3501. vuint32_t FRZ:1;
  3502. vuint32_t WEN:1;
  3503. } B;
  3504. } MCR; /*<URM>SWT_CR</URM> *//* Module Configuration Register */
  3505. union {
  3506. vuint32_t R;
  3507. struct {
  3508. vuint32_t:31;
  3509. vuint32_t TIF:1;
  3510. } B;
  3511. } IR; /* Interrupt register <URM>SWT_IR</URM> */
  3512. union {
  3513. vuint32_t R;
  3514. struct {
  3515. vuint32_t WTO:32;
  3516. } B;
  3517. } TO; /* Timeout register <URM>SWT_TO</URM> */
  3518. union {
  3519. vuint32_t R;
  3520. struct {
  3521. vuint32_t WST:32;
  3522. } B;
  3523. } WN; /* Window register <URM>SWT_WN</URM> */
  3524. union {
  3525. vuint32_t R;
  3526. struct {
  3527. vuint32_t:16;
  3528. vuint32_t WSC:16;
  3529. } B;
  3530. } SR; /* Service register <URM>SWT_SR</URM> */
  3531. union {
  3532. vuint32_t R;
  3533. struct {
  3534. vuint32_t CNT:32;
  3535. } B;
  3536. } CO; /* Counter output register <URM>SWT_CO</URM> */
  3537. union {
  3538. vuint32_t R;
  3539. struct {
  3540. vuint32_t:16;
  3541. vuint32_t SK:16;
  3542. } B;
  3543. } SK; /* Service key register <URM>SWT_SK</URM> */
  3544. };
  3545. /****************************************************************************/
  3546. /* MODULE : Power Management Controller (PMC) */
  3547. /****************************************************************************/
  3548. struct PMC_tag {
  3549. union {
  3550. vuint32_t R;
  3551. struct {
  3552. vuint32_t LVRER:1; /* <URM> LVIRR </URM> */
  3553. vuint32_t LVREH:1; /* <URM> LVIHR </URM> */
  3554. vuint32_t LVRE50:1; /* <URM> LVI5R </URM> */
  3555. vuint32_t LVRE33:1; /* <URM> LVI3R </URM> */
  3556. vuint32_t LVREC:1; /* <URM> LVI1R </URM> */
  3557. vuint32_t:3;
  3558. vuint32_t LVIER:1; /* <URM> LVIRE </URM> */
  3559. vuint32_t LVIEH:1; /* <URM> LVIHE </URM> */
  3560. vuint32_t LVIE50:1; /* <URM> LVI5E </URM> */
  3561. vuint32_t LVIE33:1; /* <URM> LVI3E </URM> */
  3562. vuint32_t LVIC:1; /* <URM> LVI1E </URM> */
  3563. vuint32_t:2;
  3564. vuint32_t TLK:1;
  3565. vuint32_t:16;
  3566. } B;
  3567. } MCR; /* Module Configuration register <URM> CFGR </URM> */
  3568. union {
  3569. vuint32_t R;
  3570. struct {
  3571. vuint32_t:12;
  3572. vuint32_t LVDREGTRIM:4; /* <URM> LVI50TRIM </URM> */
  3573. vuint32_t VDD33TRIM:4; /* <URM> BV33TRIM </URM> */
  3574. vuint32_t LVD33TRIM:4; /* <URM> LVI33TRIM </URM> */
  3575. vuint32_t VDDCTRIM:4; /* <URM> V12TRIM </URM> */
  3576. vuint32_t LVDCTRIM:4; /* <URM> LVI33TRIM </URM> */
  3577. } B;
  3578. } TRIMR; /* Trimming register */
  3579. union {
  3580. vuint32_t R;
  3581. struct {
  3582. vuint32_t:5;
  3583. vuint32_t LVFVSTBY:1;
  3584. vuint32_t BGRDY:1; /* <URM> BGS1 </URM> */
  3585. vuint32_t BGTS:1; /* <URM> BGS2 </URM> */
  3586. vuint32_t:5;
  3587. vuint32_t LVFCSTBY:1;
  3588. vuint32_t:1;
  3589. vuint32_t V33DIS:1; /* 3.3V Regulator Disable <URM> V33S </URM> */
  3590. vuint32_t LVFCR:1; /* Clear LVFR <URM> LVIRC </URM> */
  3591. vuint32_t LVFCH:1; /* Clear LVFH <URM> LVIHC </URM> */
  3592. vuint32_t LVFC50:1; /* Clear LVF5 <URM> LVI5 </URM> */
  3593. vuint32_t LVFC33:1; /* Clear LVF3 <URM> LVI3 </URM> */
  3594. vuint32_t LVFCC:1; /* Clear LVFC <URM> LVI1 </URM> */
  3595. vuint32_t:3;
  3596. vuint32_t LVFR:1; /* Low Voltage Flag Reset Supply <URM> LVIRF </URM> */
  3597. vuint32_t LVFH:1; /* Low Voltage Flag VDDEH Supply <URM> LVIHF </URM> */
  3598. vuint32_t LVF50:1; /* Low Voltage Flag 5V Supply <URM> LVI5F </URM> */
  3599. vuint32_t LVF33:1; /* Low Voltage Flag 3.3V Supply <URM> LVI3F </URM> */
  3600. vuint32_t LVFC:1; /* Low Voltage Flag Core (1.2V) <URM> LVI1F </URM> */
  3601. vuint32_t:3;
  3602. } B;
  3603. } SR; /* status register */
  3604. };
  3605. /****************************************************************************/
  3606. /* MODULE : TSENS (Temperature Sensor) */
  3607. /****************************************************************************/
  3608. struct TSENS_tag {
  3609. union {
  3610. vuint32_t R;
  3611. struct {
  3612. vuint32_t TSCV2:16;
  3613. vuint32_t TSCV1:16;
  3614. } B;
  3615. } TCCR0; /* Temperature Sensor Calibration B @baseaddress + 0x00 */
  3616. union {
  3617. vuint32_t R;
  3618. struct {
  3619. vuint32_t:16;
  3620. vuint32_t TSCV3:16;
  3621. } B;
  3622. } TCCR1; /* Temperature Sensor Calibration A @baseaddress + 0x04 */
  3623. uint32_t TSENS_reserved0008[16382]; /* 0x0008-0xFFFF */
  3624. };
  3625. /* Define memories */
  3626. /* Comments need to be moved for different memory sizes */
  3627. #define SRAM_START 0x40000000
  3628. /*#define SRAM_SIZE 0xC000 48K SRAM */
  3629. /*#define SRAM_SIZE 0x10000 64K SRAM */
  3630. #define SRAM_SIZE 0x17800 /* 94K SRAM */
  3631. /*#define SRAM_END 0x4000BFFF 48K SRAM */
  3632. /*#define SRAM_END 0x4000FFFF 64K SRAM */
  3633. #define SRAM_END 0x400177FF /* 94K SRAM */
  3634. #define FLASH_START 0x0
  3635. /*#define FLASH_SIZE 0x100000 1M Flash */
  3636. #define FLASH_SIZE 0x180000 /* 1.5M Flash */
  3637. /*#define FLASH_END 0xFFFFF 1M Flash */
  3638. #define FLASH_END 0x17FFFF /* 1.5M Flash */
  3639. /* Shadow Flash start and end address */
  3640. #define FLASH_SHADOW_START 0x00FFC000
  3641. #define FLASH_SHADOW_SIZE 0x4000
  3642. #define FLASH_SHADOW_END 0x00FFFFFF
  3643. /* Define instances of modules */
  3644. #define FMPLL (*( volatile struct FMPLL_tag *) 0xC3F80000)
  3645. #define EBI (*( volatile struct EBI_tag *) 0xC3F84000)
  3646. #define CFLASH0 (*( volatile struct FLASH_tag *) 0xC3F88000)
  3647. #define CFLASH1 (*( volatile struct FLASH_tag *) 0xC3FB0000)
  3648. #define CFLASH2 (*( volatile struct FLASH_tag *) 0xC3FB4000)
  3649. #define SIU (*( volatile struct SIU_tag *) 0xC3F90000)
  3650. #define EMIOS (*( volatile struct EMIOS_tag *) 0xC3FA0000)
  3651. #define PMC (*( volatile struct PMC_tag *) 0xC3FBC000)
  3652. #define ETPU (*( volatile struct ETPU_tag *) 0xC3FC0000)
  3653. #define ETPU_DATA_RAM (*( uint32_t *) 0xC3FC8000)
  3654. #define ETPU_DATA_RAM_EXT (*( uint32_t *) 0xC3FCC000)
  3655. #define ETPU_DATA_RAM_END 0xC3FC8BFC
  3656. #define CODE_RAM (*( uint32_t *) 0xC3FD0000)
  3657. #define ETPU_CODE_RAM (*( uint32_t *) 0xC3FD0000)
  3658. #define PIT (*( volatile struct PIT_tag *) 0xC3FF0000)
  3659. #define XBAR (*( volatile struct XBAR_tag *) 0xFFF04000)
  3660. #define SWT (*( volatile struct SWT_tag *) 0xFFF38000)
  3661. #define STM (*( volatile struct STM_tag *) 0xFFF3C000)
  3662. #define ECSM (*( volatile struct ECSM_tag *) 0xFFF40000)
  3663. #define EDMA (*( volatile struct EDMA_tag *) 0xFFF44000)
  3664. #define INTC (*( volatile struct INTC_tag *) 0xFFF48000)
  3665. #define EQADC (*( volatile struct EQADC_tag *) 0xFFF80000)
  3666. #define DECFIL (*( volatile struct DECFIL_tag *) 0xFFF88000)
  3667. #define DSPI_B (*( volatile struct DSPI_tag *) 0xFFF94000)
  3668. #define DSPI_C (*( volatile struct DSPI_tag *) 0xFFF98000)
  3669. #define ESCI_A (*( volatile struct ESCI_tag *) 0xFFFB0000)
  3670. #define ESCI_A_12_13 (*( volatile struct ESCI_12_13_bit_tag *) 0xFFFB0006)
  3671. #define ESCI_B (*( volatile struct ESCI_tag *) 0xFFFB4000)
  3672. #define ESCI_B_12_13 (*( volatile struct ESCI_12_13_bit_tag *) 0xFFFB4006)
  3673. #define CAN_A (*( volatile struct FLEXCAN2_tag *) 0xFFFC0000)
  3674. #define CAN_C (*( volatile struct FLEXCAN2_tag *) 0xFFFC8000)
  3675. #define TSENS (*( volatile struct TSENS_tag *) 0xFFFEC000)
  3676. #ifdef __MWERKS__
  3677. #pragma pop
  3678. #endif /*
  3679. */
  3680. #ifdef __cplusplus
  3681. }
  3682. #endif /*
  3683. */
  3684. #endif /* ifdef _MPC563M_H */
  3685. /*********************************************************************
  3686. *
  3687. * Copyright:
  3688. * Freescale Semiconductor, INC. All Rights Reserved.
  3689. * You are hereby granted a copyright license to use, modify, and
  3690. * distribute the SOFTWARE so long as this entire notice is
  3691. * retained without alteration in any modified and/or redistributed
  3692. * versions, and that such modified versions are clearly identified
  3693. * as such. No licenses are granted by implication, estoppel or
  3694. * otherwise under any patents or trademarks of Freescale
  3695. * Semiconductor, Inc. This software is provided on an "AS IS"
  3696. * basis and without warranty.
  3697. *
  3698. * To the maximum extent permitted by applicable law, Freescale
  3699. * Semiconductor DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,
  3700. * INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
  3701. * PARTICULAR PURPOSE AND ANY WARRANTY AGAINST INFRINGEMENT WITH
  3702. * REGARD TO THE SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF)
  3703. * AND ANY ACCOMPANYING WRITTEN MATERIALS.
  3704. *
  3705. * To the maximum extent permitted by applicable law, IN NO EVENT
  3706. * SHALL Freescale Semiconductor BE LIABLE FOR ANY DAMAGES WHATSOEVER
  3707. * (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,
  3708. * BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER
  3709. * PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE.
  3710. *
  3711. * Freescale Semiconductor assumes no responsibility for the
  3712. * maintenance and support of this software
  3713. *
  3714. ********************************************************************/