123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826 |
- /*******************************************************************************
- * (c) Copyright 2010-2013 Microsemi SoC Products Group. All rights reserved.
- *
- * Microsemi SmartFusion2 Cortex Microcontroller Software Interface - Peripheral
- * Access Layer.
- *
- * This file describes the interrupt assignment and peripheral registers for
- * the SmartFusion2 familly of devices.
- *
- * SVN $Revision: 6526 $
- * SVN $Date: 2014-06-05 16:07:40 +0100 (Thu, 05 Jun 2014) $
- */
- #ifndef __SMARTFUSION2_CMSIS_PAL_H__
- #define __SMARTFUSION2_CMSIS_PAL_H__
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * ==========================================================================
- * ---------- Interrupt Number Definition -----------------------------------
- * ==========================================================================
- */
- typedef enum IRQn
- {
- /****** Cortex-M3 Processor Exceptions Numbers *********************************************************/
- NonMaskableInt_IRQn = -14, /*!< 2 Non Maskable Interrupt - Watchdog timeout interrupt*/
- HardFault_IRQn = -13, /*!< 2 Hard Fault Interrupt */
- MemoryManagement_IRQn = -12, /*!< 4 Cortex-M3 Memory Management Interrupt */
- BusFault_IRQn = -11, /*!< 5 Cortex-M3 Bus Fault Interrupt */
- UsageFault_IRQn = -10, /*!< 6 Cortex-M3 Usage Fault Interrupt */
- SVCall_IRQn = -5, /*!< 11 Cortex-M3 SV Call Interrupt */
- DebugMonitor_IRQn = -4, /*!< 12 Cortex-M3 Debug Monitor Interrupt */
- PendSV_IRQn = -2, /*!< 14 Cortex-M3 Pend SV Interrupt */
- SysTick_IRQn = -1, /*!< 15 Cortex-M3 System Tick Interrupt */
- /****** SmartFusion2 specific Interrupt Numbers *********************************************************/
- WdogWakeup_IRQn = 0, /*!< WatchDog wakeup interrupt */
- RTC_Wakeup_IRQn = 1, /*!< RTC wakeup interrupt */
- SPI0_IRQn = 2, /*!< SPI0 interrupt */
- SPI1_IRQn = 3, /*!< SPI1 interrupt */
- I2C0_IRQn = 4, /*!< I2C0 interrupt */
- I2C0_SMBAlert_IRQn = 5, /*!< I2C0 SMBus Alert interrupt */
- I2C0_SMBus_IRQn = 6, /*!< I2C0 SMBus Suspend interrupt */
- I2C1_IRQn = 7, /*!< I2C1 interrupt */
- I2C1_SMBAlert_IRQn = 8, /*!< I2C1 SMBus Alert interrupt */
- I2C1_SMBus_IRQn = 9, /*!< I2C1 SMBus Suspend interrupt */
- UART0_IRQn = 10, /*!< UART0 interrupt */
- UART1_IRQn = 11, /*!< UART1 interrupt */
- EthernetMAC_IRQn = 12, /*!< Ethernet MAC interrupt */
- DMA_IRQn = 13, /*!< Peripheral DMA interrupt */
- Timer1_IRQn = 14, /*!< Timer1 interrupt */
- Timer2_IRQn = 15, /*!< Timer2 interrupt */
- CAN_IRQn = 16, /*!< CAN controller interrupt */
- ENVM0_IRQn = 17, /*!< eNVM0 operation completion interrupt */
- ENVM1_IRQn = 18, /*!< eNVM1 operation completion interrupt */
- ComBlk_IRQn = 19, /*!< COM block interrupt */
- USB_IRQn = 20, /*!< USB interrupt */
- USB_DMA_IRQn = 21, /*!< USB DMA interrupt */
- PLL_Lock_IRQn = 22, /*!< PLL lock interrupt */
- PLL_LockLost_IRQn = 23, /*!< PLL loss of lock interrupt */
- CommSwitchError_IR = 24, /*!< Communications Switch error interrupt */
- CacheError_IRQn = 25, /*!< Cache error interrupt */
- DDR_IRQn = 26, /*!< DDR controller interrupt */
- HPDMA_Complete_IRQn = 27, /*!< High speed DMA transfer complete interrupt */
- HPDMA_Error_IRQn = 28, /*!< High speed DMA transfer error interrupt */
- ECC_Error_IRQn = 29, /*!< ECC error detected */
- MDDR_IOCalib_IRQn = 30, /*!< MDDR Calibration finished interrupt */
- FAB_PLL_Lock_IRQn = 31, /*!< MSSDDR Fabric PLL lock interrupt */
- FAB_PLL_LockLost_IRQn = 32, /*!< MSSDDR Fabric PLL lock lost interrupt */
- FIC64_IRQn = 33, /*!< FIC64 interrupt */
- FabricIrq0_IRQn = 34, /*!< FPGA fabric interrupt 0 */
- FabricIrq1_IRQn = 35, /*!< FPGA fabric interrupt 1 */
- FabricIrq2_IRQn = 36, /*!< FPGA fabric interrupt 2 */
- FabricIrq3_IRQn = 37, /*!< FPGA fabric interrupt 3 */
- FabricIrq4_IRQn = 38, /*!< FPGA fabric interrupt 4 */
- FabricIrq5_IRQn = 39, /*!< FPGA fabric interrupt 5 */
- FabricIrq6_IRQn = 40, /*!< FPGA fabric interrupt 6 */
- FabricIrq7_IRQn = 41, /*!< FPGA fabric interrupt 7 */
- FabricIrq8_IRQn = 42, /*!< FPGA fabric interrupt 8 */
- FabricIrq9_IRQn = 43, /*!< FPGA fabric interrupt 9 */
- FabricIrq10_IRQn = 44, /*!< FPGA fabric interrupt 10 */
- FabricIrq11_IRQn = 45, /*!< FPGA fabric interrupt 11 */
- FabricIrq12_IRQn = 46, /*!< FPGA fabric interrupt 12 */
- FabricIrq13_IRQn = 47, /*!< FPGA fabric interrupt 13 */
- FabricIrq14_IRQn = 48, /*!< FPGA fabric interrupt 14 */
- FabricIrq15_IRQn = 49, /*!< FPGA fabric interrupt 15 */
- GPIO0_IRQn = 50, /*!< GPIO 0 interrupt */
- GPIO1_IRQn = 51, /*!< GPIO 1 interrupt */
- GPIO2_IRQn = 52, /*!< GPIO 2 interrupt */
- GPIO3_IRQn = 53, /*!< GPIO 3 interrupt */
- GPIO4_IRQn = 54, /*!< GPIO 4 interrupt */
- GPIO5_IRQn = 55, /*!< GPIO 5 interrupt */
- GPIO6_IRQn = 56, /*!< GPIO 6 interrupt */
- GPIO7_IRQn = 57, /*!< GPIO 7 interrupt */
- GPIO8_IRQn = 58, /*!< GPIO 8 interrupt */
- GPIO9_IRQn = 59, /*!< GPIO 9 interrupt */
- GPIO10_IRQn = 60, /*!< GPIO 10 interrupt */
- GPIO11_IRQn = 61, /*!< GPIO 11 interrupt */
- GPIO12_IRQn = 62, /*!< GPIO 12 interrupt */
- GPIO13_IRQn = 63, /*!< GPIO 13 interrupt */
- GPIO14_IRQn = 64, /*!< GPIO 14 interrupt */
- GPIO15_IRQn = 65, /*!< GPIO 15 interrupt */
- GPIO16_IRQn = 66, /*!< GPIO 16 interrupt */
- GPIO17_IRQn = 67, /*!< GPIO 17 interrupt */
- GPIO18_IRQn = 68, /*!< GPIO 18 interrupt */
- GPIO19_IRQn = 69, /*!< GPIO 19 interrupt */
- GPIO20_IRQn = 70, /*!< GPIO 20 interrupt */
- GPIO21_IRQn = 71, /*!< GPIO 21 interrupt */
- GPIO22_IRQn = 72, /*!< GPIO 22 interrupt */
- GPIO23_IRQn = 73, /*!< GPIO 23 interrupt */
- GPIO24_IRQn = 74, /*!< GPIO 24 interrupt */
- GPIO25_IRQn = 75, /*!< GPIO 25 interrupt */
- GPIO26_IRQn = 76, /*!< GPIO 26 interrupt */
- GPIO27_IRQn = 77, /*!< GPIO 27 interrupt */
- GPIO28_IRQn = 78, /*!< GPIO 28 interrupt */
- GPIO29_IRQn = 79, /*!< GPIO 29 interrupt */
- GPIO30_IRQn = 80, /*!< GPIO 30 interrupt */
- GPIO31_IRQn = 81 /*!< GPIO 31 interrupt */
- } IRQn_Type;
- /*
- * ==========================================================================
- * ----------- Processor and Core Peripheral Section ------------------------
- * ==========================================================================
- */
- #define __CM3_REV 0x0201 /*!< Core revision r2p1 */
- #define __MPU_PRESENT 1 /*!< MPU present or not */
- #define __NVIC_PRIO_BITS 4 /*!< Number of Bits used for Priority Levels */
- #define __Vendor_SysTickConfig 0 /*!< Set to 1 if different SysTick Config is used */
- #include <core_cm3.h> /* Cortex-M3 processor and core peripherals */
- /******************************************************************************/
- /* Device Specific Peripheral registers structures */
- /******************************************************************************/
- #if defined ( __CC_ARM )
- /* Enable anonymous unions when building using Keil-MDK */
- #pragma anon_unions
- #endif
- /*----------------------------------------------------------------------------*/
- /*----------------------------------- UART -----------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- union
- {
- __I uint8_t RBR;
- __O uint8_t THR;
- __IO uint8_t DLR;
- uint32_t RESERVED0;
- };
- union
- {
- __IO uint8_t DMR;
- __IO uint8_t IER;
- uint32_t RESERVED1;
- };
- union
- {
- __IO uint8_t IIR;
- __IO uint8_t FCR;
- uint32_t RESERVED2;
- };
- __IO uint8_t LCR;
- uint8_t RESERVED3[3];
- __IO uint8_t MCR;
- uint8_t RESERVED4[3];
- __I uint8_t LSR;
- uint8_t RESERVED5[3];
- __I uint8_t MSR;
- uint8_t RESERVED6[3];
- __IO uint8_t SR;
- uint8_t RESERVED7[7];
- __IO uint8_t IEM;
- uint8_t RESERVED8[3];
- __IO uint8_t IIM;
- uint8_t RESERVED9[7];
- __IO uint8_t MM0;
- uint8_t RESERVED10[3];
- __IO uint8_t MM1;
- uint8_t RESERVED11[3];
- __IO uint8_t MM2;
- uint8_t RESERVED12[3];
- __IO uint8_t DFR;
- uint8_t RESERVED13[7];
- __IO uint8_t GFR;
- uint8_t RESERVED14[3];
- __IO uint8_t TTG;
- uint8_t RESERVED15[3];
- __IO uint8_t RTO;
- uint8_t RESERVED16[3];
- __IO uint8_t ADR;
- uint8_t RESERVED17[3];
- } UART_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*----------------------------------- I2C ------------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __IO uint8_t CTRL;
- uint8_t RESERVED0;
- uint16_t RESERVED1;
- uint8_t STATUS;
- uint8_t RESERVED2;
- uint16_t RESERVED3;
- __IO uint8_t DATA;
- uint8_t RESERVED4;
- uint16_t RESERVED5;
- __IO uint8_t ADDR;
- uint8_t RESERVED6;
- uint16_t RESERVED7;
- __IO uint8_t SMBUS;
- uint8_t RESERVED8;
- uint16_t RESERVED9;
- __IO uint8_t FREQ;
- uint8_t RESERVED10;
- uint16_t RESERVED11;
- __IO uint8_t GLITCHREG;
- uint8_t RESERVED12;
- uint16_t RESERVED13;
- __IO uint8_t SLAVE1_ADDR;
- uint8_t RESERVED14;
- uint16_t RESERVED15;
- } I2C_TypeDef;
- /*------------------------------------------------------------------------------
- * I2C bit band
- */
- typedef struct
- {
- __IO uint32_t CTRL_CR0;
- __IO uint32_t CTRL_CR1;
- __IO uint32_t CTRL_AA;
- __IO uint32_t CTRL_SI;
- __IO uint32_t CTRL_STO;
- __IO uint32_t CTRL_STA;
- __IO uint32_t CTRL_ENS1;
- __IO uint32_t CTRL_CR2;
- uint32_t RESERVED0[56];
- __IO uint32_t DATA_DIR;
- uint32_t RESERVED1[31];
- __IO uint32_t ADDR_GC;
- } I2C_BitBand_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*----------------------------------- SPI ------------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __IO uint32_t CONTROL;
- __IO uint32_t TXRXDF_SIZE;
- __I uint32_t STATUS;
- __O uint32_t INT_CLEAR;
- __I uint32_t RX_DATA;
- __O uint32_t TX_DATA;
- __IO uint32_t CLK_GEN;
- __IO uint32_t SLAVE_SELECT;
- __I uint32_t MIS;
- __I uint32_t RIS;
- __IO uint32_t CONTROL2;
- __IO uint32_t COMMAND;
- __IO uint32_t PKTSIZE;
- __IO uint32_t CMDSIZE;
- __IO uint32_t HWSTATUS;
- __IO uint32_t STAT8;
- __IO uint32_t CTRL0;
- __IO uint32_t CTRL1;
- __IO uint32_t CTRL2;
- __IO uint32_t CTRL3;
- } SPI_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*----------------------------------- GPIO -----------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __IO uint32_t GPIO_0_CFG;
- __IO uint32_t GPIO_1_CFG;
- __IO uint32_t GPIO_2_CFG;
- __IO uint32_t GPIO_3_CFG;
- __IO uint32_t GPIO_4_CFG;
- __IO uint32_t GPIO_5_CFG;
- __IO uint32_t GPIO_6_CFG;
- __IO uint32_t GPIO_7_CFG;
- __IO uint32_t GPIO_8_CFG;
- __IO uint32_t GPIO_9_CFG;
- __IO uint32_t GPIO_10_CFG;
- __IO uint32_t GPIO_11_CFG;
- __IO uint32_t GPIO_12_CFG;
- __IO uint32_t GPIO_13_CFG;
- __IO uint32_t GPIO_14_CFG;
- __IO uint32_t GPIO_15_CFG;
- __IO uint32_t GPIO_16_CFG;
- __IO uint32_t GPIO_17_CFG;
- __IO uint32_t GPIO_18_CFG;
- __IO uint32_t GPIO_19_CFG;
- __IO uint32_t GPIO_20_CFG;
- __IO uint32_t GPIO_21_CFG;
- __IO uint32_t GPIO_22_CFG;
- __IO uint32_t GPIO_23_CFG;
- __IO uint32_t GPIO_24_CFG;
- __IO uint32_t GPIO_25_CFG;
- __IO uint32_t GPIO_26_CFG;
- __IO uint32_t GPIO_27_CFG;
- __IO uint32_t GPIO_28_CFG;
- __IO uint32_t GPIO_29_CFG;
- __IO uint32_t GPIO_30_CFG;
- __IO uint32_t GPIO_31_CFG;
- __IO uint32_t GPIO_IRQ;
- __I uint32_t GPIO_IN;
- __IO uint32_t GPIO_OUT;
- } GPIO_TypeDef;
- /*------------------------------------------------------------------------------
- * GPIO bit band
- */
- typedef struct
- {
- __IO uint32_t GPIO_0_CFG[32];
- __IO uint32_t GPIO_1_CFG[32];
- __IO uint32_t GPIO_2_CFG[32];
- __IO uint32_t GPIO_3_CFG[32];
- __IO uint32_t GPIO_4_CFG[32];
- __IO uint32_t GPIO_5_CFG[32];
- __IO uint32_t GPIO_6_CFG[32];
- __IO uint32_t GPIO_7_CFG[32];
- __IO uint32_t GPIO_8_CFG[32];
- __IO uint32_t GPIO_9_CFG[32];
- __IO uint32_t GPIO_10_CFG[32];
- __IO uint32_t GPIO_11_CFG[32];
- __IO uint32_t GPIO_12_CFG[32];
- __IO uint32_t GPIO_13_CFG[32];
- __IO uint32_t GPIO_14_CFG[32];
- __IO uint32_t GPIO_15_CFG[32];
- __IO uint32_t GPIO_16_CFG[32];
- __IO uint32_t GPIO_17_CFG[32];
- __IO uint32_t GPIO_18_CFG[32];
- __IO uint32_t GPIO_19_CFG[32];
- __IO uint32_t GPIO_20_CFG[32];
- __IO uint32_t GPIO_21_CFG[32];
- __IO uint32_t GPIO_22_CFG[32];
- __IO uint32_t GPIO_23_CFG[32];
- __IO uint32_t GPIO_24_CFG[32];
- __IO uint32_t GPIO_25_CFG[32];
- __IO uint32_t GPIO_26_CFG[32];
- __IO uint32_t GPIO_27_CFG[32];
- __IO uint32_t GPIO_28_CFG[32];
- __IO uint32_t GPIO_29_CFG[32];
- __IO uint32_t GPIO_30_CFG[32];
- __IO uint32_t GPIO_31_CFG[32];
- __IO uint32_t GPIO_IRQ[32];
- __I uint32_t GPIO_IN[32];
- __IO uint32_t GPIO_OUT[32];
- } GPIO_BitBand_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*--------------------------------- HPDMA ------------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __IO uint32_t HPDMASAR_REG ;
- __IO uint32_t HPDMADAR_REG ;
- __IO uint32_t HPDMACR_REG ;
- __I uint32_t HPDMASR_REG ;
- __I uint32_t HPDMAPTR_REG ;
- }HPDMA_Descriptor_TypeDef;
- typedef struct
- {
- __I uint32_t HPDMAEDR_REG ;
- HPDMA_Descriptor_TypeDef Descriptor[4] ;
- __O uint32_t HPDMAICR_REG ;
- __I uint32_t HPDMADR_REG ;
- } HPDMA_TypeDef;
- typedef struct
- {
- uint32_t RESERVED0[64];
- __IO uint32_t HPDMACR_XFR_SIZE[16] ;
- __IO uint32_t HPDMACR_DCP_VALID ;
- __IO uint32_t HPDMACR_DCP_XFR_DIR ;
- __IO uint32_t HPDMACR_DCP_CLR ;
- __IO uint32_t HPDMACR_DCP_PAUSE ;
- __IO uint32_t HPDMACR_XFR_CMP_INT ;
- __IO uint32_t HPDMACR_XFR_ERR_INT ;
- __IO uint32_t HPDMACR_NON_WORD_INT ;
- uint32_t RESERVED1[9];
- __I uint32_t HPDMASR_DCP_ACTIVE ;
- __I uint32_t HPDMASR_DCP_CMPLET ;
- __I uint32_t HPDMASR_DCP_SERR ;
- __I uint32_t HPDMASR_DCP_DERR ;
- uint32_t RESERVED2[60] ;
- }HPDMA_Descriptor_BitBand_TypeDef;
- /*------------------------------------------------------------------------------
- * HPDMA bit band
- */
- typedef struct
- {
- __I uint32_t HPDMAEDR_DCP_EMPTY[4] ;
- __I uint32_t HPDMAEDR_DCP_CMPLET[4] ;
- __I uint32_t HPDMAEDR_DCP_ERR[4] ;
- __I uint32_t HPDMAEDR_DCP_NON_WORD_ERR[4] ;
- uint32_t RESERVED0[16] ;
- HPDMA_Descriptor_BitBand_TypeDef Descriptor[4];
- __O uint32_t HPDMAICR_CLR_XFR_INT[4] ;
- __O uint32_t HPDMAICR_NON_WORD_INT[4] ;
- uint32_t RESERVED1[16] ;
- __I uint32_t HPDMADR_BFR_EMPTY ;
- __I uint32_t HPDMADR_BFR_FULL ;
- __I uint32_t HPDMADR_BFR_RD_PNTR[3] ;
- __I uint32_t HPDMADR_BFR_WR_PNTR [3] ;
- __I uint32_t HPDMADR_AHM1_CST_DBG[4] ;
- __I uint32_t HPDMADR_AHM2_CST_DBG[4] ;
- __I uint32_t HPDMADR_WBC_CST_DBG[3] ;
- __I uint32_t HPDMADR_RBC_CST_DBG[3] ;
- __I uint32_t HPDMADR_RRBN_CST_DBG[4] ;
- __I uint32_t HPDMADR_DMA_CST_DBG[4] ;
- uint32_t RESERVED2[4] ;
- }HPDMA_BitBand_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*----------------------------------- RTC ------------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __IO uint32_t CONTROL_REG ;
- __IO uint32_t MODE_REG ;
- __IO uint32_t PRESCALER_REG ;
- __IO uint32_t ALARM_LOWER_REG ;
- __IO uint32_t ALARM_UPPER_REG ;
- __IO uint32_t COMPARE_LOWER_REG ;
- __IO uint32_t COMPARE_UPPER_REG ;
- uint32_t RESERVED0 ;
- __IO uint32_t DATE_TIME_LOWER_REG ;
- __IO uint32_t DATE_TIME_UPPER_REG ;
- uint32_t RESERVED1[2] ;
- __IO uint32_t SECONDS_REG ;
- __IO uint32_t MINUTES_REG ;
- __IO uint32_t HOURS_REG ;
- __IO uint32_t DAY_REG ;
- __IO uint32_t MONTH_REG ;
- __IO uint32_t YEAR_REG ;
- __IO uint32_t WEEKDAY_REG ;
- __IO uint32_t WEEK_REG ;
- __IO uint32_t SECONDS_CNT_REG ;
- __IO uint32_t MINUTES_CNT_REG ;
- __IO uint32_t HOURS_CNT_REG ;
- __IO uint32_t DAY_CNT_REG ;
- __IO uint32_t MONTH_CNT_REG ;
- __IO uint32_t YEAR_CNT_REG ;
- __IO uint32_t WEEKDAY_CNT_REG ;
- __IO uint32_t WEEK_CNT_REG ;
- } RTC_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*---------------------------------- Timer -----------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __I uint32_t TIM1_VAL;
- __IO uint32_t TIM1_LOADVAL;
- __IO uint32_t TIM1_BGLOADVAL;
- __IO uint32_t TIM1_CTRL;
- __IO uint32_t TIM1_RIS;
- __I uint32_t TIM1_MIS;
- __I uint32_t TIM2_VAL;
- __IO uint32_t TIM2_LOADVAL;
- __IO uint32_t TIM2_BGLOADVAL;
- __IO uint32_t TIM2_CTRL;
- __IO uint32_t TIM2_RIS;
- __I uint32_t TIM2_MIS;
- __I uint32_t TIM64_VAL_U;
- __I uint32_t TIM64_VAL_L;
- __IO uint32_t TIM64_LOADVAL_U;
- __IO uint32_t TIM64_LOADVAL_L;
- __IO uint32_t TIM64_BGLOADVAL_U;
- __IO uint32_t TIM64_BGLOADVAL_L;
- __IO uint32_t TIM64_CTRL;
- __IO uint32_t TIM64_RIS;
- __I uint32_t TIM64_MIS;
- __IO uint32_t TIM64_MODE;
- } TIMER_TypeDef;
- /*------------------------------------------------------------------------------
- * Timer bit band
- */
- typedef struct
- {
- __I uint32_t TIM1_VALUE_BIT[32];
- __IO uint32_t TIM1_LOADVAL[32];
- __IO uint32_t TIM1_BGLOADVAL[32];
- __IO uint32_t TIM1ENABLE;
- __IO uint32_t TIM1MODE;
- __IO uint32_t TIM1INTEN;
- __IO uint32_t TIM1_CTRL_RESERVED[29];
- __IO uint32_t TIM1_RIS[32];
- __I uint32_t TIM1_MIS[32];
- __I uint32_t TIM2_VALUE[32];
- __IO uint32_t TIM2_LOADVAL[32];
- __IO uint32_t TIM2_BGLOADVAL[32];
- __IO uint32_t TIM2ENABLE;
- __IO uint32_t TIM2MODE;
- __IO uint32_t TIM2INTEN;
- __IO uint32_t TIM2_CTRL[29];
- __IO uint32_t TIM2_RIS[32];
- __I uint32_t TIM2_MIS[32];
- __I uint32_t TIM64VALUEU[32];
- __I uint32_t TIM64VALUEL[32];
- __IO uint32_t TIM64LOADVALUEU[32];
- __IO uint32_t TIM64LOADVALUEL[32];
- __IO uint32_t TIM64BGLOADVALUEU[32];
- __IO uint32_t TIM64BGLOADVALUEL[32];
- __IO uint32_t TIM64ENABLE;
- __IO uint32_t TIM64MODE;
- __IO uint32_t TIM64INTEN;
- __IO uint32_t TIM64_CTRL[29];
- __IO uint32_t TIM64_RIS[32];
- __I uint32_t TIM64_MIS[32];
- __IO uint32_t TIM64_MODE[32];
- } TIMER_BitBand_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*--------------------------------- Watchdog ---------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __I uint32_t WDOGVALUE;
- __I uint32_t WDOGLOAD;
- __I uint32_t WDOGMVRP;
- __O uint32_t WDOGREFRESH;
- __I uint32_t WDOGENABLE;
- __IO uint32_t WDOGCONTROL;
- __I uint32_t WDOGSTATUS;
- __IO uint32_t WDOGRIS;
- __I uint32_t WDOGMIS;
- } WATCHDOG_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*----------------------------- Real Time Clock ------------------------------*/
- /*----------------------------------------------------------------------------*/
- /*----------------------------------------------------------------------------*/
- /*----------------------------- Peripherals DMA ------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __IO uint32_t CRTL;
- __IO uint32_t STATUS;
- __IO uint32_t BUFFER_A_SRC_ADDR;
- __IO uint32_t BUFFER_A_DEST_ADDR;
- __IO uint32_t BUFFER_A_TRANSFER_COUNT;
- __IO uint32_t BUFFER_B_SRC_ADDR;
- __IO uint32_t BUFFER_B_DEST_ADDR;
- __IO uint32_t BUFFER_B_TRANSFER_COUNT;
- } PDMA_Channel_TypeDef;
- typedef struct
- {
- __IO uint32_t RATIO_HIGH_LOW;
- __IO uint32_t BUFFER_STATUS;
- uint32_t RESERVED[6];
- PDMA_Channel_TypeDef CHANNEL[8];
- } PDMA_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*------------------------------ Ethernet MAC --------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- /*
- * MAC registers (MCXMAC)
- */
- __IO uint32_t CFG1;
- __IO uint32_t CFG2;
- __IO uint32_t IFG;
- __IO uint32_t HALF_DUPLEX;
- __IO uint32_t MAX_FRAME_LENGTH;
- uint32_t RESERVED0[2];
- __IO uint32_t TEST;
- __IO uint32_t MII_CONFIG;
- __IO uint32_t MII_COMMAND;
- __IO uint32_t MII_ADDRESS;
- __O uint32_t MII_CTRL;
- __I uint32_t MII_STATUS;
- __I uint32_t MII_INDICATORS;
- __IO uint32_t INTERFACE_CTRL;
- __I uint32_t INTERFACE_STATUS;
- __IO uint32_t STATION_ADDRESS1;
- __IO uint32_t STATION_ADDRESS2;
- /*
- * FIFO Configuration / Access registers (MCXFIF)
- */
- __IO uint32_t FIFO_CFG0;
- __IO uint32_t FIFO_CFG1;
- __IO uint32_t FIFO_CFG2;
- __IO uint32_t FIFO_CFG3;
- __IO uint32_t FIFO_CFG4;
- __IO uint32_t FIFO_CFG5;
- __IO uint32_t FIFO_RAM_ACCESS0;
- __IO uint32_t FIFO_RAM_ACCESS1;
- __IO uint32_t FIFO_RAM_ACCESS2;
- __I uint32_t FIFO_RAM_ACCESS3;
- __IO uint32_t FIFO_RAM_ACCESS4;
- __IO uint32_t FIFO_RAM_ACCESS5;
- __IO uint32_t FIFO_RAM_ACCESS6;
- __I uint32_t FIFO_RAM_ACCESS7;
- /*
- * Statistics registers (MSTAT)
- */
- __IO uint32_t TR64;
- __IO uint32_t TR127;
- __IO uint32_t TR255;
- __IO uint32_t TR511;
- __IO uint32_t TR1K;
- __IO uint32_t TRMAX;
- __IO uint32_t TRMGV;
- __IO uint32_t RBYT;
- __IO uint32_t PPKT;
- __IO uint32_t RFCS;
- __IO uint32_t RMCA;
- __IO uint32_t RBCA;
- __IO uint32_t RXCF;
- __IO uint32_t RXPF;
- __IO uint32_t RXUO;
- __IO uint32_t RALN;
- __IO uint32_t RFLR;
- __IO uint32_t RCDE;
- __IO uint32_t RCSE;
- __IO uint32_t RUND;
- __IO uint32_t ROVR;
- __IO uint32_t RFRG;
- __IO uint32_t RJBR;
- __IO uint32_t RDRP;
- __IO uint32_t TBYT;
- __IO uint32_t TPKT;
- __IO uint32_t TMCA;
- __IO uint32_t TBCA;
- __IO uint32_t TXPF;
- __IO uint32_t TDFR;
- __IO uint32_t TEDF;
- __IO uint32_t TSCL;
- __IO uint32_t TMCL;
- __IO uint32_t TLCL;
- __IO uint32_t TXCL;
- __IO uint32_t TNCL;
- __IO uint32_t TPFH;
- __IO uint32_t TDRP;
- __IO uint32_t TJBR;
- __IO uint32_t TFCS;
- __IO uint32_t TXCF;
- __IO uint32_t TOVR;
- __IO uint32_t TUND;
- __IO uint32_t TFRG;
- __I uint32_t CAR1;
- __I uint32_t CAR2;
- __IO uint32_t CAM1;
- __IO uint32_t CAM2;
- uint32_t RESERVED1[16];
- /*
- * DMA registers (MAHBE)
- */
- __IO uint32_t DMA_TX_CTRL;
- __IO uint32_t DMA_TX_DESC;
- __IO uint32_t DMA_TX_STATUS;
- __IO uint32_t DMA_RX_CTRL;
- __IO uint32_t DMA_RX_DESC;
- __IO uint32_t DMA_RX_STATUS;
- __IO uint32_t DMA_IRQ_MASK;
- __I uint32_t DMA_IRQ;
- } MAC_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*------------------------------ USB --------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __IO uint16_t TX_MAX_P;
- __IO uint16_t TX_CSR;
- __IO uint16_t RX_MAX_P;
- __IO uint16_t RX_CSR;
- __IO uint16_t RX_COUNT;
- __IO uint8_t TX_TYPE;
- __IO uint8_t TX_INTERVAL;
- __IO uint8_t RX_TYPE;
- __IO uint8_t RX_INTERVAL;
- __IO uint8_t RESERVED;
- __IO uint8_t FIFO_SIZE;
- } USB_endpoint_regs_t;
- typedef struct
- {
- __IO uint8_t TX_FUNC_ADDR;
- __IO uint8_t UNUSED0;
- __IO uint8_t TX_HUB_ADDR;
- __IO uint8_t TX_HUB_PORT;
- __IO uint8_t RX_FUNC_ADDR;
- __IO uint8_t UNUSED1;
- __IO uint8_t RX_HUB_ADDR;
- __IO uint8_t RX_HUB_PORT;
- } USB_tar_t;
- typedef union
- {
- struct
- {
- __IO uint32_t VALUE;
- } WORD;
- struct
- {
- __IO uint8_t VALUE;
- __IO uint8_t RESERVED1;
- __IO uint8_t RESERVED2;
- __IO uint8_t RESERVED3;
- } BYTE;
- struct
- {
- __IO uint16_t VALUE;
- __IO uint16_t RESERVED;
- } HALFWORD;
- } USB_fifo_t;
- typedef union
- {
- struct
- {
- __IO uint16_t TX_MAX_P;
- __IO uint16_t CSR0;
- __IO uint16_t RX_MAX_P;
- __IO uint16_t RX_CSR;
- __IO uint16_t COUNT0;
- __IO uint8_t RESERVED0;
- __IO uint8_t RESERVED1;
- __IO uint8_t RESERVED2;
- __IO uint8_t RESERVED3;
- __IO uint8_t RESERVED4;
- __IO uint8_t CONFIG_DATA;
- } DEVICE_EP0;
- struct
- {
- __IO uint16_t TX_MAX_P;
- __IO uint16_t TX_CSR;
- __IO uint16_t RX_MAX_P;
- __IO uint16_t RX_CSR;
- __IO uint16_t RX_COUNT;
- __IO uint8_t RESERVED0;
- __IO uint8_t RESERVED1;
- __IO uint8_t RESERVED2;
- __IO uint8_t RESERVED3;
- __IO uint8_t RESERVED4;
- __IO uint8_t FIFO_SIZE;
- } DEVICE_EPN;
- struct
- {
- __IO uint16_t TX_MAX_P;
- __IO uint16_t CSR0;
- __IO uint16_t RX_MAX_P;
- __IO uint16_t RX_CSR;
- __IO uint16_t COUNT0;
- __IO uint8_t TYPE0;
- __IO uint8_t NAK_LIMIT0;
- __IO uint8_t RX_TYPE;
- __IO uint8_t RX_INTERVAL;
- __IO uint8_t RESERVED0;
- __IO uint8_t CONFIG_DATA;
- } HOST_EP0;
- struct
- {
- __IO uint16_t TX_MAX_P;
- __IO uint16_t TX_CSR;
- __IO uint16_t RX_MAX_P;
- __IO uint16_t RX_CSR;
- __IO uint16_t RX_COUNT;
- __IO uint8_t TX_TYPE;
- __IO uint8_t TX_INTERVAL;
- __IO uint8_t RX_TYPE;
- __IO uint8_t RX_INTERVAL;
- __IO uint8_t RESERVED0;
- __IO uint8_t FIFO_SIZE;
- } HOST_EPN;
- } USB_indexed_csr_t;
- typedef struct {
- __IO uint32_t IRQ;
- __IO uint32_t CNTL;
- __IO uint32_t ADDR;
- __IO uint32_t COUNT;
- } USB_DMA_channel;
- typedef struct
- {
- /*
- * Common USB Registers
- */
- __IO uint8_t FADDR;
- __IO uint8_t POWER;
- __IO uint16_t TX_IRQ;
- __IO uint16_t RX_IRQ;
- __IO uint16_t TX_IRQ_ENABLE;
- __IO uint16_t RX_IRQ_ENABLE;
- __IO uint8_t USB_IRQ;
- __IO uint8_t USB_ENABLE;
- __IO uint16_t FRAME;
- __IO uint8_t INDEX;
- __IO uint8_t TEST_MODE;
- /*
- * Indexed CSR
- */
- USB_indexed_csr_t INDEXED_CSR;
- /*
- * Endpoint FIFOs
- */
- USB_fifo_t FIFO[16];
- /*
- * OTG, dynamic FIFO and version
- */
- __IO uint8_t DEV_CTRL;
- __IO uint8_t MISC;
- __IO uint8_t TX_FIFO_SIZE;
- __IO uint8_t RX_FIFO_SIZE;
- __IO uint16_t TX_FIFO_ADDR;
- __IO uint16_t RX_FIFO_ADDR;
- __IO uint32_t VBUS_CSR;
- __IO uint16_t HW_VERSION;
- __IO uint16_t RESERVED;
- /*
- * ULPI and configuration registers
- */
- __IO uint8_t ULPI_VBUS_CTRL;
- __IO uint8_t ULPI_CARKIT_CTRL;
- __IO uint8_t ULPI_IRQ_MASK;
- __IO uint8_t ULPI_IRQ_SRC;
- __IO uint8_t ULPI_DATA_REG;
- __IO uint8_t ULPI_ADDR_REG;
- __IO uint8_t ULPI_CTRL_REG;
- __IO uint8_t ULPI_RAW_DATA;
- __IO uint8_t EP_INFO;
- __IO uint8_t RAM_INFO;
- __IO uint8_t LINK_INFO;
- __IO uint8_t VP_LEN;
- __IO uint8_t HS_EOF1;
- __IO uint8_t FS_EOF1;
- __IO uint8_t LS_EOF1;
- __IO uint8_t SOFT_RST;
- /*
- * Target Address registers
- */
- USB_tar_t TAR[16];
- /*
- * Endpoints CSR
- */
- USB_endpoint_regs_t ENDPOINT[16];
- /*
- * DMA
- */
- USB_DMA_channel DMA_CHANNEL[8];
-
- __IO uint32_t RESERVED_EXT[32];
- __IO uint32_t RQ_PKT_CNT[16];
- __IO uint16_t RX_DPBUF_DIS;
- __IO uint16_t TX_DPBUF_DIS;
- __IO uint16_t C_T_UCH;
- __IO uint16_t C_T_HHSRTN;
- __IO uint16_t C_T_HSBT;
- } MSS_USB_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*---------------------- eNVM Special Function Registers ---------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __I uint8_t AB[128];
- __IO uint8_t WD[128];
- __I uint8_t RESERVED0[32];
- __I uint32_t STATUS;
- __IO uint32_t RESERVED1;
- __IO uint32_t NV_PAGE_STATUS;
- __I uint32_t NV_FREQRNG;
- __I uint32_t NV_DPD;
- __IO uint32_t NV_CE;
- uint32_t RESERVED2;
- __IO uint32_t RESERVED3;
- __IO uint32_t PAGE_LOCK;
- __IO uint32_t DWSIZE;
- __IO uint32_t CMD;
- __IO uint32_t RESERVED4;
- __I uint32_t RESERVED5;
- __IO uint32_t INTEN;
- __IO uint32_t CLRHINT;
- uint32_t RESERVED6[40];
- __IO uint32_t REQ_ACCESS;
- } NVM_TypeDef;
- typedef struct
- {
- __I uint32_t AB[32];
- __IO uint32_t WD[32];
- __I uint32_t RESERVED0[8];
- __I uint32_t STATUS;
- __IO uint32_t RESERVED1;
- __IO uint32_t NV_PAGE_STATUS;
- __I uint32_t NV_FREQRNG;
- __I uint32_t NV_DPD;
- __IO uint32_t NV_CE;
- uint32_t RESERVED2;
- __IO uint32_t RESERVED3;
- __IO uint32_t PAGE_LOCK;
- __IO uint32_t DWSIZE;
- __IO uint32_t CMD;
- __IO uint32_t RESERVED4;
- __I uint32_t RESERVED5;
- __IO uint32_t INTEN;
- __IO uint32_t CLRHINT;
- uint32_t RESERVED6[40];
- __IO uint32_t REQ_ACCESS;
- } NVM32_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*---------------------------------- COMBLK ----------------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __IO uint32_t CONTROL;
- __IO uint32_t STATUS;
- __IO uint32_t INT_ENABLE;
- __IO uint32_t RESERVED;
- __IO uint32_t DATA8;
- __IO uint32_t DATA32;
- __IO uint32_t FRAME_START8;
- __IO uint32_t FRAME_START32;
- } COMBLK_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*--------------------- FPGA Fabric Interrupt Controller ---------------------*/
- /*----------------------------------------------------------------------------*/
- /*
- * Please refer to the SmartFusion2 Interrupt Controller User's Guide for a
- * description of the following registers.
- * The registers defined below can be accessed using INTERRUPT_CTRL as follows:
- * uint32_t reason0;
- * INTERRUPT_CTRL->INTERRUPT_MODE = 0;
- * reason0 = INTERRUPT_CTRL->INTERRUPT_REASON0;
- */
- typedef struct
- {
- __IO uint32_t INTERRUPT_ENABLE0;
- __IO uint32_t INTERRUPT_ENABLE1;
- __IO uint32_t INTERRUPT_REASON0;
- __IO uint32_t INTERRUPT_REASON1;
- __IO uint32_t INTERRUPT_MODE;
- } INTERRUPT_CTRL_TypeDef;
- /*
- * Please refer to the SmartFusion2 Interrupt Controller User's Guide for a
- * description of the following register bits.
- * The register bits defined below can be accessed using INTERRUPT_CTRL_BITBAND
- * as follows:
- * setting/clearing a bit:
- * INTERRUPT_CTRL_BITBAND->MAC_INT_ENBL = 1;
- * INTERRUPT_CTRL_BITBAND->PDMAINTERRUPT_ENBL = 0;
- * reading a bit value:
- * uint32_t timer1_interrupt;
- * timer1_interrupt = INTERRUPT_CTRL_BITBAND->TIMER1_INTR_STATUS;
- */
- typedef struct
- {
- /*
- * INTERRUPT_ENABLE0 register bitband definitions.
- */
- __IO uint32_t SPIINT0_ENBL;
- __IO uint32_t SPIINT1_ENBL;
- __IO uint32_t I2C_INT0_ENBL;
- __IO uint32_t I2C_INT1_ENBL;
- __IO uint32_t MMUART0_INTR_ENBL;
- __IO uint32_t MMUART1_INTR_ENBL;
- __IO uint32_t MAC_INT_ENBL;
- __IO uint32_t USB_MC_INT_ENBL;
- __IO uint32_t PDMAINTERRUPT_ENBL;
- __IO uint32_t HPD_XFR_CMP_INT_ENBL;
- __IO uint32_t TIMER1_INTR_ENBL;
- __IO uint32_t TIMER2_INTR_ENBL;
- __IO uint32_t CAN_INTR_ENBL;
- __IO uint32_t RTC_WAKEUP_INTR_ENBL;
- __IO uint32_t WDOGWAKEUPINT_ENBL;
- __IO uint32_t MSSDDR_PLL_LOCKLOST_INT_ENBL;
- __IO uint32_t ENVM_INT0_ENBL;
- __IO uint32_t ENVM_INT1_ENBL;
- __IO uint32_t I2C_SMBALERT0_ENBL;
- __IO uint32_t I2C_SMBSUS0_ENBL;
- __IO uint32_t I2C_SMBALERT1_ENBL;
- __IO uint32_t I2C_SMBSUS1_ENBL;
- __IO uint32_t HPD_XFR_ERR_INT_ENBL;
- __IO uint32_t MSSDDR_PLL_LOCK_INT_ENBL;
- __IO uint32_t SW_ERRORINTERRUPT_ENBL;
- __IO uint32_t DDRB_INTR_ENBL;
- __IO uint32_t ECCINTR_ENBL;
- __IO uint32_t CACHE_ERRINTR_ENBL;
- __IO uint32_t SOFTINTERRUPT_ENBL;
- __IO uint32_t COMBLK_INTR_ENBL;
- __IO uint32_t USB_DMA_INT_ENBL;
- __IO uint32_t RESERVED0;
-
- /*
- * INTERRUPT_ENABLE1 register bitband definitions.
- */
- __IO uint32_t RESERVED1[3];
- __IO uint32_t MDDR_IO_CALIB_INT_ENBL;
- __IO uint32_t RESERVED2;
- __IO uint32_t FAB_PLL_LOCK_INT_ENBL;
- __IO uint32_t FAB_PLL_LOCKLOST_INT_ENBL;
- __IO uint32_t FIC64_INT_ENBL;
- __IO uint32_t RESERVED3[24];
-
- /*
- * INTERRUPT_REASON0 register bitband definitions.
- */
- __IO uint32_t SPIINT0_STATUS;
- __IO uint32_t SPIINT1_STATUS;
- __IO uint32_t I2C_INT0_STATUS;
- __IO uint32_t I2C_INT1_STATUS;
- __IO uint32_t MMUART0_INTR_STATUS;
- __IO uint32_t MMUART1_INTR_STATUS;
- __IO uint32_t MAC_INT_STATUS;
- __IO uint32_t USB_MC_INT_STATUS;
- __IO uint32_t PDMAINTERRUPT_STATUS;
- __IO uint32_t HPD_XFR_CMP_INT_STATUS;
- __IO uint32_t TIMER1_INTR_STATUS;
- __IO uint32_t TIMER2_INTR_STATUS;
- __IO uint32_t CAN_INTR_STATUS;
- __IO uint32_t RTC_WAKEUP_INTR_STATUS;
- __IO uint32_t WDOGWAKEUPINT_STATUS;
- __IO uint32_t MSSDDR_PLL_LOCKLOST_INT_STATUS;
- __IO uint32_t ENVM_INT0_STATUS;
- __IO uint32_t ENVM_INT1_STATUS;
- __IO uint32_t I2C_SMBALERT0_STATUS;
- __IO uint32_t I2C_SMBSUS0_STATUS;
- __IO uint32_t I2C_SMBALERT1_STATUS;
- __IO uint32_t I2C_SMBSUS1_STATUS;
- __IO uint32_t HPD_XFR_ERR_INT_STATUS;
- __IO uint32_t MSSDDR_PLL_LOCK_INT_STATUS;
- __IO uint32_t SW_ERRORINTERRUPT_STATUS;
- __IO uint32_t DDRB_INTR_STATUS;
- __IO uint32_t ECCINTR_STATUS;
- __IO uint32_t CACHE_ERRINTR_STATUS;
- __IO uint32_t SOFTINTERRUPT_STATUS;
- __IO uint32_t COMBLK_INTR_STATUS;
- __IO uint32_t USB_DMA_INT_STATUS;
- __IO uint32_t RESERVED4;
-
- /*
- * INTERRUPT_REASON1 register bitband definitions.
- */
- __IO uint32_t RESERVED5[3];
- __IO uint32_t MDDR_IO_CALIB_INT_STATUS;
- __IO uint32_t RESERVED6;
- __IO uint32_t FAB_PLL_LOCK_INT_STATUS;
- __IO uint32_t FAB_PLL_LOCKLOST_INT_STATUS;
- __IO uint32_t FIC64_INT_STATUS;
- __IO uint32_t RESERVED7[24];
-
- /*
- * INTERRUPT_MODE register bitband definitions.
- */
- __IO uint32_t SELECT_MODE;
- __IO uint32_t RESERVED8[31];
-
- } INTERRUPT_CTRL_BitBand_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*------------------------ DDR Controller APB Registers ----------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- /*--------------------------------------------------------------------------
- * DDR Controller registers.
- * All registers are 16-bit wide unless mentioned beside the definition.
- */
- struct
- {
- __IO uint32_t DYN_SOFT_RESET_CR;
- __IO uint32_t RESERVED0;
- __IO uint32_t DYN_REFRESH_1_CR;
- __IO uint32_t DYN_REFRESH_2_CR;
- __IO uint32_t DYN_POWERDOWN_CR;
- __IO uint32_t DYN_DEBUG_CR;
- __IO uint32_t MODE_CR;
- __IO uint32_t ADDR_MAP_BANK_CR;
- __IO uint32_t ECC_DATA_MASK_CR;
- __IO uint32_t ADDR_MAP_COL_1_CR;
- __IO uint32_t ADDR_MAP_COL_2_CR;
- __IO uint32_t ADDR_MAP_ROW_1_CR;
- __IO uint32_t ADDR_MAP_ROW_2_CR;
- __IO uint32_t INIT_1_CR;
- __IO uint32_t CKE_RSTN_CYCLES_CR[2]; /* 0:27 bits are valid */
- __IO uint32_t INIT_MR_CR;
- __IO uint32_t INIT_EMR_CR;
- __IO uint32_t INIT_EMR2_CR;
- __IO uint32_t INIT_EMR3_CR;
- __IO uint32_t DRAM_BANK_TIMING_PARAM_CR;
- __IO uint32_t DRAM_RD_WR_LATENCY_CR;
- __IO uint32_t DRAM_RD_WR_PRE_CR;
- __IO uint32_t DRAM_MR_TIMING_PARAM_CR;
- __IO uint32_t DRAM_RAS_TIMING_CR;
- __IO uint32_t DRAM_RD_WR_TRNARND_TIME_CR;
- __IO uint32_t DRAM_T_PD_CR;
- __IO uint32_t DRAM_BANK_ACT_TIMING_CR;
- __IO uint32_t ODT_PARAM_1_CR;
- __IO uint32_t ODT_PARAM_2_CR;
- __IO uint32_t ADDR_MAP_COL_3_CR;
- __IO uint32_t MODE_REG_RD_WR_CR;
- __IO uint32_t MODE_REG_DATA_CR;
- __IO uint32_t PWR_SAVE_1_CR;
- __IO uint32_t PWR_SAVE_2_CR;
- __IO uint32_t ZQ_LONG_TIME_CR;
- __IO uint32_t ZQ_SHORT_TIME_CR;
- __IO uint32_t ZQ_SHORT_INT_REFRESH_MARGIN_CR[2];
- __IO uint32_t PERF_PARAM_1_CR;
- __IO uint32_t HPR_QUEUE_PARAM_CR[2];
- __IO uint32_t LPR_QUEUE_PARAM_CR[2];
- __IO uint32_t WR_QUEUE_PARAM_CR;
- __IO uint32_t PERF_PARAM_2_CR;
- __IO uint32_t PERF_PARAM_3_CR;
- __IO uint32_t DFI_RDDATA_EN_CR;
- __IO uint32_t DFI_MIN_CTRLUPD_TIMING_CR;
- __IO uint32_t DFI_MAX_CTRLUPD_TIMING_CR;
- __IO uint32_t DFI_WR_LVL_CONTROL_CR[2];
- __IO uint32_t DFI_RD_LVL_CONTROL_CR[2];
- __IO uint32_t DFI_CTRLUPD_TIME_INTERVAL_CR;
- __IO uint32_t DYN_SOFT_RESET_CR2;
- __IO uint32_t AXI_FABRIC_PRI_ID_CR;
- __I uint32_t DDRC_SR;
- __I uint32_t SINGLE_ERR_CNT_SR;
- __I uint32_t DOUBLE_ERR_CNT_SR;
- __I uint32_t LUE_SYNDROME_SR[5]; /* LUE : Last Uncorrected Error */
- __I uint32_t LUE_ADDRESS_SR[2];
- __I uint32_t LCE_SYNDROME_SR[5]; /* LCE : Last Corrected Error */
- __I uint32_t LCE_ADDRESS_SR[2];
- __I uint32_t LCB_NUMBER_SR; /* LCB : Last Corrected Bit */
- __I uint32_t LCB_MASK_SR[4];
- __I uint32_t ECC_INT_SR;
- __O uint32_t ECC_INT_CLR_REG;
- __I uint32_t ECC_OUTPUT_DATA_SR;
- __IO uint32_t RESERVED1[46];
- } ddrc;
-
- /*--------------------------------------------------------------------------
- * DDR PHY configuration registers
- */
- struct
- {
- __IO uint32_t DYN_BIST_TEST_CR;
- __IO uint32_t DYN_BIST_TEST_ERRCLR_CR[3];
- __IO uint32_t BIST_TEST_SHIFT_PATTERN_CR[3];
- __IO uint32_t LOOPBACK_TEST_CR;
- __IO uint32_t BOARD_LOOPBACK_CR;
- __IO uint32_t CTRL_SLAVE_RATIO_CR;
- __IO uint32_t CTRL_SLAVE_FORCE_CR;
- __IO uint32_t CTRL_SLAVE_DELAY_CR;
- __IO uint32_t DATA_SLICE_IN_USE_CR;
- __IO uint32_t LVL_NUM_OF_DQ0_CR;
- __IO uint32_t DQ_OFFSET_CR[3];
- __IO uint32_t DIS_CALIB_RST_CR;
- __IO uint32_t DLL_LOCK_DIFF_CR;
- __IO uint32_t FIFO_WE_IN_DELAY_CR[3];
- __IO uint32_t FIFO_WE_IN_FORCE_CR;
- __IO uint32_t FIFO_WE_SLAVE_RATIO_CR[4];
- __IO uint32_t GATELVL_INIT_MODE_CR;
- __IO uint32_t GATELVL_INIT_RATIO_CR[4];
- __IO uint32_t LOCAL_ODT_CR;
- __IO uint32_t INVERT_CLKOUT_CR;
- __IO uint32_t RD_DQS_SLAVE_DELAY_CR[3];
- __IO uint32_t RD_DQS_SLAVE_FORCE_CR;
- __IO uint32_t RD_DQS_SLAVE_RATIO_CR[4];
- __IO uint32_t WR_DQS_SLAVE_DELAY_CR[3];
- __IO uint32_t WR_DQS_SLAVE_FORCE_CR;
- __IO uint32_t WR_DQS_SLAVE_RATIO_CR[4];
- __IO uint32_t WR_DATA_SLAVE_DELAY_CR[3];
- __IO uint32_t WR_DATA_SLAVE_FORCE_CR;
- __IO uint32_t WR_DATA_SLAVE_RATIO_CR[4];
- __IO uint32_t WRLVL_INIT_MODE_CR;
- __IO uint32_t WRLVL_INIT_RATIO_CR[4];
- __IO uint32_t WR_RD_RL_CR;
- __IO uint32_t RDC_FIFO_RST_ERRCNTCLR_CR;
- __IO uint32_t RDC_WE_TO_RE_DELAY_CR;
- __IO uint32_t USE_FIXED_RE_CR;
- __IO uint32_t USE_RANK0_DELAYS_CR;
- __IO uint32_t USE_LVL_TRNG_LEVEL_CR;
- __IO uint32_t CONFIG_CR;
- __IO uint32_t RD_WR_GATE_LVL_CR;
- __IO uint32_t DYN_RESET_CR;
- /*----------------------------------------------------------------------
- * DDR PHY status registers
- */
- __I uint32_t LEVELLING_FAILURE_SR;
- __I uint32_t BIST_ERROR_SR[3];
- __I uint32_t WRLVL_DQS_RATIO_SR[4];
- __I uint32_t WRLVL_DQ_RATIO_SR[4];
- __I uint32_t RDLVL_DQS_RATIO_SR[4];
- __I uint32_t FIFO_SR[4];
- __I uint32_t MASTER_DLL_SR;
- __I uint32_t DLL_SLAVE_VALUE_SR[2];
- __I uint32_t STATUS_OF_IN_DELAY_VAL_SR[2];
- __I uint32_t STATUS_OF_OUT_DELAY_VAL_SR[2];
- __I uint32_t DLL_LOCK_AND_SLAVE_VAL_SR;
- __I uint32_t CTRL_OUTPUT_FILTER_SR;
- __I uint32_t CTRL_OF_OUTPUT_DELAY_SR;
- __I uint32_t RD_DQS_SLAVE_DLL_VAL_SR[3];
- __I uint32_t WR_DATA_SLAVE_DLL_VAL_SR[3];
- __I uint32_t FIFO_WE_SLAVE_DLL_VAL_SR[3];
- __I uint32_t WR_DQS_SLAVE_DLL_VAL_SR[3];
- __I uint32_t CTRL_SLAVE_DLL_VAL_SR;
- __IO uint32_t RESERVED2[13];
- } phy;
-
- /*--------------------------------------------------------------------------
- * FIC-64 registers
- * These registers are 16-bit wide and 32-bit aligned.
- */
- struct
- {
- __IO uint32_t NB_ADDR_CR;
- __IO uint32_t NBRWB_SIZE_CR;
- __IO uint32_t WB_TIMEOUT_CR;
- __IO uint32_t HPD_SW_RW_EN_CR;
- __IO uint32_t HPD_SW_RW_INVAL_CR;
- __IO uint32_t SW_WR_ERCLR_CR;
- __IO uint32_t ERR_INT_ENABLE_CR;
- __IO uint32_t NUM_AHB_MASTERS_CR;
- __I uint32_t HPB_ERR_ADDR_SR[2];
- __I uint32_t SW_ERR_ADDR_SR[2];
- __I uint32_t HPD_SW_WRB_EMPTY_SR;
- __I uint32_t SW_HPB_LOCKOUT_SR;
- __I uint32_t SW_HPD_WERR_SR;
- uint32_t RESERVED0;
- __IO uint32_t LOCK_TIMEOUTVAL_CR[2];
- __IO uint32_t LOCK_TIMEOUT_EN_CR;
- uint32_t RESERVED1[5];
- __IO uint32_t RDWR_ERR_SR;
- } fic;
- } DDRCore_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*--------------------- MDDR APB Configuration Registers ---------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- /*--------------------------------------------------------------------------
- * MDDR core configuration registers.
- * These registers are to be accessed as:
- * MDDR->core.fic.<regname> = <value>;
- * MDDR->core.phy.<regname> = <value>;
- * MDDR->core.ddrc.<regname> = <value>;
- */
- DDRCore_TypeDef core;
-
- } MDDR_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*--------------------- FDDR APB Configuration Registers ---------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- /*--------------------------------------------------------------------------
- * FDDR core configuration registers. These are same as corresponding
- * MDDR registers.
- * These registers are to be accessed as:
- * FDDR->core.fic.<regname> = <value>;
- * FDDR->core.phy.<regname> = <value>;
- * FDDR->core.ddrc.<regname> = <value>;
- */
- DDRCore_TypeDef core;
- __IO uint32_t RESERVED[39];
-
- /*--------------------------------------------------------------------------
- * FDDR system registers
- * These registers are to be accessed as:
- * FDDR->sysreg.PLL_CONFIG_LOW_2 = 0x04u;
- */
- struct
- {
- __IO uint32_t PLL_CONFIG_LOW_1;
- __IO uint32_t PLL_CONFIG_LOW_2;
- __IO uint32_t PLL_CONFIG_HIGH;
- __IO uint32_t FACC_CLK_EN;
- __IO uint32_t FACC_MUX_CONFIG;
- __IO uint32_t FACC_DIVISOR_RATIO;
- __IO uint32_t PLL_DELAY_LINE_SEL;
- __IO uint32_t SOFT_RESET;
- __IO uint32_t IO_CALIB;
- __IO uint32_t INTERRUPT_ENABLE;
- __IO uint32_t AXI_AHB_MODE_SEL;
- __IO uint32_t PHY_SELF_REF_EN;
- __IO uint32_t FAB_PLL_CLK_SR;
- __IO uint32_t FPLL_CLK_SR;
- __IO uint32_t CLK_CALIB_STATUS;
- __IO uint32_t INTERRUPT_SR;
- __IO uint32_t CLK_CALIB_CONFIG;
- __IO uint32_t IO_CALIB_SR;
- __IO uint32_t FATC_RESET;
- } sysreg;
- } FDDR_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*------------------------------ SERDES Interface ----------------------------*/
- /*----------------------------------------------------------------------------*/
- /*------------------------------------------------------------------------------
- AXI window
- */
- typedef struct
- {
- __IO uint32_t base;
- __IO uint32_t size;
- __IO uint32_t window_lsb;
- __IO uint32_t window_msb;
- } axi_window_TypeDef;
- /*------------------------------------------------------------------------------
- PCI Express Bridge Core registers.
-
- This data structure is used to access to the registers of the PCI Express
- Bridge Core.
- */
- typedef struct
- {
- /*======================= Information registers ======================*/
- /**
- Information register: vendor_id & device_id
- bits [15:0] vendor_id
- bits [31:16] device_id
- */
- /* 0x000 */
- __IO uint32_t VID_DEVID;
- /**
- PCI Express Control & Status Register: cfg_prmscr
- */
- /* 0x004 */
- __IO uint32_t CFG_PRMSCR;
-
- /**
- Information register: class_code
- */
- /* 0x008 */
- __IO uint32_t CLASS_CODE;
-
- __IO uint32_t RESERVED0;
-
- /**
- Bridge Configuration Register: bar0
- */
- /* 0x010 */
- __IO uint32_t BAR0;
-
- /**
- Bridge Configuration Register: bar1
- */
- /* 0x014 */
- __IO uint32_t BAR1;
-
- /**
- Bridge Configuration Register: bar2
- */
- /* 0x018 */
- __IO uint32_t BAR2;
-
- /**
- Bridge Configuration Register: bar3
- */
- /* 0x01C */
- __IO uint32_t BAR3;
-
- /**
- Bridge Configuration Register: bar4
- */
- /* 0x020 */
- __IO uint32_t BAR4;
-
- /**
- Bridge Configuration Register: bar5
- */
- /* 0x024 */
- __IO uint32_t BAR5;
-
- __IO uint32_t RESERVED1;
-
- /**
- Information register: subsystem_id
- */
- /* 0x02C */
- __IO uint32_t SUBSYSTEM_ID;
-
- /**
- PCI Express Control & Status Register: pcie_devscr
- */
- /* 0x030 */
- __IO uint32_t PCIE_DEVSCR;
-
- /**
- PCI Express Control & Status Register: pcie_linkscr
- */
- /* 0x034 */
- __IO uint32_t PCIE_LINKSCR;
-
- /**
- Bridge Configuration Register: tc_vc_mapping
- */
- /* 0x038 */
- __IO uint32_t TC_VC_MAPPING;
-
- /**
- Information register: captured_bus_device_nb
- */
- /* 0x03C */
- __IO uint32_t CAPTURED_BUS_DEVICE_NB;
-
- /**
- Endpoint Interrupt register: msi_ctrl_status
- */
- /* 0x040 */
- __IO uint32_t MSI_CTRL_STATUS;
-
- /**
- Power Management register: ltssm
- */
- /* 0x044 */
- __IO uint32_t LTSSM;
-
- /**
- Power Management register: power_mgt_capability
- */
- /* 0x048 */
- __IO uint32_t POWER_MGT_CAPABILITY;
-
- /**
- PCI Express Control & Status Register: cfg_pmscr
- */
- /* 0x04C */
- __IO uint32_t CFG_PMSCR;
-
- /**
- Bridge Configuration Register: aer_ecrc_capability
- */
- /* 0x050 */
- __IO uint32_t AER_ECRC_CAPABILITY;
-
- /**
- Bridge Configuration Register: vc1_capability
- */
- /* 0x054 */
- __IO uint32_t VC1_CAPABILITY;
-
- /**
- Bridge Configuration Register: max_payload_size
- */
- /* 0x058 */
- __IO uint32_t MAX_PAYLOAD_SIZE;
-
- /**
- Bridge Configuration Register: clkreq
- */
- /* 0x05C */
- __IO uint32_t CLKREQ;
-
- /**
- Power Management register: aspm_l0s_capability
- */
- /* 0x060 */
- __IO uint32_t ASPM_L0S_CAPABILITY;
-
- /**
- Power Management register: aspm_l1_capability
- */
- /* 0x064 */
- __IO uint32_t ASPM_L1_CAPABILITY;
-
- /**
- Power Management register: timeout_completion
- */
- /* 0x068 */
- __IO uint32_t TIMEOUT_COMPLETION;
- __IO uint32_t RESERVED2;
-
- /**
- Power Management register: pm_data_scale
- */
- /* 0x070 */
- __IO uint32_t PM_DATA_SCALE[4];
-
- /**
- Endpoint Interrupt register: msi
- */
- /* 0x080 */
- __IO uint32_t MSI[8];
-
- /**
- Bridge Configuration Register: error_counter
- */
- /* 0x0A0 */
- __IO uint32_t ERROR_COUNTER[4];
-
- /**
- Bridge Configuration Register: credit_allocation
- */
- /* 0x0B0 */
- __IO uint32_t CREDIT_ALLOCATION[4];
-
- /**
- Address Mapping register: axi_slave_window
- */
- /* 0x0C0 */
- axi_window_TypeDef AXI_SLAVE_WINDOW[4];
-
- /**
- Address Mapping register: axi_master_window
- */
- /* 0x100 */
- axi_window_TypeDef AXI_MASTER_WINDOW[4];
-
- /**
- Rootport Interrupt register: imask
- */
- /* 0x140 */
- __IO uint32_t IMASK;
-
- /**
- Rootport Interrupt register: istatus
- */
- /* 0x144 */
- __IO uint32_t ISTATUS;
-
- /**
- Rootport Interrupt register: icmd
- */
- /* 0x148 */
- __IO uint32_t ICMD;
-
- /**
- Rootport Interrupt register: irstatus
- */
- /* 0x14C */
- __IO uint32_t IRSTATUS;
-
- /**
- Rootport Interrupt register: imsiaddr
- */
- /* 0x150 */
- __IO uint32_t IMSIADDR;
-
- /**
- PCI Express Control & Status Register: slotcap
- */
- /* 0x154 */
- __IO uint32_t SLOTCAP;
-
- /**
- PCI Express Control & Status Register: slotcsr
- */
- /* 0x158 */
- __IO uint32_t SLOTCSR;
-
- /**
- PCI Express Control & Status Register: rootcsr
- */
- /* 0x15C */
- __IO uint32_t ROOTCSR;
-
- /**
- Configuration Register: cfg_control
- */
- /* 0x160 */
- __IO uint32_t CFG_CONTROL;
-
- /**
- Configuration Register: cfg_write_data
- */
- /* 0x164 */
- __IO uint32_t CFG_WRITE_DATA;
-
- /**
- Configuration Register: cfg_read_data
- */
- /* 0x168 */
- __IO uint32_t CFG_READ_DATA;
-
- /**
- Information register: info
- */
- /* 0x16C */
- __IO uint32_t INFO;
-
- /**
- Input/Output Control Register: io_control
- */
- /* 0x170 */
- __IO uint32_t IO_CONTROL;
-
- /**
- Input/Output Control Register: io_addr
- */
- /* 0x174 */
- __IO uint32_t IO_ADDR;
-
- /**
- Input/Output Control Register: io_write_data
- */
- /* 0x178 */
- __IO uint32_t IO_WRITE_DATA;
-
- /**
- Input/Output Control Register: io_read_data
- */
- /* 0x17C */
- __IO uint32_t IO_READ_DATA;
-
- /**
- Configuration Register: cfg_fbe
- */
- /* 0x180 */
- __IO uint32_t CFG_FBE;
-
- /**
- Address Mapping register: prefetch_io_window
- */
- /* 0x184 */
- __IO uint32_t PREFETCH_IO_WINDOW;
-
- __IO uint32_t RESERVED4[31];
-
- /**
- Bridge Configuration Register: pcie_config
- */
- /* 0x204 */
- __IO uint32_t PCIE_CONFIG;
-
- __IO uint32_t RESERVED5[10];
-
- /**
- PCI Express Control & Status Register: pcie_dev2scr
- */
- /* 0x230 */
- __IO uint32_t PCIE_DEV2SCR;
-
- /**
- PCI Express Control & Status Register: pcie_link2scr
- */
- /* 0x234 */
- __IO uint32_t PCIE_LINK2SCR;
-
- __IO uint32_t RESERVED6[10];
-
- /**
- Power Management register: aspm_l0s_gen2 capability
- */
- /* 0x260 */
- __IO uint32_t ASPM_L0S_GEN2;
-
- __IO uint32_t RESERVED7[39];
-
- /**
- Bridge Configuration Register: k_cnt_config
- */
- /* 0x300 */
- __IO uint32_t K_CNT_CONFIG[6];
-
- __IO uint32_t RESERVED8[826];
-
- } PCIE_TypeDef;
-
- /*------------------------------------------------------------------------------
- SERDESIF System Registers.
- */
- typedef struct
- {
- __IO uint32_t SER_PLL_CONFIG_LOW;
- __IO uint32_t SER_PLL_CONFIG_HIGH;
- __IO uint32_t SERDESIF_SOFT_RESET;
- __IO uint32_t SER_INTERRUPT_ENABLE;
- __IO uint32_t CONFIG_AXI_AHB_BRIDGE;
- __IO uint32_t CONFIG_ECC_INTR_ENABLE;
- __IO uint32_t CONFIG_TEST_IN;
- __IO uint32_t TEST_OUT_READ_ADDR;
- __IO uint32_t CONFIG_PCIE_PM;
- __IO uint32_t CONFIG_PHY_MODE_0;
- __IO uint32_t CONFIG_PHY_MODE_1;
- __IO uint32_t CONFIG_PHY_MODE_2;
- __IO uint32_t CONFIG_PCIE_0;
- __IO uint32_t CONFIG_PCIE_1;
- __IO uint32_t CONFIG_PCIE_2;
- __IO uint32_t CONFIG_PCIE_3;
- __IO uint32_t CONFIG_BAR_SIZE_0_1;
- __IO uint32_t CONFIG_BAR_SIZE_2_3;
- __IO uint32_t CONFIG_BAR_SIZE_3_4;
- __IO uint32_t SER_CLK_STATUS;
- __IO uint32_t SER_CLK_CALIB_STATUS;
- __IO uint32_t TEST_OUT_READ_DATA;
- __IO uint32_t SER_INTERRUPT;
- __IO uint32_t SERDESIF_INTR_STATUS;
- __IO uint32_t SER_CLK_CALIB_CONFIG;
- __IO uint32_t REFCLK_SEL;
- __IO uint32_t PCLK_SEL;
- __IO uint32_t EPCS_RSTN_SEL;
- __IO uint32_t CHIP_ENABLES;
- __IO uint32_t SERDES_TEST_OUT;
- __IO uint32_t SERDES_FATC_RESET;
- __IO uint32_t RC_OSC_SPLL_REFCLK_SEL;
- __IO uint32_t SPREAD_SPECTRUM_CLK;
- __IO uint32_t CONF_AXI_MSTR_WNDW_0;
- __IO uint32_t CONF_AXI_MSTR_WNDW_1;
- __IO uint32_t CONF_AXI_MSTR_WNDW_2;
- __IO uint32_t CONF_AXI_MSTR_WNDW_3;
- __IO uint32_t CONF_AXI_SLV_WNDW_0;
- __IO uint32_t CONF_AXI_SLV_WNDW_1;
- __IO uint32_t CONF_AXI_SLV_WNDW_2;
- __IO uint32_t CONF_AXI_SLV_WNDW_3;
- __IO uint32_t DESKEW_CONFIG;
- __IO uint32_t DEBUG_MODE_KEY;
- __IO uint32_t RESERVED0;
- /*
- * The following registers are only available on the M2S090.
- */
- __IO uint32_t IDDQ;
- __IO uint32_t ADVCONFIG;
- __IO uint32_t ADVSTATUS;
- __IO uint32_t ECC_ERR_INJECT;
- __IO uint32_t RESERVED2;
- __IO uint32_t RESERVED3;
- __IO uint32_t ENHANCEMENT;
- __IO uint32_t RESERVED4;
- __IO uint32_t RESERVED5;
- __IO uint32_t RESERVED6;
- __IO uint32_t RESERVED7;
- __IO uint32_t RESERVED8;
- __IO uint32_t RESERVED9;
- __IO uint32_t RESERVED10;
- __IO uint32_t RESERVED11;
- __IO uint32_t RESERVED12;
- __IO uint32_t RESERVED13;
- __IO uint32_t RESERVED14;
- __IO uint32_t RESERVED15;
- __IO uint32_t RESERVED16;
- __IO uint32_t RESERVED17;
- __IO uint32_t RESERVED18;
- __IO uint32_t RESERVED19;
- __IO uint32_t RESERVED20;
- __IO uint32_t CONFIG2_AXI_AHB_BRIDGE;
- __IO uint32_t CONFIG2_ECC_INTR_ENABLE;
- __IO uint32_t CONFIG2_TEST_IN;
- __IO uint32_t TEST2_OUT_READ_ADDR;
- __IO uint32_t CONFIG2_PCIE_PM;
- __IO uint32_t RESERVED21;
- __IO uint32_t RESERVED22;
- __IO uint32_t RESERVED23;
- __IO uint32_t CONFIG2_PCIE_0;
- __IO uint32_t CONFIG2_PCIE_1;
- __IO uint32_t CONFIG2_PCIE_2;
- __IO uint32_t CONFIG2_PCIE_3;
- __IO uint32_t CONFIG2_BAR_SIZE_0_1;
- __IO uint32_t CONFIG2_BAR_SIZE_2_3;
- __IO uint32_t CONFIG2_BAR_SIZE_3_4;
- __IO uint32_t RESERVED24;
- __IO uint32_t RESERVED25;
- __IO uint32_t TEST2_OUT_READ_DATA;
- __IO uint32_t RESERVED26;
- __IO uint32_t SERDESIF2_INTR_STATUS;
- __IO uint32_t RESERVED27;
- __IO uint32_t RESERVED28;
- __IO uint32_t RESERVED29;
- __IO uint32_t RESERVED30;
- __IO uint32_t RESERVED31;
- __IO uint32_t RESERVED32;
- __IO uint32_t RESERVED33;
- __IO uint32_t RESERVED34;
- __IO uint32_t RESERVED35;
- __IO uint32_t CONF2_AXI_MSTR_WNDW_0;
- __IO uint32_t CONF2_AXI_MSTR_WNDW_1;
- __IO uint32_t CONF2_AXI_MSTR_WNDW_2;
- __IO uint32_t CONF2_AXI_MSTR_WNDW_3;
- __IO uint32_t CONF2_AXI_SLV_WNDW_0;
- __IO uint32_t CONF2_AXI_SLV_WNDW_1;
- __IO uint32_t CONF2_AXI_SLV_WNDW_2;
- __IO uint32_t CONF2_AXI_SLV_WNDW_3;
- __IO uint32_t RESERVED36;
- __IO uint32_t RESERVED37;
- __IO uint32_t RESERVED38;
- __IO uint32_t RESERVED39;
- __IO uint32_t ADVCONFIG2;
- __IO uint32_t ADVSTATUS2;
- __IO uint32_t ECC_ERR_INJECT2;
- } SERDES_INTF_SYSREG_TypeDef;
- /*------------------------------------------------------------------------------
- SERDES PHY registers
- */
- typedef struct
- {
- /**
- Control register 0
- */
- __IO uint32_t CR0;
-
- /**
- Clock count for error counter decrement
- */
- __IO uint32_t ERRCNT_DEC;
-
- /**
- Error counter threshold - Rx idle detect max latency
- */
- __IO uint32_t RXIDLE_MAX_ERRCNT_THR;
-
- /**
- Tx Impedance ratio
- */
- __IO uint32_t IMPED_RATIO;
-
- /**
- PLL F settings and PCLK ratio
- */
- __IO uint32_t PLL_F_PCLK_RATIO;
-
- /**
- PLL M & N settings
- */
- __IO uint32_t PLL_M_N;
-
- /**
- 250ns timer base count
- */
- __IO uint32_t CNT250NS_MAX;
-
- /**
- Rx Equalization amplitude ratio
- */
- __IO uint32_t RE_AMP_RATIO;
-
- /**
- Rx Equalization Cut frequency
- */
- __IO uint32_t RE_CUT_RATIO;
-
- /**
- Tx Amplitude ratio
- */
- __IO uint32_t TX_AMP_RATIO;
-
- /**
- Tx Post-Cursor ratio
- */
- __IO uint32_t TX_PST_RATIO;
-
- /**
- Tx Pre-Cursor ratio
- */
- __IO uint32_t TX_PRE_RATIO;
-
- /**
- End of calibration counter
- */
- __IO uint32_t ENDCALIB_MAX;
-
- /**
- Calibration stability counter
- */
- __IO uint32_t CALIB_STABILITY_COUNT;
-
- /**
- Power down feature
- */
- __IO uint32_t POWER_DOWN;
-
- /**
- Rx offset counter
- */
- __IO uint32_t RX_OFFSET_COUNT;
-
- /**
- PLL F settings and PCLK ratio (in PCIe 5 Gbps speed)
- */
- __IO uint32_t PLL_F_PCLK_RATIO_5GBPS;
-
- /**
- PLL M & N sttings (in PCIe 5 Gbps spped)
- */
- __IO uint32_t PLL_M_N_5GBPS;
-
- /**
- 250ns timer base count (in PCIe 5 Gbps speed)
- */
- __IO uint32_t CNT250NS_MAX_5GBPS;
-
- /**
- reserved
- */
- __IO uint32_t RESERVED;
-
- /**
- Tx Post-Cursor ratio with TxDeemp=0, Full swing
- */
- __IO uint32_t TX_PST_RATIO_DEEMP0_FULL;
-
- /**
- Tx Pre-Cursor ratio TxDeemp=0, full swing
- */
- __IO uint32_t TX_PRE_RATIO_DEEMP0_FULL;
-
- /**
- Tx Post-Cursor ratio with TxDeemp=1, Full swing
- */
- __IO uint32_t TX_PST_RATIO_DEEMP1_FULL;
-
- /**
- Tx Pre-Cursor ratio TxDeemp=1, full swing
- */
- __IO uint32_t TX_PRE_RATIO_DEEMP1_FULL;
-
- /**
- Tx Amplitude ratio TxMargin=0, full swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN0_FULL;
-
- /**
- Tx Amplitude ratio TxMargin=1, full swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN1_FULL;
-
- /**
- Tx Amplitude ratio TxMargin=2, full swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN2_FULL;
-
- /**
- Tx Amplitude ratio TxMargin=3, full swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN3_FULL;
-
- /**
- Tx Amplitude ratio TxMargin=4, full swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN4_FULL;
-
- /**
- Tx Amplitude ratio TxMargin=5, full swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN5_FULL;
-
- /**
- Tx Amplitude ratio TxMargin=6, full swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN6_FULL;
-
- /**
- Tx Amplitude ratio TxMargin=7, full swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN7_FULL;
-
- /**
- Rx Equalization amplitude ratio TxDeemp=0
- */
- __IO uint32_t RE_AMP_RATIO_DEEMP0;
-
- /**
- Rx Equalization Cut frequency TxDeemp=0
- */
- __IO uint32_t RE_CUT_RATIO_DEEMP0;
-
- /**
- Rx Equalization amplitude ratio TxDeemp=1
- */
- __IO uint32_t RE_AMP_RATIO_DEEMP1;
-
- /**
- Rx Equalization Cut frequency TxDeemp=1
- */
- __IO uint32_t RE_CUT_RATIO_DEEMP1;
-
- /**
- Tx Post-Cursor ratio with TxDeemp=0, Half swing
- */
- __IO uint32_t TX_PST_RATIO_DEEMP0_HALF;
-
- /**
- Tx Pre-Cursor ratio TxDeemp=0, Half swing
- */
- __IO uint32_t TX_PRE_RATIO_DEEMP0_HALF;
-
- /**
- Tx Post-Cursor ratio with TxDeemp=1, Half swing
- */
- __IO uint32_t TX_PST_RATIO_DEEMP1_HALF;
-
- /**
- Tx Pre-Cursor ratio TxDeemp=1, Half swing
- */
- __IO uint32_t TX_PRE_RATIO_DEEMP1_HALF;
-
- /**
- Tx Amplitude ratio TxMargin=0, Half swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN0_HALF;
-
- /**
- Tx Amplitude ratio TxMargin=1, Half swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN1_HALF;
-
- /**
- Tx Amplitude ratio TxMargin=2, Half swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN2_HALF;
-
- /**
- Tx Amplitude ratio TxMargin=3, Half swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN3_HALF;
-
- /**
- Tx Amplitude ratio TxMargin=4, Half swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN4_HALF;
-
- /**
- Tx Amplitude ratio TxMargin=5, Half swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN5_HALF;
-
- /**
- Tx Amplitude ratio TxMargin=6, Half swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN6_HALF;
-
- /**
- Tx Amplitude ratio TxMargin=7, Half swing
- */
- __IO uint32_t TX_AMP_RATIO_MARGIN7_HALF;
-
- /**
- PMA status
- */
- __IO uint32_t PMA_STATUS;
-
- /**
- Tx sweep center (RO)
- */
- __IO uint32_t TX_SWEEP_CENTER;
-
- /**
- Rx seep center (RO)
- */
- __IO uint32_t RX_SWEEP_CENTER;
-
- /**
- Rx Equalization sweep center (RO)
- */
- __IO uint32_t RE_SWEEP_CENTER;
-
- /**
- Receiver Shift Loader parameter 0 (RO)
- */
- __IO uint32_t ATXDRR_7_0;
-
- /**
- Receiver Shift Loader parameter 1 (RO)
- */
- __IO uint32_t ATXDRR_14_8;
-
- /**
- Transmitter P Shift Loader parameter0-0
- */
- __IO uint32_t ATXDRP_DYN_7_0;
-
- /**
- Transmitter P Shift Loader parameter0-1
- */
- __IO uint32_t ATXDRP_DYN_15_8;
-
- /**
- Transmitter P Shift Loader parameter0-2
- */
- __IO uint32_t ATXDRP_DYN_20_16;
-
- /**
- Transmitter A Shift Loader parameter0-0
- */
- __IO uint32_t ATXDRA_DYN_7_0;
-
- /**
- Transmitter A Shift Loader parameter0-1
- */
- __IO uint32_t ATXDRA_DYN_15_8;
-
- /**
- Transmitter A Shift Loader parameter0-2
- */
- __IO uint32_t ATXDRA_DYN_20_16;
-
- /**
- Transmitter T Shift Loader parameter0-0
- */
- __IO uint32_t ATXDRT_DYN_7_0;
-
- /**
- Transmitter T Shift Loader parameter0-1
- */
- __IO uint32_t ATXDRT_DYN_15_8;
-
- /**
- Transmitter T Shift Loader parameter0-2
- */
- __IO uint32_t ATXDRT_DYN_20_16;
-
- /**
- Transmitter P Shift Loader parameter 1-0 (RO)
- */
- __IO uint32_t ATXDRP_EI1_7_0;
-
- /**
- Transmitter P Shift Loader parameter 1-1 (RO)
- */
- __IO uint32_t ATXDRP_EI1_15_8;
-
- /**
- Transmitter P Shift Loader parameter 1-2 (RO)
- */
- __IO uint32_t ATXDRP_EI1_20_16;
-
- /**
- Transmitter A Shift Loader parameter 1-0 (RO)
- */
- __IO uint32_t ATXDRA_EI1_7_0;
-
- /**
- Transmitter A Shift Loader parameter 1-1 (RO)
- */
- __IO uint32_t ATXDRA_EI1_15_8;
-
- /**
- Transmitter A Shift Loader parameter 1-2 (RO)
- */
- __IO uint32_t ATXDRA_EI1_20_16;
-
- /**
- Transmitter T Shift Loader parameter 1-0 (RO)
- */
- __IO uint32_t ATXDRT_EI1_7_0;
-
- /**
- Transmitter T Shift Loader parameter 1-1 (RO)
- */
- __IO uint32_t ATXDRT_EI1_15_8;
-
- /**
- Transmitter T Shift Loader parameter 1-2 (RO)
- */
- __IO uint32_t ATXDRT_EI1_20_16;
-
- /**
- Transmitter P shift Loader parameter 2-0 (RO)
- */
- __IO uint32_t ATXDRP_EI2_7_0;
-
- /**
- Transmitter P shift Loader parameter 2-1 (RO)
- */
- __IO uint32_t ATXDRP_EI2_15_8;
-
- /**
- Transmitter P shift Loader parameter 2-2 (RO)
- */
- __IO uint32_t ATXDRP_EI2_20_16;
-
- /**
- Transmitter A Shift parametr 2-0 (RO)
- */
- __IO uint32_t ATXDRA_EI2_7_0;
-
- /**
- Transmitter A Shift parametr 2-1 (RO)
- */
- __IO uint32_t ATXDRA_EI2_15_8;
-
- /**
- Transmitter A Shift parametr 2-2 (RO)
- */
- __IO uint32_t ATXDRA_EI2_20_16;
-
- /**
- Transmitter T Shift parametr 2-0 (RO)
- */
- __IO uint32_t ATXDRT_EI2_7_0;
-
- /**
- Transmitter T Shift parametr 2-1 (RO)
- */
- __IO uint32_t ATXDRT_EI2_15_8;
-
- /**
- Transmitter T Shift parametr 2-2 (RO)
- */
- __IO uint32_t ATXDRT_EI2_20_16;
-
- /**
- Override calibration register (RW)
- */
- __IO uint32_t OVERRIDE_CALIB;
-
- /**
- Force Receiver Shift Loader parameter 0 (RW)
- */
- __IO uint32_t FORCE_ATXDRR_7_0;
-
- /**
- Force Receiver Shift Loader parameter 1 (RW)
- */
- __IO uint32_t FORCE_ATXDRR_15_8;
-
- /**
- Force Receiver Shift Loader parameter 2 (RW)
- */
- __IO uint32_t FORCE_ATXDRR_20_16;
-
- /**
- Force Transmitter P Shift Loader parameter 0 (RW)
- */
- __IO uint32_t FORCE_ATXDRP_7_0;
-
- /**
- Force Transmitter P Shift Loader parameter 1 (RW)
- */
- __IO uint32_t FORCE_ATXDRP_15_8;
-
- /**
- Force Transmitter P Shift Loader parameter 2 (RW)
- */
- __IO uint32_t FORCE_ATXDRP_20_16;
-
- /**
- Force Transmitter A Shift Loader parameter 0 (RW)
- */
- __IO uint32_t FORCE_ATXDRA_7_0;
-
- /**
- Force Transmitter A Shift Loader parameter 1 (RW)
- */
- __IO uint32_t FORCE_ATXDRA_15_8;
-
- /**
- Force Transmitter A Shift Loader parameter 2 (RW)
- */
- __IO uint32_t FORCE_ATXDRA_20_16;
-
- /**
- Force Transmitter T Shift parameter 0-0 (RO)
- */
- __IO uint32_t FORCE_ATXDRT_7_0;
-
- /**
- Force Transmitter T Shift parameter 0-1 (RO)
- */
- __IO uint32_t FORCE_ATXDRT_15_8;
-
- /**
- Force Transmitter T Shift parameter 0-2 (RO)
- */
- __IO uint32_t FORCE_ATXDRT_20_16;
-
- /**
- RxD offset calibration result (RO)
- */
- __IO uint32_t RXD_OFFSET_CALIB_RESULT;
-
- /**
- RxT offset calibration result (RO)
- */
- __IO uint32_t RXT_OFFSET_CALIB_RESULT;
-
- /**
- Schmitt trigger calibration result (RO)
- */
- __IO uint32_t SCHMITT_TRIG_CALIB_RESULT;
-
- /**
- Force RxD offset calibration settings (RW)
- */
- __IO uint32_t FORCE_RXD_OFFSET_CALIB;
-
- /**
- Force RxT offset calibration settings (RW)
- */
- __IO uint32_t FORCE_RXT_OFFSET_CALIB;
-
- /**
- Force Schmitt trigger calibration settings (RW)
- */
- __IO uint32_t FORCE_SCHMITT_TRIG_CALIB;
-
- /**
- PRBS control register (RW)
- */
- __IO uint32_t PRBS_CTRL;
-
- /**
- PRBS error counter register (RO)
- */
- __IO uint32_t PRBS_ERRCNT;
-
- /**
- PHY reset override register (RW)
- */
- __IO uint32_t PHY_RESET_OVERRIDE;
-
- /**
- PHY power override register (RW)
- */
- __IO uint32_t PHY_POWER_OVERRIDE;
-
- /**
- Custom Pattern Byte 0 (RW)
- */
- __IO uint32_t CUSTOM_PATTERN_7_0;
-
- /**
- Custom Pattern Byte 1 (RW)
- */
- __IO uint32_t CUSTOM_PATTERN_15_8;
-
- /**
- Custom Pattern Byte 2 (RW)
- */
- __IO uint32_t CUSTOM_PATTERN_23_16;
-
- /**
- Custom Pattern Byte 3 (RW)
- */
- __IO uint32_t CUSTOM_PATTERN_31_24;
-
- /**
- Custom Pattern Byte 4 (RW)
- */
- __IO uint32_t CUSTOM_PATTERN_39_32;
-
- /**
- Custom Pattern Byte 5 (RW)
- */
- __IO uint32_t CUSTOM_PATTERN_47_40;
-
- /**
- Custom Pattern Byte 6 (RW)
- */
- __IO uint32_t CUSTOM_PATTERN55_48;
-
- /**
- Custom Pattern Byte 7 (RW)
- */
- __IO uint32_t CUSTOM_PATTERN_63_56;
-
- /**
- Custom Pattern Byte 8 (RW)
- */
- __IO uint32_t CUSTOM_PATTERN_71_64;
-
- /**
- Custom Pattern Byte 9 (RW)
- */
- __IO uint32_t CUSTOM_PATTERN_79_72;
-
- /**
- Custom Pattern Control (RW)
- */
- __IO uint32_t CUSTOM_PATTERN_CTRL;
-
- /**
- Custom Pattern Status register (RO)
- */
- __IO uint32_t CUSTOM_PATTERN_STATUS;
-
- /**
- PCS Loopback Control (RW)
- */
- __IO uint32_t PCS_LOOPBBACK_CTRL;
-
- /**
- Gen1 Transmit PLL Current Charge Pump (RW)
- */
- __IO uint32_t GEN1_TX_PLL_CCP;
-
- /**
- Gen1 Receive PLL Current Charge Pump (RW)
- */
- __IO uint32_t GEN1_RX_PLL_CCP;
-
- /**
- Gen2 Transmit PLL Current Charge Pump (RW)
- */
- __IO uint32_t GEN2_TX_PLL_CCP;
-
- /**
- Gen2 Receive PLL Current Charge Pump (RW)
- */
- __IO uint32_t GEN2_RX_PLL_CCP;
-
- /**
- CDR PLL manual control
- */
- __IO uint32_t CDR_PLL_MANUAL_CR;
-
- /**
- Reserved0
- */
- __IO uint32_t RESERVED0[6];
-
- /**
- Update settings command register
- */
- __IO uint32_t UPDATE_SETTINGS;
-
- /**
- Reserved1
- */
- __IO uint32_t RESERVED1[31];
-
- /**
- PRBS first error cycle counter bits [7:0]
- */
- __IO uint32_t PRBS_ERR_CYC_FIRST_7_0;
-
- /**
- PRBS first error cycle counter bits [15:8]
- */
- __IO uint32_t PRBS_ERR_CYC_FIRST_15_8;
-
- /**
- PRBS first error cycle counter bits [23:16]
- */
- __IO uint32_t PRBS_ERR_CYC_FIRST_23_16;
-
- /**
- PRBS first error cycle counter bits [31:24]
- */
- __IO uint32_t PRBS_ERR_CYC_FIRST_31_24;
-
- /**
- PRBS first error cycle counter bits [39:32]
- */
- __IO uint32_t PRBS_ERR_CYC_FIRST_39_32;
-
- /**
- PRBS first error cycle counter bits [47:40]
- */
- __IO uint32_t PRBS_ERR_CYC_FIRST_47_40;
-
- /**
- PRBS first error cycle counter bits [49:48]
- */
- __IO uint32_t PRBS_ERR_CYC_FIRST_49_48;
-
- /**
- Reserved2
- */
- __IO uint32_t RESERVED2;
-
- /**
- PRBS last error cycle counter bits [7:0]
- */
- __IO uint32_t PRBS_ERR_CYC_LAST_7_0;
-
- /**
- PRBS last error cycle counter bits [15:8]
- */
- __IO uint32_t PRBS_ERR_CYC_LAST_15_8;
-
- /**
- PRBS last error cycle counter bits [23:16]
- */
- __IO uint32_t PRBS_ERR_CYC_LAST_23_16;
-
- /**
- PRBS last error cycle counter bits [31:24]
- */
- __IO uint32_t PRBS_ERR_CYC_LAST_31_24;
-
- /**
- PRBS last error cycle counter bits [39:32]
- */
- __IO uint32_t PRBS_ERR_CYC_LAST_39_32;
-
- /**
- PRBS last error cycle counter bits [47:40]
- */
- __IO uint32_t PRBS_ERR_CYC_LAST_47_40;
-
- /**
- PRBS last error cycle counter bits [49:48]
- */
- __IO uint32_t PRBS_ERR_CYC_LAST_49_48;
-
- /**
- Reserved3
- */
- __IO uint32_t RESERVED3[81];
-
- } SERDES_TypeDef;
-
- /*-------------------------------------------------------------------------*//**
- The serdesif_regs_t data structure provides access to the complete set of the
- SERDES Interface hardware block configuration registers. These registers are
- accessed through the APB interface of the SERDES Interface hardware block.
- */
- typedef struct
- {
- /**
- PCIe core registers.
- */
- PCIE_TypeDef core;
-
- /**
- SERDES macro registers.
- */
- SERDES_TypeDef lane[4];
-
- /**
- SERDESIF system registers.
- */
- SERDES_INTF_SYSREG_TypeDef sys_regs;
-
- } SERDESIF_TypeDef;
- /*----------------------------------------------------------------------------*/
- /*------------------------------ System Registers ----------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct
- {
- __IO uint32_t ESRAM_CR; /*0X0 */
- __IO uint32_t ESRAM_MAX_LAT_CR; /*0X4 */
- __IO uint32_t DDR_CR; /*0X8 */
- __IO uint32_t ENVM_CR; /*0XC */
- __IO uint32_t ENVM_REMAP_BASE_CR; /*0X10 */
- __IO uint32_t ENVM_REMAP_FAB_CR; /*0X14 */
- __IO uint32_t CC_CR; /*0X18 */
- __IO uint32_t CC_REGION_CR; /*0X1C */
- __IO uint32_t CC_LOCK_BASE_ADDR_CR; /*0X20 */
- __IO uint32_t CC_FLUSH_INDX_CR; /*0X24 */
- __IO uint32_t DDRB_BUF_TIMER_CR; /*0X28 */
- __IO uint32_t DDRB_NB_ADDR_CR; /*0X2C */
- __IO uint32_t DDRB_NB_SIZE_CR; /*0X30 */
- __IO uint32_t DDRB_CR; /*0X34 */
- __IO uint32_t EDAC_CR; /*0X38 */
- __IO uint32_t MASTER_WEIGHT0_CR; /*0X3C */
- __IO uint32_t MASTER_WEIGHT1_CR; /*0X40 */
- __IO uint32_t SOFT_IRQ_CR; /*0X44 */
- __IO uint32_t SOFT_RST_CR; /*0X48 */
- __IO uint32_t M3_CR; /*0X4C */
- __IO uint32_t FAB_IF_CR; /*0X50 */
- __IO uint32_t LOOPBACK_CR; /*0X54 */
- __IO uint32_t GPIO_SYSRESET_SEL_CR; /*0X58 */
- __IO uint32_t GPIN_SRC_SEL_CR; /*0X5C */
- __IO uint32_t MDDR_CR; /*0X60 */
- __IO uint32_t USB_IO_INPUT_SEL_CR; /*0X64 */
- __IO uint32_t PERIPH_CLK_MUX_SEL_CR; /*0X68 */
- __IO uint32_t WDOG_CR; /*0X6C */
- __IO uint32_t MDDR_IO_CALIB_CR; /*0X70 */
- __IO uint32_t SPARE_OUT_CR; /*0X74 */
- __IO uint32_t EDAC_IRQ_ENABLE_CR; /*0X78 */
- __IO uint32_t USB_CR; /*0X7C */
- __IO uint32_t ESRAM_PIPELINE_CR; /*0X80 */
- __IO uint32_t MSS_IRQ_ENABLE_CR; /*0X84 */
- __IO uint32_t RTC_WAKEUP_CR; /*0X88 */
- __IO uint32_t MAC_CR; /*0X8C */
- __IO uint32_t MSSDDR_PLL_STATUS_LOW_CR; /*0X90 */
- __IO uint32_t MSSDDR_PLL_STATUS_HIGH_CR; /*0X94 */
- __IO uint32_t MSSDDR_FACC1_CR; /*0X98 */
- __IO uint32_t MSSDDR_FACC2_CR; /*0X9C */
- __IO uint32_t PLL_LOCK_EN_CR; /*0XA0 */
- __IO uint32_t MSSDDR_CLK_CALIB_CR; /*0XA4 */
- __IO uint32_t PLL_DELAY_LINE_SEL_CR; /*0XA8 */
- __IO uint32_t MAC_STAT_CLRONRD_CR; /*0XAC */
- __IO uint32_t RESET_SOURCE_CR; /*0XB0 */
- __I uint32_t CC_DC_ERR_ADDR_SR; /*0XB4 */
- __I uint32_t CC_IC_ERR_ADDR_SR; /*0XB8 */
- __I uint32_t CC_SB_ERR_ADDR_SR; /*0XBC */
- __I uint32_t CC_DECC_ERR_ADDR_SR; /*0XC0 */
- __I uint32_t CC_IC_MISS_CNT_SR; /*0XC4 */
- __I uint32_t CC_IC_HIT_CNT_SR; /*0XC8 */
- __I uint32_t CC_DC_MISS_CNT_SR; /*0XCC */
- __I uint32_t CC_DC_HIT_CNT_SR; /*0XD0 */
- __I uint32_t CC_IC_TRANS_CNT_SR; /*0XD4 */
- __I uint32_t CC_DC_TRANS_CNT_SR; /*0XD8 */
- __I uint32_t DDRB_DS_ERR_ADR_SR; /*0XDC */
- __I uint32_t DDRB_HPD_ERR_ADR_SR; /*0XE0 */
- __I uint32_t DDRB_SW_ERR_ADR_SR; /*0XE4 */
- __I uint32_t DDRB_BUF_EMPTY_SR; /*0XE8 */
- __I uint32_t DDRB_DSBL_DN_SR; /*0XEC */
- __I uint32_t ESRAM0_EDAC_CNT; /*0XF0 */
- __I uint32_t ESRAM1_EDAC_CNT; /*0XF4 */
- __I uint32_t CC_EDAC_CNT; /*0XF8 */
- __I uint32_t MAC_EDAC_TX_CNT; /*0XFC */
- __I uint32_t MAC_EDAC_RX_CNT; /*0X100 */
- __I uint32_t USB_EDAC_CNT; /*0X104 */
- __I uint32_t CAN_EDAC_CNT; /*0X108 */
- __I uint32_t ESRAM0_EDAC_ADR; /*0X10C */
- __I uint32_t ESRAM1_EDAC_ADR; /*0X110 */
- __I uint32_t MAC_EDAC_RX_ADR; /*0X114 */
- __I uint32_t MAC_EDAC_TX_ADR; /*0X118 */
- __I uint32_t CAN_EDAC_ADR; /*0X11C */
- __I uint32_t USB_EDAC_ADR; /*0X120 */
- __I uint32_t MM0_1_2_SECURITY; /*0X124 */
- __I uint32_t MM4_5_FIC64_SECURITY; /*0X128 */
- __I uint32_t MM3_6_7_8_SECURITY; /*0X12C */
- __I uint32_t MM9_SECURITY; /*0X130 */
- __I uint32_t M3_SR; /*0X134 */
- __I uint32_t ETM_COUNT_LOW; /*0X138 */
- __I uint32_t ETM_COUNT_HIGH; /*0X13C */
- __I uint32_t DEVICE_SR; /*0X140 */
- __I uint32_t ENVM_PROTECT_USER; /*0X144 */
- __I uint32_t ENVM_STATUS; /*0X148 */
- __I uint32_t DEVICE_VERSION; /*0X14C */
- __I uint32_t MSSDDR_PLL_STATUS; /*0X150 */
- __I uint32_t USB_SR; /*0X154 */
- __I uint32_t ENVM_SR; /*0X158 */
- __I uint32_t SPARE_IN; /*0X15C */
- __I uint32_t DDRB_STATUS; /*0X160 */
- __I uint32_t MDDR_IO_CALIB_STATUS; /*0X164 */
- __I uint32_t MSSDDR_CLK_CALIB_STATUS; /*0X168 */
- __I uint32_t WDOGLOAD; /*0X16C */
- __I uint32_t WDOGMVRP; /*0X170 */
- __I uint32_t USERCONFIG0; /*0X174 */
- __I uint32_t USERCONFIG1; /*0X178 */
- __I uint32_t USERCONFIG2; /*0X17C */
- __I uint32_t USERCONFIG3; /*0X180 */
- __I uint32_t FAB_PROT_SIZE; /*0X184 */
- __I uint32_t FAB_PROT_BASE; /*0X188 */
- __I uint32_t MSS_GPIO_DEF; /*0X18C */
- __IO uint32_t EDAC_SR; /*0X190 */
- __IO uint32_t MSS_INTERNAL_SR; /*0X194 */
- __IO uint32_t MSS_EXTERNAL_SR; /*0X198 */
- __IO uint32_t WDOGTIMEOUTEVENT; /*0X19C */
- __IO uint32_t CLR_MSS_COUNTERS; /*0X1A0 */
- __IO uint32_t CLR_EDAC_COUNTERS; /*0X1A4 */
- __IO uint32_t FLUSH_CR; /*0X1A8 */
- __IO uint32_t MAC_STAT_CLR_CR; /*0X1AC */
- __IO uint32_t IOMUXCELL_CONFIG[57]; /*0X1B0 */
- __I uint32_t NVM_PROTECT_FACTORY; /*0X294 */
- __I uint32_t DEVICE_STATUS_FIXED; /*0X298 */
- __I uint32_t MBIST_ES0; /*0X29C */
- __I uint32_t MBIST_ES1; /*0X2A0 */
- __IO uint32_t MSDDR_PLL_STAUS_1; /*0X2A4 */
- __I uint32_t REDUNDANCY_ESRAM0; /*0X2A8 */
- __I uint32_t REDUNDANCY_ESRAM1; /*0X2AC */
- __I uint32_t SERDESIF; /*0X2B0 */
- } SYSREG_TypeDef;
- #define SYSREG_ENVM0_SOFTRESET_MASK ( (uint32_t)0x01u << 0u )
- #define SYSREG_ENVM1_SOFTRESET_MASK ( (uint32_t)0x01u << 1u )
- #define SYSREG_ESRAM0_SOFTRESET_MASK ( (uint32_t)0x01u << 2u )
- #define SYSREG_ESRAM1_SOFTRESET_MASK ( (uint32_t)0x01u << 3u )
- #define SYSREG_MAC_SOFTRESET_MASK ( (uint32_t)0x01u << 4u )
- #define SYSREG_PDMA_SOFTRESET_MASK ( (uint32_t)0x01u << 5u )
- #define SYSREG_TIMER_SOFTRESET_MASK ( (uint32_t)0x01u << 6u )
- #define SYSREG_MMUART0_SOFTRESET_MASK ( (uint32_t)0x01u << 7u )
- #define SYSREG_MMUART1_SOFTRESET_MASK ( (uint32_t)0x01u << 8u )
- #define SYSREG_SPI0_SOFTRESET_MASK ( (uint32_t)0x01u << 9u )
- #define SYSREG_SPI1_SOFTRESET_MASK ( (uint32_t)0x01u << 10u )
- #define SYSREG_I2C0_SOFTRESET_MASK ( (uint32_t)0x01u << 11u )
- #define SYSREG_I2C1_SOFTRESET_MASK ( (uint32_t)0x01u << 12u )
- #define SYSREG_CAN_SOFTRESET_MASK ( (uint32_t)0x01u << 13u )
- #define SYSREG_USB_SOFTRESET_MASK ( (uint32_t)0x01u << 14u )
- #define SYSREG_COMBLK_SOFTRESET_MASK ( (uint32_t)0x01u << 15u )
- #define SYSREG_FPGA_SOFTRESET_MASK ( (uint32_t)0x01u << 16u )
- #define SYSREG_HPDMA_SOFTRESET_MASK ( (uint32_t)0x01u << 17u )
- #define SYSREG_FIC32_0_SOFTRESET_MASK ( (uint32_t)0x01u << 18u )
- #define SYSREG_FIC32_1_SOFTRESET_MASK ( (uint32_t)0x01u << 19u )
- #define SYSREG_GPIO_SOFTRESET_MASK ( (uint32_t)0x01u << 20u )
- #define SYSREG_GPIO_7_0_SOFTRESET_MASK ( (uint32_t)0x01u << 21u )
- #define SYSREG_GPIO_15_8_SOFTRESET_MASK ( (uint32_t)0x01u << 22u )
- #define SYSREG_GPIO_23_16_SOFTRESET_MASK ( (uint32_t)0x01u << 23u )
- #define SYSREG_GPIO_31_24_SOFTRESET_MASK ( (uint32_t)0x01u << 24u )
- #define SYSREG_MDDR_SOFTRESET_MASK ( (uint32_t)0x01u << 25u )
- #define SYSREG_FIC64_SOFTRESET_MASK ( (uint32_t)0x01u << 26u )
- /*----------------------------------------------------------------------------*/
- /*-------------------------- CoreSF2Config Registers -------------------------*/
- /*----------------------------------------------------------------------------*/
- typedef struct {
- __IO uint32_t CONFIG_DONE;
- __I uint32_t INIT_DONE;
- __IO uint32_t CLR_INIT_DONE;
- __I uint32_t CONFIG_SR;
- __IO uint32_t SOFT_RESET_CR;
- __I uint32_t IP_VERSION_SR;
- } CoreSF2Config_TypeDef;
- /******************************************************************************/
- /* Peripheral memory map */
- /******************************************************************************/
- #define UART0_BASE 0x40000000u
- #define SPI0_BASE 0x40001000u
- #define I2C0_BASE 0x40002000u
- #define PDMA_BASE 0x40003000u
- #define TIMER_BASE 0x40004000u
- #define WATCHDOG_BASE 0x40005000u
- #define H2F_IRQ_CTRL_BASE 0x40006000u
- #define UART1_BASE 0x40010000u
- #define SPI1_BASE 0x40011000u
- #define I2C1_BASE 0x40012000u
- #define GPIO_BASE 0x40013000u
- #define HPDMA_BASE 0x40014000u
- #define CAN_BASE 0x40015000u
- #define COMBLK_BASE 0x40016000u
- #define RTC_BASE 0x40017000u
- #define DDR0_CFG_BASE 0x40020800u
- #define DDR1_CFG_BASE 0x40021000u
- #define CORE_SF2_CFG_BASE 0x40022000u
- #define SERDES0_CFG_BASE 0x40028000u
- #define SERDES1_CFG_BASE 0x4002C000u
- #define SERDES2_CFG_BASE 0x40030000u
- #define SERDES3_CFG_BASE 0x40034000u
- #define SYSREG_BASE 0x40038000u
- #define ETHERNET_BASE 0x40041000u
- #define USB_BASE 0x40043000u
- #define ENVM1_BASE 0x60080000u
- #define ENVM2_BASE 0x600C0000u
- /******************************************************************************/
- /* bitband address calculation macro */
- /******************************************************************************/
- #define BITBAND_ADDRESS(X) ((X & 0xF0000000U) + 0x02000000U + ((X & 0xFFFFFU) << 5))
- /******************************************************************************/
- /* Peripheral declaration */
- /******************************************************************************/
- #define UART0 ((UART_TypeDef *) UART0_BASE)
- #define SPI0 ((SPI_TypeDef *) SPI0_BASE)
- #define I2C0 ((I2C_TypeDef *) I2C0_BASE)
- #define I2C0_BITBAND ((I2C_BitBand_TypeDef *) BITBAND_ADDRESS(I2C0_BASE))
- #define MAC ((MAC_TypeDef *) ETHERNET_BASE)
- #define PDMA ((PDMA_TypeDef *) PDMA_BASE)
- #define TIMER ((TIMER_TypeDef *) TIMER_BASE)
- #define TIMER_BITBAND ((TIMER_BitBand_TypeDef *) BITBAND_ADDRESS(TIMER_BASE))
- #define WATCHDOG ((WATCHDOG_TypeDef *) WATCHDOG_BASE)
- #define INTERRUPT_CTRL ((INTERRUPT_CTRL_TypeDef *) H2F_IRQ_CTRL_BASE)
- #define INTERRUPT_CTRL_BITBAND ((INTERRUPT_CTRL_BitBand_TypeDef *) BITBAND_ADDRESS(H2F_IRQ_CTRL_BASE))
- #define UART1 ((UART_TypeDef *) UART1_BASE)
- #define SPI1 ((SPI_TypeDef *) SPI1_BASE)
- #define I2C1 ((I2C_TypeDef *) I2C1_BASE)
- #define I2C1_BITBAND ((I2C_BitBand_TypeDef *) BITBAND_ADDRESS(I2C1_BASE))
- #define GPIO ((GPIO_TypeDef *) GPIO_BASE)
- #define GPIO_BITBAND ((GPIO_BitBand_TypeDef *) BITBAND_ADDRESS(GPIO_BASE))
- #define HPDMA ((HPDMA_TypeDef *) HPDMA_BASE)
- #define HPDMA_BITBAND ((HPDMA_BitBand_TypeDef *) BITBAND_ADDRESS(HPDMA_BASE))
- #define COMBLK ((COMBLK_TypeDef *) COMBLK_BASE)
- #define RTC ((RTC_TypeDef *) RTC_BASE)
- #define ENVM_1 ((NVM_TypeDef *) ENVM1_BASE)
- #define ENVM_2 ((NVM_TypeDef *) ENVM2_BASE)
- #define SYSREG ((SYSREG_TypeDef *) SYSREG_BASE)
- #define MDDR ((MDDR_TypeDef *) DDR0_CFG_BASE)
- #define FDDR ((FDDR_TypeDef *) DDR1_CFG_BASE)
- #define USB ((MSS_USB_TypeDef *) USB_BASE)
- #define SERDES0 ((SERDESIF_TypeDef *) SERDES0_CFG_BASE)
- #define SERDES1 ((SERDESIF_TypeDef *) SERDES1_CFG_BASE)
- #define SERDES2 ((SERDESIF_TypeDef *) SERDES2_CFG_BASE)
- #define SERDES3 ((SERDESIF_TypeDef *) SERDES3_CFG_BASE)
- #define CORE_SF2_CFG ((CoreSF2Config_TypeDef *) CORE_SF2_CFG_BASE)
- #ifdef __cplusplus
- }
- #endif
- #endif /* __SMARTFUSION2_CMSIS_PAL_H__ */
|