mpc821.h
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:39k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. // Copyright (c) 1999-2000 Microsoft Corporation.  All rights reserved.
  2. /*
  3.  * Definitions of the parameter area RAM.
  4.  * Note that different structures are overlaid
  5.  * at the same offsets for the different modes
  6.  * of operation.
  7.  *
  8.  */
  9. #ifndef ASM_ONLY
  10. /***************************************************************
  11.   Declare smc_regs structure outside of PDA to enable external 
  12.   use in drivers.
  13. ***************************************************************/
  14. struct smc_regs {
  15. volatile unsigned short smc_smcmr; /* SMC mode reg */
  16. volatile unsigned char RESERVED34[0x2]; /* Reserved area */
  17. volatile unsigned char RESERVED35; /* Reserved area */
  18. volatile unsigned char smc_smce; /* SMC event reg */
  19. volatile unsigned char RESERVED36[0x3]; /* Reserved area */
  20. volatile unsigned char smc_smcm; /* SMC mask reg */
  21. volatile unsigned char RESERVED37[0x6]; /* Reserved area */
  22. };
  23. /*****************************************************************
  24. HDLC parameter RAM
  25. *****************************************************************/
  26. struct hdlc_pram {
  27. /*
  28.  * SCC parameter RAM
  29.  */
  30. unsigned short tbase; /* TX BD base address */
  31. unsigned short rbase; /* RX BD base address */
  32. unsigned short mrblr; /* Rx buffer length */
  33. unsigned char tfcr; /* Tx function code */
  34. unsigned char rfcr; /* Rx function code */
  35. unsigned long rstate; /* Rx internal state */
  36. unsigned long rptr; /* Rx internal data pointer */
  37. unsigned short rcount; /* Rx internal byte count */
  38. unsigned short rbptr; /* rb BD Pointer */
  39. unsigned long rtemp; /* Rx temp */
  40. unsigned long tstate; /* Tx internal state */
  41. unsigned long tptr; /* Tx internal data pointer */
  42. unsigned short tcount; /* Tx byte count */
  43. unsigned short tbptr; /* Tx BD pointer */
  44. unsigned long ttemp; /* Tx temp */
  45. unsigned long rcrc; /* temp receive CRC */
  46. unsigned long tcrc; /* temp transmit CRC */
  47. /*
  48.  * HDLC specific parameter RAM
  49.  */
  50. unsigned char RESERVED1[4]; /* Reserved area */
  51. unsigned long c_mask; /* CRC constant */
  52. unsigned long c_pres; /* CRC preset */
  53. unsigned short crcec; /* CRC error counter */
  54. unsigned short disfc; /* discarded frame counter */
  55. unsigned short nmarc; /* nonmatching address rx cnt */
  56. unsigned short abtsc; /* abort sequence counter */
  57. unsigned short mflr; /* maximum frame length reg */
  58. unsigned short retrc; /* frame retransmission cnt */
  59. unsigned short rfthr; /* received frames threshold */
  60. unsigned short max_cnt; /* maximum length counter */
  61. unsigned short hmask; /* user defined frm addr mask */
  62. unsigned short rfcnt; /* received frames count */
  63. unsigned short haddr2;     /* user defined frm address 2 */
  64. unsigned short haddr1;     /* user defined frm address 1 */
  65. unsigned short haddr4;     /* user defined frm address 4 */
  66. unsigned short haddr3;     /* user defined frm address 3 */
  67. unsigned short tmp_mb;     /* temp */
  68. unsigned short tmp;     /* temp */
  69. };
  70. /*****************************************************************
  71. ASYNC HDLC parameter RAM
  72. *****************************************************************/
  73. struct async_hdlc_pram {
  74. /*
  75.  * SCC parameter RAM
  76.  */
  77. unsigned short tbase; /* TX BD base address */
  78. unsigned short rbase; /* RX BD base address */
  79. unsigned short mrblr; /* Rx buffer length */
  80. unsigned char tfcr; /* Tx function code */
  81. unsigned char rfcr; /* Rx function code */
  82. unsigned long rstate; /* Rx internal state */
  83. unsigned long rptr; /* Rx internal data pointer */
  84. unsigned short rcount; /* Rx internal byte count */
  85. unsigned short rbptr; /* rb BD Pointer */
  86. unsigned long rtemp; /* Rx temp */
  87. unsigned long tstate; /* Tx internal state */
  88. unsigned long tptr; /* Tx internal data pointer */
  89. unsigned short tcount; /* Tx byte count */
  90. unsigned short tbptr; /* Tx BD pointer */
  91. unsigned long ttemp; /* Tx temp */
  92. unsigned long rcrc; /* temp receive CRC */
  93. unsigned long tcrc; /* temp transmit CRC */
  94. /*
  95.  * ASYNC HDLC specific parameter RAM
  96.  */
  97. unsigned char RESERVED1[4]; /* Reserved area */
  98. unsigned long c_mask; /* CRC constant */
  99. unsigned long c_pres; /* CRC preset */
  100. unsigned short eof; /* end of flag character */
  101. unsigned short bof; /* begining of flag character */
  102. unsigned char RESERVED2a[2]; /* Reserved area */
  103. unsigned short esc; /* control escape character */
  104. unsigned short zero; /* zero */
  105. unsigned char RESERVED2b[2]; /* Reserved area */
  106. unsigned short rfthr; /* received frames threshold */
  107. unsigned char RESERVED3[2]; /* Reserved area */
  108. unsigned char RESERVED4[4]; /* Reserved area */
  109. unsigned long txctl_tbl; /* Tx ctl char mapping table */
  110. unsigned long rxctl_tbl; /* Rx ctl char mapping table */
  111. unsigned short nof; /* Number of opening flags */
  112. };
  113. /*****************************************************************
  114. UART parameter RAM
  115. *****************************************************************/
  116. /*
  117.  * bits in uart control characters table
  118.  */
  119. #define CC_INVALID 0x8000 /* control character is valid */
  120. #define CC_REJ 0x4000 /* don't store char in buffer */
  121. #define CC_CHAR 0x00ff /* control character */
  122. /* UART */
  123. struct uart_pram {
  124. /*
  125.  * SCC parameter RAM
  126.  */
  127.   unsigned short  tbase;      /* TX BD base address */
  128.   unsigned short  rbase;      /* RX BD base address */
  129.   unsigned short  mrblr;      /* Rx buffer length */
  130.   unsigned char   tfcr;       /* Tx function code */
  131.   unsigned char   rfcr;       /* Rx function code */
  132.   unsigned long   rstate;     /* Rx internal state */
  133.   unsigned long   rptr;       /* Rx internal data pointer */
  134.   unsigned short  rcount;     /* Rx internal byte count */
  135.   unsigned short  rbptr;      /* rb BD Pointer */
  136.   unsigned long   rx_temp;    /* Rx temp */
  137.   unsigned long   tstate;     /* Tx internal state */
  138.   unsigned long   tptr;       /* Tx internal data pointer */
  139.   unsigned short  tcount;     /* Tx byte count */
  140.   unsigned short  tbptr;      /* Tx BD pointer */
  141.   unsigned long   ttemp;      /* Tx temp */
  142.   unsigned long   rcrc;       /* temp receive CRC */
  143.   unsigned long   tcrc;       /* temp transmit CRC */
  144.   /*
  145.    * UART specific parameter RAM
  146.    */
  147.   unsigned char   RESERVED1[8];   /* Reserved area */
  148.   unsigned short  idlc;       /* rx idle counter (internal) */
  149.   unsigned short  max_idl;    /* maximum idle characters */
  150.   unsigned short  parec;      /* Rx parity error counter */
  151.   unsigned short  brkcr;      /* break count register */
  152.   unsigned short  nosec;      /* Rx noise counter */
  153.   unsigned short  frmer;      /* Rx framing error counter */
  154.   unsigned short  brkln;      /* Reaceive break length */
  155.   unsigned short  brkec;      /* Rx break character counter */
  156.   unsigned short  uaddr2;     /* address character 2 */
  157.   unsigned short  uaddr1;     /* address character 1 */
  158.   unsigned short  toseq;      /* Tx out of sequence char */
  159.   unsigned short  rtemp;      /* temp storage */
  160.   unsigned short  cc[8];      /* Rx control characters */
  161.   unsigned short  rccr;       /* Rx control char register */
  162.   unsigned short  rccm;       /* Rx control char mask */
  163.   unsigned short  rlbc;       /* Receive last break char */
  164. };
  165. /*****************************************************************
  166. BISYNC parameter RAM
  167. *****************************************************************/
  168. struct bisync_pram {
  169. /*
  170.  * SCC parameter RAM
  171.  */
  172.     unsigned short  tbase;      /* TX BD base address */
  173.     unsigned short  rbase;      /* RX BD base address */
  174.     unsigned short  mrblr;      /* Rx buffer length */
  175.     unsigned char   tfcr;       /* Tx function code */
  176.     unsigned char   rfcr;       /* Rx function code */
  177.     unsigned long   rstate;     /* Rx internal state */
  178.     unsigned long   rptr;       /* Rx internal data pointer */
  179.     unsigned short  rcount;     /* Rx internal byte count */
  180.     unsigned short  rbptr;      /* rb BD Pointer */
  181.     unsigned long   rtemp;      /* Rx temp */
  182.     unsigned long   tstate;     /* Tx internal state */
  183.     unsigned long   tptr;       /* Tx internal data pointer */
  184.     unsigned short  tcount;     /* Tx byte count */
  185.     unsigned short  tbptr;      /* Tx BD pointer */
  186.     unsigned long   ttemp;      /* Tx temp */
  187.     unsigned long   rcrc;       /* temp receive CRC */
  188.     unsigned long   tcrc;       /* temp transmit CRC */
  189.     /*
  190.      * BISYNC specific parameter RAM
  191.      */
  192.     unsigned char   RESERVED1[4];   /* Reserved area */
  193.     unsigned long   crcc;       /* CRC Constant Temp Value */
  194.     unsigned short  ptcrc;      /* Preset Transmitter CRC-16/LRC */
  195.     unsigned short  prcrc;      /* Preset Receiver CRC-16/LRC */
  196.     unsigned short  bsync;      /* BISYNC SYNC Character */
  197.     unsigned short  parec;      /* Receive Parity Error Counter */
  198.     unsigned short  cc[2];      /* Rx control characters */
  199.     unsigned short  bdle;       /* BISYNC DLE Character */
  200.     unsigned short  cc1[4];     /* Rx control characters */
  201.     unsigned short  rccm;       /* Receive Control Character Mask */
  202.     unsigned short  cc2[2];     /* Rx control characters */
  203. };
  204. /*****************************************************************
  205. IOM2 parameter RAM
  206. (overlaid on tx bd[5] of SCC channel[2])
  207. *****************************************************************/
  208. struct iom2_pram {
  209. unsigned short monitor_data; /* monitor data */
  210. unsigned short ci_data; /* ci data */
  211. unsigned short rstate; /* receiver state */
  212. unsigned short tstate; /* transmitter state */
  213. };
  214. /*****************************************************************
  215. SPI/SMC parameter RAM
  216. (overlaid on tx bd[6,7] of SCC channel[2])
  217. *****************************************************************/
  218. #define SPI_R 0x8000 /* Ready bit in BD */
  219. struct spi_pram {
  220.     unsigned short  tbase;      /* Tx BD Base Address */
  221.     unsigned short  rbase;      /* Rx BD Base Address */
  222.     unsigned short  mrblr;      /* Rx buffer length */
  223.     unsigned char   tfcr;       /* Tx function code */
  224.     unsigned char   rfcr;       /* Rx function code */
  225.     unsigned long   rstate;     /* Rx internal state */
  226.     unsigned long   rptr;       /* Rx internal data pointer */
  227.     unsigned short  rcount;     /* Rx internal byte count */
  228.     unsigned short  rbptr;      /* rb BD Pointer */
  229.     unsigned long   rtemp;      /* Rx temp */
  230.     unsigned long   tstate;     /* Tx internal state */
  231.     unsigned long   tptr;       /* Tx internal data pointer */
  232.     unsigned short  tcount;     /* Tx byte count */
  233.     unsigned short  tbptr;      /* Tx BD pointer */
  234.     unsigned long   ttemp;      /* Tx temp */
  235. };
  236. typedef struct smc_uart_pram {
  237.     unsigned short  tbase;      /* Tx BD Base Address */
  238.     unsigned short  rbase;      /* Rx BD Base Address */
  239.     unsigned short  mrblr;      /* Rx buffer length */
  240.     unsigned char   tfcr;       /* Tx function code */
  241.     unsigned char   rfcr;       /* Rx function code */
  242.     unsigned long   rstate;     /* Rx internal state */
  243.     unsigned long   rptr;       /* Rx internal data pointer */
  244.     unsigned short  rcount;     /* Rx internal byte count */
  245.     unsigned short  rbptr;      /* rb BD Pointer */
  246.     unsigned long   rtemp;      /* Rx temp */
  247.     unsigned long   tstate;     /* Tx internal state */
  248.     unsigned long   tptr;       /* Tx internal data pointer */
  249.     unsigned short  tcount;     /* Tx byte count */
  250.     unsigned short  tbptr;      /* Tx BD pointer */
  251.     unsigned long   ttemp;      /* Tx temp */
  252.     unsigned short  idlc;       /* Temporary IDLE Counter */
  253.     unsigned short  max_idl;    /* Maximum IDLE Characters */
  254.     unsigned short  brkec;      /* Rx Break Condition Counter */
  255.     unsigned short  brkln;      /* Last Rx Break Length */
  256.     unsigned short  r_mask;     /* Temporary bit mask */
  257.     unsigned short  brkcr;      /* Break Count Register (Tx) */
  258. }smc_uart_pram;
  259. typedef struct smc_trnsp_pram {
  260.     unsigned short  tbase;      /* Tx BD Base Address */
  261.     unsigned short  rbase;      /* Rx BD Base Address */
  262.     unsigned short  mrblr;      /* Rx buffer length */
  263.     unsigned char   tfcr;       /* Tx function code */
  264.     unsigned char   rfcr;       /* Rx function code */
  265.     unsigned long   rstate;     /* Rx internal state */
  266.     unsigned long   rptr;       /* Rx internal data pointer */
  267.     unsigned short  rcount;     /* Rx internal byte count */
  268.     unsigned short  rbptr;      /* rb BD Pointer */
  269.     unsigned long   rtemp;      /* Rx temp */
  270.     unsigned long   tstate;     /* Tx internal state */
  271.     unsigned long   tptr;       /* Tx internal data pointer */
  272.     unsigned short  tcount;     /* Tx byte count */
  273.     unsigned short  tbptr;      /* Tx BD pointer */
  274.     unsigned long   ttemp;      /* Tx temp */
  275.     unsigned short  reserved[5];    /* Reserved */
  276. } smc_trnsp_pram;
  277. typedef struct centronics_pram {
  278.    unsigned short  tbase;      /* Tx BD Base Address */
  279.    unsigned short  rbase;      /* Rx BD Base Address */
  280.    unsigned short  mrblr;      /* Rx buffer length */
  281.    unsigned char   smask;      /* Status Mask */
  282.    unsigned char   fcr;        /* function code */
  283.    unsigned long   rstate;     /* Rx internal state */
  284.    unsigned long   rptr;       /* Rx internal data pointer */
  285.    unsigned short  rcount;     /* Rx internal byte count */
  286.    unsigned short  rbptr;      /* rb BD Pointer */
  287.    unsigned long   rtemp;      /* Rx temp */
  288.    unsigned long   tstate;     /* Tx internal state */
  289.    unsigned long   tptr;       /* Tx internal data pointer */
  290.    unsigned short  tcount;     /* Tx byte count */
  291.    unsigned short  tbptr;      /* Tx BD pointer */
  292.    unsigned long   ttemp;      /* Tx temp */
  293.    unsigned short  sl_cnt;     /* Silence Counter */
  294.    unsigned short  max_sl;     /* Maximum Silence period */
  295.    unsigned short  char2;      /* CONTROL char 2 */
  296.    unsigned short  char1;      /* CONTROL char 1 */
  297.    unsigned short  char4;      /* CONTROL char 4 */
  298.    unsigned short  char3;      /* CONTROL char 3 */
  299.    unsigned short  char6;      /* CONTROL char 6 */
  300.    unsigned short  char5;      /* CONTROL char 5 */
  301.    unsigned short  char8;      /* CONTROL char 8 */
  302.    unsigned short  char7;      /* CONTROL char 7 */
  303.    unsigned short  rccr;       /* Rx Char Control Register */
  304.    unsigned short  rccm;       /* Rx Control Char Mask */
  305. } centronics_pram;
  306. struct idma_pram {
  307. unsigned short ibptr; /* IDMA buffer descriptor pointer */
  308. unsigned short ibase; /* IDMA BD Base Address */
  309. unsigned long istate; /* IDMA internal state */
  310. unsigned long itemp; /* IDMA temp */
  311. };
  312. struct ethernet_pram {
  313. /*
  314.  * SCC parameter RAM
  315.  */
  316. unsigned short tbase; /* TX BD base address */
  317. unsigned short rbase; /* RX BD base address */
  318. unsigned short mrblr; /* Rx buffer length */
  319. unsigned char tfcr; /* Tx function code */
  320. unsigned char rfcr; /* Rx function code */
  321. unsigned long rstate; /* Rx internal state */
  322. unsigned long rptr; /* Rx internal data pointer */
  323. unsigned short rcount; /* Rx internal byte count */
  324. unsigned short rbptr; /* rb BD Pointer */
  325. unsigned long rtemp; /* Rx temp */
  326. unsigned long tstate; /* Tx internal state */
  327. unsigned long tptr; /* Tx internal data pointer */
  328. unsigned short tcount; /* Tx byte count */
  329. unsigned short tbptr; /* Tx BD pointer */
  330. unsigned long ttemp; /* Tx temp */
  331. unsigned long rcrc; /* temp receive CRC */
  332. unsigned long tcrc; /* temp transmit CRC */
  333. /*
  334.  * ETHERNET specific parameter RAM
  335.  */
  336. unsigned long c_pres; /* preset CRC */
  337. unsigned long c_mask; /* constant mask for CRC */
  338. unsigned long crcec; /* CRC error counter */
  339. unsigned long alec; /* alighnment error counter */
  340. unsigned long disfc; /* discard frame counter */
  341. unsigned short ret_lim; /* retry limit threshold */
  342. unsigned short pads; /* short frame PAD characters */
  343. unsigned short mflr; /* maximum frame length reg */
  344. unsigned short ret_cnt; /* retry limit counter */
  345. unsigned short maxd1; /* maximum DMA1 length reg */
  346. unsigned short minflr; /* minimum frame length reg */
  347. unsigned short maxd; /* rx max DMA */
  348. unsigned short maxd2; /* maximum DMA2 length reg */
  349. unsigned short max_b; /* max bd byte count */
  350. unsigned short dma_cnt; /* rx dma counter */
  351. unsigned short gaddr2; /* group address filter 2 */
  352. unsigned short gaddr1; /* group address filter 1 */
  353. unsigned short gaddr4; /* group address filter 4 */
  354. unsigned short gaddr3; /* group address filter 3 */
  355. unsigned long tbuf0_data0; /* save area 0 - current frm */
  356. unsigned long tbuf0_data1; /* save area 1 - current frm */
  357. unsigned long tbuf0_rba0;
  358. unsigned long tbuf0_crc;
  359. unsigned short paddr_h; /* physical address (MSB) */
  360. unsigned short tbuf0_bcnt;
  361. unsigned short paddr_l; /* physical address (LSB) */
  362. unsigned short paddr_m; /* physical address */
  363. unsigned short rfbd_ptr; /* rx first bd pointer */
  364. unsigned short p_per; /* persistence */
  365. unsigned short tlbd_ptr; /* tx last bd pointer */
  366. unsigned short tfbd_ptr; /* tx first bd pointer */
  367. unsigned long tbuf1_data0; /* save area 0 - next frame */
  368. unsigned long tbuf1_data1; /* save area 1 - next frame */
  369. unsigned long tbuf1_rba0;
  370. unsigned long tbuf1_crc;
  371. unsigned short tx_len; /* tx frame length counter */
  372. unsigned short tbuf1_bcnt;
  373. unsigned short iaddr2; /* individual address filter 2*/
  374. unsigned short iaddr1; /* individual address filter 1*/
  375. unsigned short iaddr4; /* individual address filter 4*/
  376. unsigned short iaddr3; /* individual address filter 3*/
  377. unsigned short taddr_h; /* temp address (MSB) */
  378. unsigned short boff_cnt; /* back-off counter */
  379. unsigned short taddr_l; /* temp address (LSB) */
  380. unsigned short taddr_m; /* temp address */
  381. };
  382. struct transparent_pram {
  383. /*
  384.  * SCC parameter RAM
  385.  */
  386.     unsigned short  tbase;      /* TX BD base address */
  387.     unsigned short  rbase;      /* RX BD base address */
  388.     unsigned short  mrblr;      /* Rx buffer length */
  389.     unsigned char   tfcr;       /* Tx function code */
  390.     unsigned char   rfcr;       /* Rx function code */
  391.     unsigned long   rstate;     /* Rx internal state */
  392.     unsigned long   rptr;       /* Rx internal data pointer */
  393.     unsigned short  rcount;     /* Rx internal byte count */
  394.     unsigned short  rbptr;      /* rb BD Pointer */
  395.     unsigned long   rtemp;      /* Rx temp */
  396.     unsigned long   tstate;     /* Tx internal state */
  397.     unsigned long   tptr;       /* Tx internal data pointer */
  398.     unsigned short  tcount;     /* Tx byte count */
  399.     unsigned short  tbptr;      /* Tx BD pointer */
  400.     unsigned long   ttemp;      /* Tx temp */
  401.     unsigned long   rcrc;       /* temp receive CRC */
  402.     unsigned long   tcrc;       /* temp transmit CRC */
  403.     /*
  404.      * TRANSPARENT specific parameter RAM
  405.      */
  406.     unsigned long   crc_p;      /* CRC Preset */
  407.     unsigned long   crc_c;      /* CRC constant */
  408. };
  409. struct timer_pram {
  410. /*
  411.  * RISC timers parameter RAM
  412.  */
  413. unsigned short tm_ptr; /* RISC timer table pointer */
  414. unsigned short tm_base; /* RISC timer table base adr */
  415. unsigned short r_tmv; /* RISC timer valid register */
  416. unsigned short r_tmr; /* RISC timer mode register */
  417. unsigned long tm_cmd; /* RISC timer cmd register */
  418. unsigned long tm_cnt; /* RISC timer internal cnt */
  419. };
  420. struct ucode_pram {
  421. /*
  422.  * RISC ucode parameter RAM
  423.  */
  424. unsigned short d_ptr; /* MISC Dump area pointer */
  425. unsigned short rev_num; /* Ucode Revision Number */
  426. unsigned long temp1; /* MISC Temp1 */
  427. unsigned long temp2; /* MISC Temp2 */
  428. };
  429. struct i2c_pram {
  430. /*
  431.  * I2C parameter RAM
  432.  */
  433.    unsigned short  tbase;      /* TX BD base address */
  434.    unsigned short  rbase;      /* RX BD base address */
  435.    unsigned short  mrblr;      /* Rx buffer length */
  436.    unsigned char   tfcr;       /* Tx function code */
  437.    unsigned char   rfcr;       /* Rx function code */
  438.    unsigned long   rstate;     /* Rx internal state */
  439.    unsigned long   rptr;       /* Rx internal data pointer */
  440.    unsigned short  rcount;     /* Rx internal byte count */
  441.    unsigned short  rbptr;      /* rb BD Pointer */
  442.    unsigned long   rtemp;      /* Rx temp */
  443.    unsigned long   tstate;     /* Tx internal state */
  444.    unsigned long   tptr;       /* Tx internal data pointer */
  445.    unsigned short  tcount;     /* Tx byte count */
  446.    unsigned short  tbptr;      /* Tx BD pointer */
  447.    unsigned long   ttemp;      /* Tx temp */
  448. };
  449. /*
  450.  * definitions of PDA memory structures
  451.  */
  452. typedef struct pda {
  453. /* BASE + 0x0000: INTERNAL REGISTERS */
  454. /* SIU */
  455. volatile unsigned long siu_mcr; /* module configuration reg */
  456. volatile unsigned long siu_sypcr; /* System protection cnt */
  457. unsigned char   RESERVED58a[0x4];
  458. volatile unsigned short siu_swsr; /* sw service */
  459. unsigned char   RESERVED58b[0x2];
  460. volatile unsigned long siu_sipend; /* Interrupt pend reg */
  461. volatile unsigned long siu_simask; /* Interrupt mask reg */
  462. volatile unsigned long siu_siel; /* Interrupt edge level mask reg */
  463.     unsigned char   RESERVED58c[0x3];
  464. volatile unsigned char siu_sivec; /* Interrupt vector */
  465. volatile unsigned long siu_tesr; /* Transfer error status */
  466. volatile unsigned char RESERVED1[0xc];/* Reserved area */
  467. volatile unsigned long dma_sdcr; /* SDMA configuration reg */
  468. unsigned char   RESERVED55[0x4c];
  469. /* PCMCIA */
  470.     volatile unsigned long  pcmcia_pbr0;    /* PCCard Base   Register 0   */
  471.     volatile unsigned long  pcmcia_por0;    /* PCCard Option Register 0   */
  472.     volatile unsigned long  pcmcia_pbr1;    /* PCCard Base   Register 1   */
  473.     volatile unsigned long  pcmcia_por1;    /* PCCard Option Register 1   */
  474.     volatile unsigned long  pcmcia_pbr2;    /* PCCard Base   Register 2   */
  475.     volatile unsigned long  pcmcia_por2;    /* PCCard Option Register 2   */
  476.     volatile unsigned long  pcmcia_pbr3;    /* PCCard Base   Register 3   */
  477.     volatile unsigned long  pcmcia_por3;    /* PCCard Option Register 3   */
  478.     volatile unsigned long  pcmcia_pbr4;    /* PCCard Base   Register 4   */
  479.     volatile unsigned long  pcmcia_por4;    /* PCCard Option Register 4   */
  480.     volatile unsigned long  pcmcia_pbr5;    /* PCCard Base   Register 5   */
  481.     volatile unsigned long  pcmcia_por5;    /* PCCard Option Register 5   */
  482.     volatile unsigned long  pcmcia_pbr6;    /* PCCard Base   Register 6   */
  483.     volatile unsigned long  pcmcia_por6;    /* PCCard Option Register 6   */
  484.     volatile unsigned long  pcmcia_pbr7;    /* PCCard Base   Register 7   */
  485.     volatile unsigned long  pcmcia_por7;    /* PCCard Option Register 7   */
  486.              unsigned char  RESERVED7Ca[0x20];
  487.     volatile unsigned long  pcmcia_pgcra;   /* General Control Register A */
  488.     volatile unsigned long  pcmcia_pgcrb;   /* General Control Register B */
  489.     volatile unsigned long  pcmcia_pscr;    /* Status Changed Register    */
  490.              unsigned char  RESERVED7Cb[0x4];
  491.     volatile unsigned long  pcmcia_pipr;    /* Input Pins Register */
  492.              unsigned char  RESERVED7Cc[0x4];
  493.     volatile unsigned long  pcmcia_per;     /* Interrupt Enable Register  */
  494. volatile unsigned char RESERVED2[0x4];/* Reserved area */
  495. /* MEMC */
  496. volatile unsigned long memc_br0; /* base register 0 */
  497. volatile unsigned long memc_or0; /* option register 0 */
  498. volatile unsigned long memc_br1; /* base register 1 */
  499. volatile unsigned long memc_or1; /* option register 1 */
  500. volatile unsigned long memc_br2; /* base register 2 */
  501. volatile unsigned long memc_or2; /* option register 2 */
  502. volatile unsigned long memc_br3; /* base register 3 */
  503. volatile unsigned long memc_or3; /* option register 3 */
  504. volatile unsigned long memc_br4; /* base register 3 */
  505. volatile unsigned long memc_or4; /* option register 3 */
  506. volatile unsigned long memc_br5; /* base register 3 */
  507. volatile unsigned long memc_or5; /* option register 3 */
  508. volatile unsigned long memc_br6; /* base register 3 */
  509. volatile unsigned long memc_or6; /* option register 3 */
  510. volatile unsigned long memc_br7; /* base register 3 */
  511. volatile unsigned long memc_or7; /* option register 3 */
  512. unsigned char RESERVED3[0x24]; /* Reserved area */
  513. volatile unsigned long memc_mar; /* Memory address */
  514. volatile unsigned long memc_mcr; /* Memory command */
  515. volatile unsigned char RESERVED4[0x4]; /* Reserved area */
  516. volatile unsigned long memc_mamr; /* Machine A mode */
  517. volatile unsigned long memc_mbmr; /* Machine B mode */
  518. volatile unsigned short memc_mptpr; /* Memory preidic timer prescalar */
  519. volatile unsigned short memc_mstat; /* Memory status */
  520. volatile unsigned long memc_mdr; /* Memory data */
  521. volatile unsigned char RESERVED5[0x80];/* Reserved area */
  522. /* SYSTEM INTEGRATION TIMERS */
  523. volatile unsigned short RESERVED5A[1]; /* Reserved area */
  524. volatile unsigned short simt_tbscr; /* Time base stat&ctr */
  525. volatile unsigned long simt_tbreff0; /* Time base reference 0 */
  526. volatile unsigned long simt_tbreff1; /* Time base reference 1 */
  527. volatile unsigned char RESERVED6[0x14];/* Reserved area */
  528. volatile unsigned char RESERVED6A[0x2];/* Reserved area */
  529. volatile unsigned short simt_rtcsc; /* Realtime clk stat&cntr 1 */
  530. volatile unsigned long simt_rtc; /* Realtime clock */
  531. volatile unsigned long simt_rtsec; /* Realtime alarm seconds */
  532. volatile unsigned long simt_rtcal; /* Realtime alarm */
  533. volatile unsigned char RESERVED56[0x10];/* Reserved area */
  534. volatile unsigned char RESERVED56A[0x2];/* Reserved area */
  535. volatile unsigned short simt_piscr; /* PIT stat&ctrl */
  536. volatile unsigned long simt_pitc; /* PIT counter */
  537. volatile unsigned long simt_pitr; /* PIT */
  538. volatile unsigned char RESERVED7[0x34];/* Reserved area */
  539. /* CLOCKS, RESET */
  540. volatile unsigned long clkr_sccr; /* System clk cntrl */
  541. volatile unsigned long clkr_plprcr; /* PLL reset&ctrl */
  542. volatile unsigned long clkr_rsr; /* reset status */
  543.     volatile unsigned long  clkr_RESERVED1[29];/* Reserved area */
  544. /* SYSTEM INTEGRATION TIMERS AND KEYS */
  545.     volatile unsigned long simtk_tbscrk;
  546.     volatile unsigned long simtk_tbreff0k;
  547.     volatile unsigned long simtk_tbreff1k;
  548.     volatile unsigned long simtk_tbk;
  549.     volatile unsigned long simtk_RESERVED1[4];
  550.     volatile unsigned long simtk_rtcsck;
  551.     volatile unsigned long simtk_rtck;
  552.     volatile unsigned long simtk_rtseck;
  553.     volatile unsigned long simtk_rtcalk;
  554.     volatile unsigned long simtk_RESERVED2[4];
  555.     volatile unsigned long simtk_piscrk;
  556.     volatile unsigned long simtk_pitck;
  557.     volatile unsigned long simtk_RESERVED3[14];
  558. /* CLOCKS, RESET KEYS */
  559.     volatile unsigned long clkrk_sccrk;
  560.     volatile unsigned long clkrk_plprcrk;
  561.     volatile unsigned long clkrk_rsrk;
  562.     volatile unsigned long clkrk_RESERVED1[29];
  563. /* UNUSED REGIONS */
  564.     volatile unsigned long UNUSED1[0x100];
  565.     volatile unsigned long UNUSED2[0x10];
  566. /* LCD */
  567. volatile unsigned long lcd_lccr; /* configuration Reg */
  568. volatile unsigned long lcd_lchcr; /* Horizontal ctl Reg */
  569. volatile unsigned long lcd_lcvcr; /* Vertical ctl Reg */
  570. unsigned char RESERVED67[4];
  571. volatile unsigned long lcd_lcfaa; /* Frame buffer A Address */
  572. volatile unsigned long lcd_lcfba; /* Frame buffer B Address */
  573. volatile unsigned char RESERVED9a[0x3];/* Reserved area */
  574. volatile unsigned char lcd_lcsr; /* Status Reg */
  575. volatile unsigned char RESERVED9b[0x4];/* Reserved area */
  576. /* I2C */
  577. unsigned char RESERVED59[3];
  578. volatile unsigned char i2c_i2mod; /* i2c mode */
  579. unsigned char RESERVED60[3];
  580. volatile unsigned char i2c_i2add; /* i2c address */
  581. unsigned char RESERVED61[3];
  582. volatile unsigned char i2c_i2brg; /* i2c brg */
  583. unsigned char RESERVED62[3];
  584. volatile unsigned char i2c_i2com; /* i2c command */
  585. unsigned char RESERVED63[3];
  586. volatile unsigned char i2c_i2cer; /* i2c event */
  587. volatile unsigned char RESERVED10a[0x3];/* Reserved area */
  588. volatile unsigned char i2c_i2cmr; /* i2c mask */
  589. volatile unsigned char RESERVED10b[0x88];/* Reserved area */
  590. /* DMA */
  591. volatile unsigned char RESERVED11[0x4];/* Reserved area */
  592. volatile unsigned long dma_sdar; /* SDMA address reg */
  593. volatile unsigned char RESERVED13[0x3];/* Reserved area */
  594. volatile unsigned char dma_sdsr; /* SDMA status reg */
  595. volatile unsigned char RESERVED14[0x3];/* Reserved area */
  596. volatile unsigned char dma_sdmr; /* SDMA mask reg */
  597. volatile unsigned char RESERVED15[0x3];/* Reserved area */
  598. volatile unsigned char dma_idsr1; /* IDMA1 status reg */
  599. volatile unsigned char RESERVED16[0x3];/* Reserved area */
  600. volatile unsigned char dma_idmr1; /* IDMA1 mask reg */
  601. volatile unsigned char RESERVED17[0x3];/* Reserved area */
  602. volatile unsigned char dma_idsr2; /* IDMA2 status reg */
  603. volatile unsigned char RESERVED18a[0x3];/* Reserved area */
  604. volatile unsigned char dma_idmr2; /* IDMA2 mask reg */
  605. volatile unsigned char RESERVED18b[0x10];/* Reserved area */
  606. /* CPM Interrupt Controller */
  607. volatile unsigned char RESERVED19a[0x2];/* Reserved area */
  608. volatile unsigned short cpmi_civr; /* CP interrupt vector reg */
  609. volatile unsigned char RESERVED19b[0xc];/* Reserved area */
  610. volatile unsigned long cpmi_cicr; /* CP interrupt configuration reg */
  611. volatile unsigned long cpmi_cipr; /* CP interrupt pending reg */
  612. volatile unsigned long cpmi_cimr; /* CP interrupt mask reg */
  613. volatile unsigned long cpmi_cisr; /* CP interrupt in-service reg */
  614. /* I/O port */
  615. volatile unsigned short pio_papar; /* port A pin assignment reg */
  616. volatile unsigned short pio_padir; /* port A data direction reg */
  617. volatile unsigned short pio_padat; /* port A data register */
  618. volatile unsigned short pio_paodr; /* port A open drain reg */
  619. volatile unsigned char RESERVED20[0x8]; /* Reserved area */
  620. volatile unsigned short pio_pcpar; /* port C pin assignment reg */
  621. volatile unsigned short pio_pcdir; /* port C data direction reg */
  622. volatile unsigned short pio_pcdat; /* port C data register */
  623. volatile unsigned short pio_pcso; /* port C special options */
  624. unsigned char RESERVED64a[2];
  625. volatile unsigned short pio_pcint; /* port C interrupt cntrl reg */
  626. unsigned char RESERVED64b[4];
  627. volatile unsigned short pio_pdpar; /* port D pin assignment reg */
  628. volatile unsigned short pio_pddir; /* port D Data Direction reg */
  629. volatile unsigned short pio_pddat; /* port D data reg */
  630. unsigned char RESERVED65[2];
  631. volatile unsigned char RESERVED21[0x8]; /* Reserved area */
  632. /* CPM Timer */
  633. volatile unsigned char RESERVED22a[0x2]; /* Reserved area */
  634. volatile unsigned short timer_tgcr; /* timer global configuration  reg */
  635. volatile unsigned char RESERVED22b[0xc]; /* Reserved area */
  636. volatile unsigned short timer_tmr2; /* timer 2 mode reg */
  637. volatile unsigned short timer_tmr1; /* timer 1 mode reg */
  638. volatile unsigned short timer_trr2; /* timer 2 referance reg */
  639. volatile unsigned short timer_trr1; /* timer 1 referance reg */
  640. volatile unsigned short timer_tcr2; /* timer 2 capture reg */
  641. volatile unsigned short timer_tcr1; /* timer 1 capture reg */
  642. volatile unsigned short timer_tcn2; /* timer 2 counter reg */
  643. volatile unsigned short timer_tcn1; /* timer 1 counter reg */
  644. volatile unsigned short timer_tmr4; /* timer 4 mode reg */
  645. volatile unsigned short timer_tmr3; /* timer 3 mode reg */
  646. volatile unsigned short timer_trr4; /* timer 4 referance reg */
  647. volatile unsigned short timer_trr3; /* timer 3 referance reg */
  648. volatile unsigned short timer_tcr4; /* timer 4 capture reg */
  649. volatile unsigned short timer_tcr3; /* timer 3 capture reg */
  650. volatile unsigned short timer_tcn4; /* timer 4 counter reg */
  651. volatile unsigned short timer_tcn3; /* timer 3 counter reg */
  652. volatile unsigned short timer_ter2; /* timer 2 event reg */
  653. volatile unsigned short timer_ter1; /* timer 1 event reg */
  654. volatile unsigned short timer_ter4; /* timer 4 event reg */
  655. volatile unsigned short timer_ter3; /* timer 3 event reg */
  656. volatile unsigned char RESERVED23[0x8]; /* Reserved area */
  657. /* CP */
  658. volatile unsigned char RESERVED24[0x2]; /* Reserved area */
  659. volatile unsigned short cp_cr; /* command register */
  660. volatile unsigned char cp_resv1; /* Reserved reg */
  661. volatile unsigned char RESERVED25; /* Reserved area */
  662. volatile unsigned short cp_rccr; /* main configuration reg */
  663. volatile unsigned long cp_resv2; /* Reserved reg */
  664. volatile unsigned short cp_rctr2; /* ram break register 2 */
  665. volatile unsigned short cp_rctr1; /* ram break register 1 */
  666. volatile unsigned short cp_rctr4; /* ram break register 4 */
  667. volatile unsigned short cp_rctr3; /* ram break register 3 */
  668. volatile unsigned short cp_rter; /* RISC timers event reg */
  669. volatile unsigned char RESERVED26[0x2]; /* Reserved area */
  670. volatile unsigned short cp_rtmr; /* RISC timers mask reg */
  671. volatile unsigned char RESERVED27[0x2]; /* Reserved area */
  672. volatile unsigned char RESERVED28[0x14]; /* Reserved area */
  673. /* BRG */
  674. volatile unsigned long brgc1; /* BRG1 configuration reg */
  675. volatile unsigned long brgc2; /* BRG2 configuration reg */
  676. volatile unsigned long brgc3; /* BRG3 configuration reg */
  677. volatile unsigned long brgc4; /* BRG4 configuration reg */
  678. /* SCC registers */
  679. struct scc_regs {
  680. volatile unsigned long scc_gsmra; /* SCC general mode reg */
  681. volatile unsigned long scc_gsmrb; /* SCC general mode reg */
  682. volatile unsigned char RESERVED29[0x2]; /* Reserved area */
  683. volatile unsigned short scc_psmr;  /* protocol specific mode register */
  684. volatile unsigned short scc_dsr;   /* SCC data sync reg */
  685. volatile unsigned short scc_todr;  /* SCC transmit on demand */
  686. volatile unsigned char RESERVED30[0x2];/* Reserved area */
  687. volatile unsigned short scc_scce; /* SCC event reg */
  688. volatile unsigned char scc_sccs; /* SCC status reg */
  689. volatile unsigned char RESERVED31[0x1];/* Reserved area */
  690. volatile unsigned short scc_sccm; /* SCC mask reg */
  691. volatile unsigned char RESERVED32[0x8]; /* Reserved area */
  692. } scc_regs[2], scc_null[2];
  693. /* SMC */
  694. struct smc_regs smc_regs[2];
  695. /* SPI */
  696. volatile unsigned char RESERVED38a[0x2]; /* Reserved area */
  697. volatile unsigned short spi_spmode;       /* SPI mode reg */
  698. volatile unsigned char RESERVED39a[0x1]; /* Reserved area */
  699. volatile unsigned char spi_spie;       /* SPI event reg */
  700. volatile unsigned char RESERVED38b[0x2]; /* Reserved area */
  701. volatile unsigned char RESERVED40a[0x1]; /* Reserved area */
  702. volatile unsigned char spi_spim; /* SPI mask reg */
  703. volatile unsigned char RESERVED39b[0x2]; /* Reserved area */
  704. volatile unsigned char RESERVED41a[0x2]; /* Reserved area */
  705. volatile unsigned char spi_spcom; /* SPI command reg */
  706. volatile unsigned char RESERVED40b[0x1]; /* Reserved area */
  707. /* PIP */
  708. volatile unsigned short pip_pipc; /* pip configuration reg */
  709. volatile unsigned char RESERVED41b[0x2]; /* Reserved area */
  710. volatile unsigned short pip_ptpr; /* pip timing parameters reg */
  711. volatile unsigned char RESERVED42[0x2]; /* Reserved area */
  712. volatile unsigned long pip_pbdir; /* port b data direction reg */
  713. volatile unsigned long pip_pbpar; /* port b pin assignment reg */
  714. volatile unsigned char RESERVED43[0x2]; /* Reserved area */
  715. volatile unsigned short pip_pbodr; /* port b open drain reg */
  716. volatile unsigned long pip_pbdat; /* port b data reg */
  717. volatile unsigned char RESERVED44[0x18]; /* Reserved area */
  718. /* Serial Interface */
  719. volatile unsigned long si_simode; /* SI mode register */
  720. volatile unsigned char si_sicmr; /* SI command register */
  721. volatile unsigned char si_sistr; /* SI status register */
  722. volatile unsigned char RESERVED45; /* Reserved area */
  723. volatile unsigned char si_sigmr; /* SI global mode register */
  724. volatile unsigned char RESERVED46[0x4]; /* Reserved area */
  725. volatile unsigned long si_sicr; /* SI clock routing */
  726. volatile unsigned long si_sirp; /* SI ram pointers */
  727. volatile unsigned char RESERVED47[0x10c]; /* Reserved area */
  728. volatile unsigned short si_siram[0x100]; /* SI routing ram */
  729. volatile unsigned short lcda_lcolr[0x100];/* lcd color Ram for Rev A.X */
  730. volatile unsigned char RESERVED48[0x1000]; /* Reserved area */
  731. /* BASE + 0x2000: user data memory */
  732. volatile unsigned char udata_bd_ucode[0x400]; /*user data bd's Ucode*/
  733. volatile unsigned char udata_bd_ucode2[0x400]; /*user data bd's Ucode*/
  734. volatile unsigned char udata_bd[0x600];     /*user data Ucode*/
  735. volatile unsigned char ucode_ext2[0x100]; /*Extension ram for ucode2 */
  736. volatile unsigned char ucode_ext[0x100]; /*Extension ram for ucode  */
  737. volatile unsigned char RESERVED49[0xC00]; /* Reserved area */
  738. /* BASE + 0x3c00: PARAMETER RAM */
  739. union {
  740. struct scc_pram {
  741. union {
  742. struct hdlc_pram h;
  743. struct uart_pram u;
  744. struct bisync_pram b;
  745. struct transparent_pram t;
  746. struct async_hdlc_pram a;
  747. unsigned char RESERVED50[0x80];
  748. } pscc; /* scc parameter area (protocol dependent) */
  749. union {
  750. struct {
  751. struct i2c_pram i2c;
  752. unsigned char RESERVED56[0x18];
  753. struct idma_pram idma1;
  754. } i2c_idma;
  755. struct {
  756. struct spi_pram spi;
  757. unsigned char RESERVED57[0x8];
  758. struct timer_pram timer;
  759. struct idma_pram idma2;
  760. } spi_timer_idma;
  761. struct {
  762. union {
  763. smc_uart_pram u;
  764. smc_trnsp_pram t;
  765. centronics_pram c;
  766. } psmc;
  767. unsigned char modem_param[0x40];
  768. } smc_modem;
  769. struct {
  770. unsigned char   RESERVED54[0x30]; 
  771. struct ucode_pram ucode;
  772. } pucode;
  773. } pothers;
  774. } scc;
  775. struct ethernet_pram enet_scc;
  776. unsigned char pr[0x100];
  777. } pram[4];
  778. } PDA;
  779. #endif // ASM_ONLY
  780. //
  781. // Define MPC8xx Special Purpose Registers
  782. //
  783. #define PVR        287      // Processor Version Reg.
  784. #define DEC         22      // Decrementer Reg.
  785. #define SRR1        27      // Save/Restore Register 1
  786. #define ICR        148      // Instruction Compare Reg.
  787. #define DER        149      // Debug Enable Reg.
  788. #define ICTRL      158      // Instruction Support Control Reg.
  789. #define IC_CST     560      // I-Cache Control/Status Reg.
  790. #define IC_ADR     561      // I-Cache Address Reg.
  791. #define IC_DAT     562      // I-Cache Data Reg.
  792. #define DC_CST     568      // D-Cache Control/Status Reg.
  793. #define DC_ADR     569      // D-Cache Address Reg.
  794. #define DC_DAT     570      // D-Cache Data Reg.
  795. #define IMMR       638      // Internal Memory Map Reg.
  796. #define EIE         80      // External Interrupt Enable Reg.
  797. #define EID         81      // External Interrupt Disable Reg.
  798. //
  799. // Define internal register offsets from IMMR.
  800. //
  801. #define MEMC_BR1_OFFSET 0x108
  802. #define MDR_OFFSET  0x17c
  803. #define MCR_OFFSET  0x168
  804. #define BR0_OFFSET  0x100
  805. #define OR0_OFFSET  0x104
  806. #define BR1_OFFSET  0x108
  807. #define OR1_OFFSET  0x10c
  808. #define BR2_OFFSET  0x110
  809. #define OR2_OFFSET  0x114
  810. #define BR3_OFFSET  0x118
  811. #define OR3_OFFSET  0x11c
  812. #define MAMR_OFFSET 0x170
  813. #define SCCR_OFFSET   0x280
  814. #define PLPRCR_OFFSET 0x284
  815. #define SIUMCR_OFFSET 0
  816. #define SYPCR_OFFSET 4
  817. #define RTCSC_OFFSET 0x220
  818. #define MPTPR_OFFSET 0x178
  819. #define TBSCR_OFFSET 0x202
  820. #define PISCR_OFFSET 0x242