hubio.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:164k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /* $Id$
  2.  *
  3.  * This file is subject to the terms and conditions of the GNU General Public
  4.  * License.  See the file "COPYING" in the main directory of this archive
  5.  * for more details.
  6.  *
  7.  * Copyright (C) 1992 - 1997, 2000-2001 Silicon Graphics, Inc. All rights reserved.
  8.  */
  9. /************************************************************************
  10.  *                                                                      *
  11.  *      WARNING!!!  WARNING!!!  WARNING!!!  WARNING!!!  WARNING!!!      *
  12.  *                                                                      *
  13.  * This file is created by an automated script. Any (minimal) changes   *
  14.  * made manually to this  file should be made with care.                *
  15.  *                                                                      *
  16.  *               MAKE ALL ADDITIONS TO THE END OF THIS FILE             *
  17.  *                                                                      *
  18.  ************************************************************************/
  19. #ifndef _ASM_IA64_SN_SN1_HUBIO_H
  20. #define _ASM_IA64_SN_SN1_HUBIO_H
  21. #define    IIO_WID                   0x00400000    /*
  22.                                                     * Crosstalk Widget
  23.                                                     * Identification This
  24.                                                     * register is also
  25.                                                     * accessible from
  26.                                                     * Crosstalk at
  27.                                                     * address 0x0.
  28.                                                     */
  29. #define    IIO_WSTAT                 0x00400008    /*
  30.                                                     * Crosstalk Widget
  31.                                                     * Status
  32.                                                     */
  33. #define    IIO_WCR                   0x00400020    /*
  34.                                                     * Crosstalk Widget
  35.                                                     * Control Register
  36.                                                     */
  37. #define    IIO_ILAPR                 0x00400100    /*
  38.                                                     * IO Local Access
  39.                                                     * Protection Register
  40.                                                     */
  41. #define    IIO_ILAPO                 0x00400108    /*
  42.                                                     * IO Local Access
  43.                                                     * Protection Override
  44.                                                     */
  45. #define    IIO_IOWA                  0x00400110    /*
  46.                                                     * IO Outbound Widget
  47.                                                     * Access
  48.                                                     */
  49. #define    IIO_IIWA                  0x00400118    /*
  50.                                                     * IO Inbound Widget
  51.                                                     * Access
  52.                                                     */
  53. #define    IIO_IIDEM                 0x00400120    /*
  54.                                                     * IO Inbound Device
  55.                                                     * Error Mask
  56.                                                     */
  57. #define    IIO_ILCSR                 0x00400128    /*
  58.                                                     * IO LLP Control and
  59.                                                     * Status Register
  60.                                                     */
  61. #define    IIO_ILLR                  0x00400130    /* IO LLP Log Register    */
  62. #define    IIO_IIDSR                 0x00400138    /*
  63.                                                     * IO Interrupt
  64.                                                     * Destination
  65.                                                     */
  66. #define    IIO_IGFX0                 0x00400140    /*
  67.                                                     * IO Graphics
  68.                                                     * Node-Widget Map 0
  69.                                                     */
  70. #define    IIO_IGFX1                 0x00400148    /*
  71.                                                     * IO Graphics
  72.                                                     * Node-Widget Map 1
  73.                                                     */
  74. #define    IIO_ISCR0                 0x00400150    /*
  75.                                                     * IO Scratch Register
  76.                                                     * 0
  77.                                                     */
  78. #define    IIO_ISCR1                 0x00400158    /*
  79.                                                     * IO Scratch Register
  80.                                                     * 1
  81.                                                     */
  82. #define    IIO_ITTE1                 0x00400160    /*
  83.                                                     * IO Translation
  84.                                                     * Table Entry 1
  85.                                                     */
  86. #define    IIO_ITTE2                 0x00400168    /*
  87.                                                     * IO Translation
  88.                                                     * Table Entry 2
  89.                                                     */
  90. #define    IIO_ITTE3                 0x00400170    /*
  91.                                                     * IO Translation
  92.                                                     * Table Entry 3
  93.                                                     */
  94. #define    IIO_ITTE4                 0x00400178    /*
  95.                                                     * IO Translation
  96.                                                     * Table Entry 4
  97.                                                     */
  98. #define    IIO_ITTE5                 0x00400180    /*
  99.                                                     * IO Translation
  100.                                                     * Table Entry 5
  101.                                                     */
  102. #define    IIO_ITTE6                 0x00400188    /*
  103.                                                     * IO Translation
  104.                                                     * Table Entry 6
  105.                                                     */
  106. #define    IIO_ITTE7                 0x00400190    /*
  107.                                                     * IO Translation
  108.                                                     * Table Entry 7
  109.                                                     */
  110. #define    IIO_IPRB0                 0x00400198    /* IO PRB Entry 0         */
  111. #define    IIO_IPRB8                 0x004001A0    /* IO PRB Entry 8         */
  112. #define    IIO_IPRB9                 0x004001A8    /* IO PRB Entry 9         */
  113. #define    IIO_IPRBA                 0x004001B0    /* IO PRB Entry A         */
  114. #define    IIO_IPRBB                 0x004001B8    /* IO PRB Entry B         */
  115. #define    IIO_IPRBC                 0x004001C0    /* IO PRB Entry C         */
  116. #define    IIO_IPRBD                 0x004001C8    /* IO PRB Entry D         */
  117. #define    IIO_IPRBE                 0x004001D0    /* IO PRB Entry E         */
  118. #define    IIO_IPRBF                 0x004001D8    /* IO PRB Entry F         */
  119. #define    IIO_IXCC                  0x004001E0    /*
  120.                                                     * IO Crosstalk Credit
  121.                                                     * Count Timeout
  122.                                                     */
  123. #define    IIO_IMEM                  0x004001E8    /*
  124.                                                     * IO Miscellaneous
  125.                                                     * Error Mask
  126.                                                     */
  127. #define    IIO_IXTT                  0x004001F0    /*
  128.                                                     * IO Crosstalk
  129.                                                     * Timeout Threshold
  130.                                                     */
  131. #define    IIO_IECLR                 0x004001F8    /*
  132.                                                     * IO Error Clear
  133.                                                     * Register
  134.                                                     */
  135. #define    IIO_IBCR                  0x00400200    /*
  136.                                                     * IO BTE Control
  137.                                                     * Register
  138.                                                     */
  139. #define    IIO_IXSM                  0x00400208    /*
  140.                                                     * IO Crosstalk
  141.                                                     * Spurious Message
  142.                                                     */
  143. #define    IIO_IXSS                  0x00400210    /*
  144.                                                     * IO Crosstalk
  145.                                                     * Spurious Sideband
  146.                                                     */
  147. #define    IIO_ILCT                  0x00400218    /* IO LLP Channel Test    */
  148. #define    IIO_IIEPH1                0x00400220    /*
  149.                                                     * IO Incoming Error
  150.                                                     * Packet Header, Part
  151.                                                     * 1
  152.                                                     */
  153. #define    IIO_IIEPH2                0x00400228    /*
  154.                                                     * IO Incoming Error
  155.                                                     * Packet Header, Part
  156.                                                     * 2
  157.                                                     */
  158. #define    IIO_IPCA                  0x00400300    /*
  159.                                                     * IO PRB Counter
  160.                                                     * Adjust
  161.                                                     */
  162. #define    IIO_IPRTE0                0x00400308    /*
  163.                                                     * IO PIO Read Address
  164.                                                     * Table Entry 0
  165.                                                     */
  166. #define    IIO_IPRTE1                0x00400310    /*
  167.                                                     * IO PIO Read Address
  168.                                                     * Table Entry 1
  169.                                                     */
  170. #define    IIO_IPRTE2                0x00400318    /*
  171.                                                     * IO PIO Read Address
  172.                                                     * Table Entry 2
  173.                                                     */
  174. #define    IIO_IPRTE3                0x00400320    /*
  175.                                                     * IO PIO Read Address
  176.                                                     * Table Entry 3
  177.                                                     */
  178. #define    IIO_IPRTE4                0x00400328    /*
  179.                                                     * IO PIO Read Address
  180.                                                     * Table Entry 4
  181.                                                     */
  182. #define    IIO_IPRTE5                0x00400330    /*
  183.                                                     * IO PIO Read Address
  184.                                                     * Table Entry 5
  185.                                                     */
  186. #define    IIO_IPRTE6                0x00400338    /*
  187.                                                     * IO PIO Read Address
  188.                                                     * Table Entry 6
  189.                                                     */
  190. #define    IIO_IPRTE7                0x00400340    /*
  191.                                                     * IO PIO Read Address
  192.                                                     * Table Entry 7
  193.                                                     */
  194. #define    IIO_IPDR                  0x00400388    /*
  195.                                                     * IO PIO Deallocation
  196.                                                     * Register
  197.                                                     */
  198. #define    IIO_ICDR                  0x00400390    /*
  199.                                                     * IO CRB Entry
  200.                                                     * Deallocation
  201.                                                     * Register
  202.                                                     */
  203. #define    IIO_IFDR                  0x00400398    /*
  204.                                                     * IO IOQ FIFO Depth
  205.                                                     * Register
  206.                                                     */
  207. #define    IIO_IIAP                  0x004003A0    /*
  208.                                                     * IO IIQ Arbitration
  209.                                                     * Parameters
  210.                                                     */
  211. #define    IIO_ICMR                  0x004003A8    /*
  212.                                                     * IO CRB Management
  213.                                                     * Register
  214.                                                     */
  215. #define    IIO_ICCR                  0x004003B0    /*
  216.                                                     * IO CRB Control
  217.                                                     * Register
  218.                                                     */
  219. #define    IIO_ICTO                  0x004003B8    /* IO CRB Timeout         */
  220. #define    IIO_ICTP                  0x004003C0    /*
  221.                                                     * IO CRB Timeout
  222.                                                     * Prescalar
  223.                                                     */
  224. #define    IIO_ICRB0_A               0x00400400    /* IO CRB Entry 0_A       */
  225. #define    IIO_ICRB0_B               0x00400408    /* IO CRB Entry 0_B       */
  226. #define    IIO_ICRB0_C               0x00400410    /* IO CRB Entry 0_C       */
  227. #define    IIO_ICRB0_D               0x00400418    /* IO CRB Entry 0_D       */
  228. #define    IIO_ICRB1_A               0x00400420    /* IO CRB Entry 1_A       */
  229. #define    IIO_ICRB1_B               0x00400428    /* IO CRB Entry 1_B       */
  230. #define    IIO_ICRB1_C               0x00400430    /* IO CRB Entry 1_C       */
  231. #define    IIO_ICRB1_D               0x00400438    /* IO CRB Entry 1_D       */
  232. #define    IIO_ICRB2_A               0x00400440    /* IO CRB Entry 2_A       */
  233. #define    IIO_ICRB2_B               0x00400448    /* IO CRB Entry 2_B       */
  234. #define    IIO_ICRB2_C               0x00400450    /* IO CRB Entry 2_C       */
  235. #define    IIO_ICRB2_D               0x00400458    /* IO CRB Entry 2_D       */
  236. #define    IIO_ICRB3_A               0x00400460    /* IO CRB Entry 3_A       */
  237. #define    IIO_ICRB3_B               0x00400468    /* IO CRB Entry 3_B       */
  238. #define    IIO_ICRB3_C               0x00400470    /* IO CRB Entry 3_C       */
  239. #define    IIO_ICRB3_D               0x00400478    /* IO CRB Entry 3_D       */
  240. #define    IIO_ICRB4_A               0x00400480    /* IO CRB Entry 4_A       */
  241. #define    IIO_ICRB4_B               0x00400488    /* IO CRB Entry 4_B       */
  242. #define    IIO_ICRB4_C               0x00400490    /* IO CRB Entry 4_C       */
  243. #define    IIO_ICRB4_D               0x00400498    /* IO CRB Entry 4_D       */
  244. #define    IIO_ICRB5_A               0x004004A0    /* IO CRB Entry 5_A       */
  245. #define    IIO_ICRB5_B               0x004004A8    /* IO CRB Entry 5_B       */
  246. #define    IIO_ICRB5_C               0x004004B0    /* IO CRB Entry 5_C       */
  247. #define    IIO_ICRB5_D               0x004004B8    /* IO CRB Entry 5_D       */
  248. #define    IIO_ICRB6_A               0x004004C0    /* IO CRB Entry 6_A       */
  249. #define    IIO_ICRB6_B               0x004004C8    /* IO CRB Entry 6_B       */
  250. #define    IIO_ICRB6_C               0x004004D0    /* IO CRB Entry 6_C       */
  251. #define    IIO_ICRB6_D               0x004004D8    /* IO CRB Entry 6_D       */
  252. #define    IIO_ICRB7_A               0x004004E0    /* IO CRB Entry 7_A       */
  253. #define    IIO_ICRB7_B               0x004004E8    /* IO CRB Entry 7_B       */
  254. #define    IIO_ICRB7_C               0x004004F0    /* IO CRB Entry 7_C       */
  255. #define    IIO_ICRB7_D               0x004004F8    /* IO CRB Entry 7_D       */
  256. #define    IIO_ICRB8_A               0x00400500    /* IO CRB Entry 8_A       */
  257. #define    IIO_ICRB8_B               0x00400508    /* IO CRB Entry 8_B       */
  258. #define    IIO_ICRB8_C               0x00400510    /* IO CRB Entry 8_C       */
  259. #define    IIO_ICRB8_D               0x00400518    /* IO CRB Entry 8_D       */
  260. #define    IIO_ICRB9_A               0x00400520    /* IO CRB Entry 9_A       */
  261. #define    IIO_ICRB9_B               0x00400528    /* IO CRB Entry 9_B       */
  262. #define    IIO_ICRB9_C               0x00400530    /* IO CRB Entry 9_C       */
  263. #define    IIO_ICRB9_D               0x00400538    /* IO CRB Entry 9_D       */
  264. #define    IIO_ICRBA_A               0x00400540    /* IO CRB Entry A_A       */
  265. #define    IIO_ICRBA_B               0x00400548    /* IO CRB Entry A_B       */
  266. #define    IIO_ICRBA_C               0x00400550    /* IO CRB Entry A_C       */
  267. #define    IIO_ICRBA_D               0x00400558    /* IO CRB Entry A_D       */
  268. #define    IIO_ICRBB_A               0x00400560    /* IO CRB Entry B_A       */
  269. #define    IIO_ICRBB_B               0x00400568    /* IO CRB Entry B_B       */
  270. #define    IIO_ICRBB_C               0x00400570    /* IO CRB Entry B_C       */
  271. #define    IIO_ICRBB_D               0x00400578    /* IO CRB Entry B_D       */
  272. #define    IIO_ICRBC_A               0x00400580    /* IO CRB Entry C_A       */
  273. #define    IIO_ICRBC_B               0x00400588    /* IO CRB Entry C_B       */
  274. #define    IIO_ICRBC_C               0x00400590    /* IO CRB Entry C_C       */
  275. #define    IIO_ICRBC_D               0x00400598    /* IO CRB Entry C_D       */
  276. #define    IIO_ICRBD_A               0x004005A0    /* IO CRB Entry D_A       */
  277. #define    IIO_ICRBD_B               0x004005A8    /* IO CRB Entry D_B       */
  278. #define    IIO_ICRBD_C               0x004005B0    /* IO CRB Entry D_C       */
  279. #define    IIO_ICRBD_D               0x004005B8    /* IO CRB Entry D_D       */
  280. #define    IIO_ICRBE_A               0x004005C0    /* IO CRB Entry E_A       */
  281. #define    IIO_ICRBE_B               0x004005C8    /* IO CRB Entry E_B       */
  282. #define    IIO_ICRBE_C               0x004005D0    /* IO CRB Entry E_C       */
  283. #define    IIO_ICRBE_D               0x004005D8    /* IO CRB Entry E_D       */
  284. #define    IIO_ICSML                 0x00400600    /*
  285.                                                     * IO CRB Spurious
  286.                                                     * Message Low
  287.                                                     */
  288. #define    IIO_ICSMH                 0x00400608    /*
  289.                                                     * IO CRB Spurious
  290.                                                     * Message High
  291.                                                     */
  292. #define    IIO_IDBSS                 0x00400610    /*
  293.                                                     * IO Debug Submenu
  294.                                                     * Select
  295.                                                     */
  296. #define    IIO_IBLS0                 0x00410000    /*
  297.                                                     * IO BTE Length
  298.                                                     * Status 0
  299.                                                     */
  300. #define    IIO_IBSA0                 0x00410008    /*
  301.                                                     * IO BTE Source
  302.                                                     * Address 0
  303.                                                     */
  304. #define    IIO_IBDA0                 0x00410010    /*
  305.                                                     * IO BTE Destination
  306.                                                     * Address 0
  307.                                                     */
  308. #define    IIO_IBCT0                 0x00410018    /*
  309.                                                     * IO BTE Control
  310.                                                     * Terminate 0
  311.                                                     */
  312. #define    IIO_IBNA0                 0x00410020    /*
  313.                                                     * IO BTE Notification
  314.                                                     * Address 0
  315.                                                     */
  316. #define    IIO_IBIA0                 0x00410028    /*
  317.                                                     * IO BTE Interrupt
  318.                                                     * Address 0
  319.                                                     */
  320. #define    IIO_IBLS1                 0x00420000    /*
  321.                                                     * IO BTE Length
  322.                                                     * Status 1
  323.                                                     */
  324. #define    IIO_IBSA1                 0x00420008    /*
  325.                                                     * IO BTE Source
  326.                                                     * Address 1
  327.                                                     */
  328. #define    IIO_IBDA1                 0x00420010    /*
  329.                                                     * IO BTE Destination
  330.                                                     * Address 1
  331.                                                     */
  332. #define    IIO_IBCT1                 0x00420018    /*
  333.                                                     * IO BTE Control
  334.                                                     * Terminate 1
  335.                                                     */
  336. #define    IIO_IBNA1                 0x00420020    /*
  337.                                                     * IO BTE Notification
  338.                                                     * Address 1
  339.                                                     */
  340. #define    IIO_IBIA1                 0x00420028    /*
  341.                                                     * IO BTE Interrupt
  342.                                                     * Address 1
  343.                                                     */
  344. #define    IIO_IPCR                  0x00430000    /*
  345.                                                     * IO Performance
  346.                                                     * Control
  347.                                                     */
  348. #define    IIO_IPPR                  0x00430008    /*
  349.                                                     * IO Performance
  350.                                                     * Profiling
  351.                                                     */
  352. #ifndef __ASSEMBLY__
  353. /************************************************************************
  354.  *                                                                      *
  355.  * Description:  This register echoes some information from the         *
  356.  * LB_REV_ID register. It is available through Crosstalk as described   *
  357.  * above. The REV_NUM and MFG_NUM fields receive their values from      *
  358.  * the REVISION and MANUFACTURER fields in the LB_REV_ID register.      *
  359.  * The PART_NUM field's value is the Crosstalk device ID number that    *
  360.  * Steve Miller assigned to the Bedrock chip.                           *
  361.  *                                                                      *
  362.  ************************************************************************/
  363. #ifdef LITTLE_ENDIAN
  364. typedef union ii_wid_u {
  365. bdrkreg_t ii_wid_regval;
  366. struct {
  367. bdrkreg_t w_rsvd_1   :  1;
  368. bdrkreg_t w_mfg_num   : 11;
  369. bdrkreg_t w_part_num   : 16;
  370. bdrkreg_t w_rev_num   :  4;
  371. bdrkreg_t w_rsvd   : 32;
  372. } ii_wid_fld_s;
  373. } ii_wid_u_t;
  374. #else
  375. typedef union ii_wid_u {
  376. bdrkreg_t ii_wid_regval;
  377. struct  {
  378. bdrkreg_t w_rsvd                    : 32;
  379. bdrkreg_t w_rev_num                 :  4;
  380. bdrkreg_t w_part_num                : 16;
  381. bdrkreg_t w_mfg_num                 : 11;
  382. bdrkreg_t w_rsvd_1                  :  1;
  383. } ii_wid_fld_s;
  384. } ii_wid_u_t;
  385. #endif
  386. /************************************************************************
  387.  *                                                                      *
  388.  *  The fields in this register are set upon detection of an error      *
  389.  * and cleared by various mechanisms, as explained in the               *
  390.  * description.                                                         *
  391.  *                                                                      *
  392.  ************************************************************************/
  393. #ifdef LITTLE_ENDIAN
  394. typedef union ii_wstat_u {
  395. bdrkreg_t ii_wstat_regval;
  396. struct {
  397. bdrkreg_t w_pending   :  4;
  398. bdrkreg_t w_xt_crd_to   :  1;
  399. bdrkreg_t w_xt_tail_to   :  1;
  400. bdrkreg_t w_rsvd_3   :  3;
  401. bdrkreg_t       w_tx_mx_rty               :      1;
  402. bdrkreg_t w_rsvd_2   :  6;
  403. bdrkreg_t w_llp_tx_cnt   :  8;
  404. bdrkreg_t w_rsvd_1   :  8;
  405. bdrkreg_t w_crazy   :  1;
  406. bdrkreg_t w_rsvd   : 31;
  407. } ii_wstat_fld_s;
  408. } ii_wstat_u_t;
  409. #else
  410. typedef union ii_wstat_u {
  411. bdrkreg_t ii_wstat_regval;
  412. struct  {
  413. bdrkreg_t w_rsvd                    : 31;
  414. bdrkreg_t w_crazy                   :  1;
  415. bdrkreg_t w_rsvd_1                  :  8;
  416. bdrkreg_t w_llp_tx_cnt              :  8;
  417. bdrkreg_t w_rsvd_2                  :  6;
  418. bdrkreg_t w_tx_mx_rty               :  1;
  419. bdrkreg_t w_rsvd_3                  :  3;
  420. bdrkreg_t w_xt_tail_to              :  1;
  421. bdrkreg_t w_xt_crd_to               :  1;
  422. bdrkreg_t w_pending                 :  4;
  423. } ii_wstat_fld_s;
  424. } ii_wstat_u_t;
  425. #endif
  426. /************************************************************************
  427.  *                                                                      *
  428.  * Description:  This is a read-write enabled register. It controls     *
  429.  * various aspects of the Crosstalk flow control.                       *
  430.  *                                                                      *
  431.  ************************************************************************/
  432. #ifdef LITTLE_ENDIAN
  433. typedef union ii_wcr_u {
  434. bdrkreg_t ii_wcr_regval;
  435. struct {
  436. bdrkreg_t w_wid   :  4;
  437. bdrkreg_t w_tag   :  1;
  438. bdrkreg_t w_rsvd_1   :  8;
  439. bdrkreg_t w_dst_crd   :  3;
  440. bdrkreg_t w_f_bad_pkt   :  1;
  441. bdrkreg_t w_dir_con   :  1;
  442. bdrkreg_t w_e_thresh   :  5;
  443. bdrkreg_t w_rsvd   : 41;
  444. } ii_wcr_fld_s;
  445. } ii_wcr_u_t;
  446. #else
  447. typedef union ii_wcr_u {
  448. bdrkreg_t ii_wcr_regval;
  449. struct  {
  450. bdrkreg_t w_rsvd                    : 41;
  451. bdrkreg_t w_e_thresh                :  5;
  452. bdrkreg_t w_dir_con                 :  1;
  453. bdrkreg_t w_f_bad_pkt               :  1;
  454. bdrkreg_t w_dst_crd                 :  3;
  455. bdrkreg_t w_rsvd_1                  :  8;
  456. bdrkreg_t w_tag                     :  1;
  457. bdrkreg_t w_wid                     :  4;
  458. } ii_wcr_fld_s;
  459. } ii_wcr_u_t;
  460. #endif
  461. /************************************************************************
  462.  *                                                                      *
  463.  * Description:  This register's value is a bit vector that guards      *
  464.  * access to local registers within the II as well as to external       *
  465.  * Crosstalk widgets. Each bit in the register corresponds to a         *
  466.  * particular region in the system; a region consists of one, two or    *
  467.  * four nodes (depending on the value of the REGION_SIZE field in the   *
  468.  * LB_REV_ID register, which is documented in Section 8.3.1.1). The     *
  469.  * protection provided by this register applies to PIO read             *
  470.  * operations as well as PIO write operations. The II will perform a    *
  471.  * PIO read or write request only if the bit for the requestor's        *
  472.  * region is set; otherwise, the II will not perform the requested      *
  473.  * operation and will return an error response. When a PIO read or      *
  474.  * write request targets an external Crosstalk widget, then not only    *
  475.  * must the bit for the requestor's region be set in the ILAPR, but     *
  476.  * also the target widget's bit in the IOWA register must be set in     *
  477.  * order for the II to perform the requested operation; otherwise,      *
  478.  * the II will return an error response. Hence, the protection          *
  479.  * provided by the IOWA register supplements the protection provided    *
  480.  * by the ILAPR for requests that target external Crosstalk widgets.    *
  481.  * This register itself can be accessed only by the nodes whose         *
  482.  * region ID bits are enabled in this same register. It can also be     *
  483.  * accessed through the IAlias space by the local processors.           *
  484.  * The reset value of this register allows access by all nodes.         *
  485.  *                                                                      *
  486.  ************************************************************************/
  487. typedef union ii_ilapr_u {
  488. bdrkreg_t ii_ilapr_regval;
  489. struct  {
  490. bdrkreg_t i_region                  : 64;
  491. } ii_ilapr_fld_s;
  492. } ii_ilapr_u_t;
  493. /************************************************************************
  494.  *                                                                      *
  495.  * Description:  A write to this register of the 64-bit value           *
  496.  * "SGIrules" in ASCII, will cause the bit in the ILAPR register        *
  497.  * corresponding to the region of the requestor to be set (allow        *
  498.  * access). A write of any other value will be ignored. Access          *
  499.  * protection for this register is "SGIrules".                          *
  500.  * This register can also be accessed through the IAlias space.         *
  501.  * However, this access will not change the access permissions in the   *
  502.  * ILAPR.                                                               *
  503.  *                                                                      *
  504.  ************************************************************************/
  505. #ifdef LITTLE_ENDIAN
  506. typedef union ii_ilapo_u {
  507. bdrkreg_t ii_ilapo_regval;
  508. struct {
  509. bdrkreg_t i_io_ovrride   :  9;
  510. bdrkreg_t i_rsvd   : 55;
  511. } ii_ilapo_fld_s;
  512. } ii_ilapo_u_t;
  513. #else
  514. typedef union ii_ilapo_u {
  515. bdrkreg_t ii_ilapo_regval;
  516. struct  {
  517. bdrkreg_t i_rsvd                    : 55;
  518. bdrkreg_t i_io_ovrride              :  9;
  519. } ii_ilapo_fld_s;
  520. } ii_ilapo_u_t;
  521. #endif
  522. /************************************************************************
  523.  *                                                                      *
  524.  *  This register qualifies all the PIO and Graphics writes launched    *
  525.  * from the Bedrock towards a widget.                                   *
  526.  *                                                                      *
  527.  ************************************************************************/
  528. #ifdef LITTLE_ENDIAN
  529. typedef union ii_iowa_u {
  530. bdrkreg_t ii_iowa_regval;
  531. struct {
  532. bdrkreg_t i_w0_oac   :  1;
  533. bdrkreg_t i_rsvd_1   :  7;
  534.                 bdrkreg_t       i_wx_oac                  :      8;
  535. bdrkreg_t i_rsvd   : 48;
  536. } ii_iowa_fld_s;
  537. } ii_iowa_u_t;
  538. #else
  539. typedef union ii_iowa_u {
  540. bdrkreg_t ii_iowa_regval;
  541. struct  {
  542. bdrkreg_t i_rsvd                    : 48;
  543. bdrkreg_t i_wx_oac                  :  8;
  544. bdrkreg_t i_rsvd_1                  :  7;
  545. bdrkreg_t i_w0_oac                  :  1;
  546. } ii_iowa_fld_s;
  547. } ii_iowa_u_t;
  548. #endif
  549. /************************************************************************
  550.  *                                                                      *
  551.  * Description:  This register qualifies all the requests launched      *
  552.  * from a widget towards the Bedrock. This register is intended to be   *
  553.  * used by software in case of misbehaving widgets.                     *
  554.  *                                                                      *
  555.  *                                                                      *
  556.  ************************************************************************/
  557. #ifdef LITTLE_ENDIAN
  558. typedef union ii_iiwa_u {
  559. bdrkreg_t ii_iiwa_regval;
  560. struct  {
  561. bdrkreg_t i_w0_iac                  :  1;
  562. bdrkreg_t i_rsvd_1   :  7;
  563. bdrkreg_t i_wx_iac   :  8;
  564. bdrkreg_t i_rsvd   : 48;
  565. } ii_iiwa_fld_s;
  566. } ii_iiwa_u_t;
  567. #else
  568. typedef union ii_iiwa_u {
  569. bdrkreg_t ii_iiwa_regval;
  570. struct {
  571. bdrkreg_t i_rsvd   : 48;
  572. bdrkreg_t i_wx_iac   :  8;
  573. bdrkreg_t i_rsvd_1   :  7;
  574. bdrkreg_t i_w0_iac   :  1;
  575. } ii_iiwa_fld_s;
  576. } ii_iiwa_u_t;
  577. #endif
  578. /************************************************************************
  579.  *                                                                      *
  580.  * Description:  This register qualifies all the operations launched    *
  581.  * from a widget towards the Bedrock. It allows individual access       *
  582.  * control for up to 8 devices per widget. A device refers to           *
  583.  * individual DMA master hosted by a widget.                            *
  584.  * The bits in each field of this register are cleared by the Bedrock   *
  585.  * upon detection of an error which requires the device to be           *
  586.  * disabled. These fields assume that 0=TNUM=7 (i.e., Bridge-centric    *
  587.  * Crosstalk). Whether or not a device has access rights to this        *
  588.  * Bedrock is determined by an AND of the device enable bit in the      *
  589.  * appropriate field of this register and the corresponding bit in      *
  590.  * the Wx_IAC field (for the widget which this device belongs to).      *
  591.  * The bits in this field are set by writing a 1 to them. Incoming      *
  592.  * replies from Crosstalk are not subject to this access control        *
  593.  * mechanism.                                                           *
  594.  *                                                                      *
  595.  ************************************************************************/
  596. #ifdef LITTLE_ENDIAN
  597. typedef union ii_iidem_u {
  598. bdrkreg_t ii_iidem_regval;
  599. struct {
  600. bdrkreg_t i_w8_dxs   :  8;
  601. bdrkreg_t i_w9_dxs   :  8;
  602. bdrkreg_t i_wa_dxs   :  8;
  603. bdrkreg_t i_wb_dxs   :  8;
  604. bdrkreg_t i_wc_dxs   :  8;
  605. bdrkreg_t i_wd_dxs   :  8;
  606. bdrkreg_t i_we_dxs   :  8;
  607. bdrkreg_t i_wf_dxs   :  8;
  608. } ii_iidem_fld_s;
  609. } ii_iidem_u_t;
  610. #else
  611. typedef union ii_iidem_u {
  612. bdrkreg_t ii_iidem_regval;
  613. struct  {
  614. bdrkreg_t i_wf_dxs                  :  8;
  615. bdrkreg_t i_we_dxs                  :  8;
  616. bdrkreg_t i_wd_dxs                  :  8;
  617. bdrkreg_t i_wc_dxs                  :  8;
  618. bdrkreg_t i_wb_dxs                  :  8;
  619. bdrkreg_t i_wa_dxs                  :  8;
  620. bdrkreg_t i_w9_dxs                  :  8;
  621. bdrkreg_t i_w8_dxs                  :  8;
  622. } ii_iidem_fld_s;
  623. } ii_iidem_u_t;
  624. #endif
  625. /************************************************************************
  626.  *                                                                      *
  627.  *  This register contains the various programmable fields necessary    *
  628.  * for controlling and observing the LLP signals.                       *
  629.  *                                                                      *
  630.  ************************************************************************/
  631. #ifdef LITTLE_ENDIAN
  632. typedef union ii_ilcsr_u {
  633. bdrkreg_t ii_ilcsr_regval;
  634. struct  {
  635. bdrkreg_t i_nullto                  :  6;
  636. bdrkreg_t i_rsvd_4   :  2;
  637. bdrkreg_t i_wrmrst   :  1;
  638. bdrkreg_t i_rsvd_3   :  1;
  639. bdrkreg_t i_llp_en   :  1;
  640. bdrkreg_t i_bm8   :  1;
  641. bdrkreg_t i_llp_stat   :  2;
  642. bdrkreg_t i_remote_power   :  1;
  643. bdrkreg_t i_rsvd_2   :  1;
  644. bdrkreg_t i_maxrtry   : 10;
  645. bdrkreg_t i_d_avail_sel   :  2;
  646. bdrkreg_t i_rsvd_1   :  4;
  647. bdrkreg_t i_maxbrst   : 10;
  648.                 bdrkreg_t       i_rsvd                    :     22;
  649. } ii_ilcsr_fld_s;
  650. } ii_ilcsr_u_t;
  651. #else
  652. typedef union ii_ilcsr_u {
  653. bdrkreg_t ii_ilcsr_regval;
  654. struct {
  655. bdrkreg_t i_rsvd   : 22;
  656. bdrkreg_t i_maxbrst   : 10;
  657. bdrkreg_t i_rsvd_1   :  4;
  658. bdrkreg_t i_d_avail_sel   :  2;
  659. bdrkreg_t i_maxrtry   : 10;
  660. bdrkreg_t i_rsvd_2   :  1;
  661. bdrkreg_t i_remote_power   :  1;
  662. bdrkreg_t i_llp_stat   :  2;
  663. bdrkreg_t i_bm8   :  1;
  664. bdrkreg_t i_llp_en   :  1;
  665. bdrkreg_t i_rsvd_3   :  1;
  666. bdrkreg_t i_wrmrst   :  1;
  667. bdrkreg_t i_rsvd_4   :  2;
  668. bdrkreg_t i_nullto   :  6;
  669. } ii_ilcsr_fld_s;
  670. } ii_ilcsr_u_t;
  671. #endif
  672. /************************************************************************
  673.  *                                                                      *
  674.  *  This is simply a status registers that monitors the LLP error       *
  675.  * rate.                                                                *
  676.  *                                                                      *
  677.  ************************************************************************/
  678. #ifdef LITTLE_ENDIAN
  679. typedef union ii_illr_u {
  680. bdrkreg_t ii_illr_regval;
  681. struct {
  682. bdrkreg_t i_sn_cnt   : 16;
  683. bdrkreg_t i_cb_cnt   : 16;
  684. bdrkreg_t i_rsvd   : 32;
  685. } ii_illr_fld_s;
  686. } ii_illr_u_t;
  687. #else
  688. typedef union ii_illr_u {
  689. bdrkreg_t ii_illr_regval;
  690. struct  {
  691. bdrkreg_t i_rsvd                    : 32;
  692. bdrkreg_t i_cb_cnt                  : 16;
  693. bdrkreg_t i_sn_cnt                  : 16;
  694. } ii_illr_fld_s;
  695. } ii_illr_u_t;
  696. #endif
  697. /************************************************************************
  698.  *                                                                      *
  699.  * Description:  All II-detected non-BTE error interrupts are           *
  700.  * specified via this register.                                         *
  701.  * NOTE: The PI interrupt register address is hardcoded in the II. If   *
  702.  * PI_ID==0, then the II sends an interrupt request (Duplonet PWRI      *
  703.  * packet) to address offset 0x0180_0090 within the local register      *
  704.  * address space of PI0 on the node specified by the NODE field. If     *
  705.  * PI_ID==1, then the II sends the interrupt request to address         *
  706.  * offset 0x01A0_0090 within the local register address space of PI1    *
  707.  * on the node specified by the NODE field.                             *
  708.  *                                                                      *
  709.  ************************************************************************/
  710. #ifdef LITTLE_ENDIAN
  711. typedef union ii_iidsr_u {
  712. bdrkreg_t ii_iidsr_regval;
  713. struct  {
  714. bdrkreg_t i_level                   :  7;
  715. bdrkreg_t i_rsvd_4   :  1;
  716. bdrkreg_t       i_pi_id                   :      1;
  717. bdrkreg_t i_node   :  8;
  718. bdrkreg_t       i_rsvd_3                  :      7;
  719. bdrkreg_t i_enable   :  1;
  720. bdrkreg_t i_rsvd_2   :  3;
  721. bdrkreg_t i_int_sent   :  1;
  722. bdrkreg_t       i_rsvd_1                  :      3;
  723. bdrkreg_t i_pi0_forward_int   :  1;
  724. bdrkreg_t i_pi1_forward_int   :  1;
  725. bdrkreg_t i_rsvd   : 30;
  726. } ii_iidsr_fld_s;
  727. } ii_iidsr_u_t;
  728. #else
  729. typedef union ii_iidsr_u {
  730. bdrkreg_t ii_iidsr_regval;
  731. struct {
  732. bdrkreg_t i_rsvd   : 30;
  733. bdrkreg_t i_pi1_forward_int   :  1;
  734. bdrkreg_t i_pi0_forward_int   :  1;
  735. bdrkreg_t i_rsvd_1   :  3;
  736. bdrkreg_t i_int_sent   :  1;
  737. bdrkreg_t i_rsvd_2   :  3;
  738. bdrkreg_t i_enable   :  1;
  739. bdrkreg_t i_rsvd_3   :  7;
  740. bdrkreg_t i_node   :  8;
  741. bdrkreg_t i_pi_id   :  1;
  742. bdrkreg_t i_rsvd_4   :  1;
  743. bdrkreg_t i_level   :  7;
  744. } ii_iidsr_fld_s;
  745. } ii_iidsr_u_t;
  746. #endif
  747. /************************************************************************
  748.  *                                                                      *
  749.  *  There are two instances of this register. This register is used     *
  750.  * for matching up the incoming responses from the graphics widget to   *
  751.  * the processor that initiated the graphics operation. The             *
  752.  * write-responses are converted to graphics credits and returned to    *
  753.  * the processor so that the processor interface can manage the flow    *
  754.  * control.                                                             *
  755.  *                                                                      *
  756.  ************************************************************************/
  757. #ifdef LITTLE_ENDIAN
  758. typedef union ii_igfx0_u {
  759. bdrkreg_t ii_igfx0_regval;
  760. struct {
  761. bdrkreg_t i_w_num   :  4;
  762. bdrkreg_t       i_pi_id                   :      1;
  763. bdrkreg_t i_n_num   :  8;
  764. bdrkreg_t       i_rsvd_1                  :      3;
  765. bdrkreg_t       i_p_num                   :      1;
  766. bdrkreg_t       i_rsvd                    :     47;
  767. } ii_igfx0_fld_s;
  768. } ii_igfx0_u_t;
  769. #else
  770. typedef union ii_igfx0_u {
  771. bdrkreg_t ii_igfx0_regval;
  772. struct  {
  773. bdrkreg_t i_rsvd                    : 47;
  774. bdrkreg_t i_p_num                   :  1;
  775. bdrkreg_t i_rsvd_1                  :  3;
  776. bdrkreg_t i_n_num                   :  8;
  777. bdrkreg_t i_pi_id                   :  1;
  778. bdrkreg_t i_w_num                   :  4;
  779. } ii_igfx0_fld_s;
  780. } ii_igfx0_u_t;
  781. #endif
  782. /************************************************************************
  783.  *                                                                      *
  784.  *  There are two instances of this register. This register is used     *
  785.  * for matching up the incoming responses from the graphics widget to   *
  786.  * the processor that initiated the graphics operation. The             *
  787.  * write-responses are converted to graphics credits and returned to    *
  788.  * the processor so that the processor interface can manage the flow    *
  789.  * control.                                                             *
  790.  *                                                                      *
  791.  ************************************************************************/
  792. #ifdef LITTLE_ENDIAN
  793. typedef union ii_igfx1_u {
  794. bdrkreg_t ii_igfx1_regval;
  795. struct  {
  796. bdrkreg_t i_w_num                   :  4;
  797. bdrkreg_t i_pi_id   :  1;
  798. bdrkreg_t i_n_num   :  8;
  799. bdrkreg_t i_rsvd_1   :  3;
  800. bdrkreg_t i_p_num   :  1;
  801. bdrkreg_t i_rsvd   : 47;
  802. } ii_igfx1_fld_s;
  803. } ii_igfx1_u_t;
  804. #else
  805. typedef union ii_igfx1_u {
  806. bdrkreg_t ii_igfx1_regval;
  807. struct {
  808. bdrkreg_t i_rsvd   : 47;
  809. bdrkreg_t i_p_num   :  1;
  810. bdrkreg_t i_rsvd_1   :  3;
  811. bdrkreg_t i_n_num   :  8;
  812. bdrkreg_t i_pi_id   :  1;
  813. bdrkreg_t i_w_num   :  4;
  814. } ii_igfx1_fld_s;
  815. } ii_igfx1_u_t;
  816. #endif
  817. /************************************************************************
  818.  *                                                                      *
  819.  *  There are two instances of this registers. These registers are      *
  820.  * used as scratch registers for software use.                          *
  821.  *                                                                      *
  822.  ************************************************************************/
  823. typedef union ii_iscr0_u {
  824. bdrkreg_t ii_iscr0_regval;
  825. struct  {
  826. bdrkreg_t i_scratch                 : 64;
  827. } ii_iscr0_fld_s;
  828. } ii_iscr0_u_t;
  829. /************************************************************************
  830.  *                                                                      *
  831.  *  There are two instances of this registers. These registers are      *
  832.  * used as scratch registers for software use.                          *
  833.  *                                                                      *
  834.  ************************************************************************/
  835. typedef union ii_iscr1_u {
  836. bdrkreg_t ii_iscr1_regval;
  837. struct  {
  838. bdrkreg_t i_scratch                 : 64;
  839. } ii_iscr1_fld_s;
  840. } ii_iscr1_u_t;
  841. /************************************************************************
  842.  *                                                                      *
  843.  * Description:  There are seven instances of translation table entry   *
  844.  * registers. Each register maps a Bedrock Big Window to a 48-bit       *
  845.  * address on Crosstalk.                                                *
  846.  * For M-mode (128 nodes, 8 GBytes/node), SysAD[31:29] (Big Window      *
  847.  * number) are used to select one of these 7 registers. The Widget      *
  848.  * number field is then derived from the W_NUM field for synthesizing   *
  849.  * a Crosstalk packet. The 5 bits of OFFSET are concatenated with       *
  850.  * SysAD[28:0] to form Crosstalk[33:0]. The upper Crosstalk[47:34]      *
  851.  * are padded with zeros. Although the maximum Crosstalk space          *
  852.  * addressable by the Bedrock is thus the lower 16 GBytes per widget    *
  853.  * (M-mode), however only <SUP >7</SUP>/<SUB >32nds</SUB> of this       *
  854.  * space can be accessed.                                               *
  855.  * For the N-mode (256 nodes, 4 GBytes/node), SysAD[30:28] (Big         *
  856.  * Window number) are used to select one of these 7 registers. The      *
  857.  * Widget number field is then derived from the W_NUM field for         *
  858.  * synthesizing a Crosstalk packet. The 5 bits of OFFSET are            *
  859.  * concatenated with SysAD[27:0] to form Crosstalk[33:0]. The IOSP      *
  860.  * field is used as Crosstalk[47], and remainder of the Crosstalk       *
  861.  * address bits (Crosstalk[46:34]) are always zero. While the maximum   *
  862.  * Crosstalk space addressable by the Bedrock is thus the lower         *
  863.  * 8-GBytes per widget (N-mode), only <SUP >7</SUP>/<SUB >32nds</SUB>   *
  864.  * of this space can be accessed.                                       *
  865.  *                                                                      *
  866.  ************************************************************************/
  867. #ifdef LITTLE_ENDIAN
  868. typedef union ii_itte1_u {
  869. bdrkreg_t ii_itte1_regval;
  870. struct  {
  871. bdrkreg_t i_offset                  :  5;
  872. bdrkreg_t i_rsvd_1   :  3;
  873. bdrkreg_t i_w_num   :  4;
  874. bdrkreg_t i_iosp   :  1;
  875. bdrkreg_t i_rsvd   : 51;
  876. } ii_itte1_fld_s;
  877. } ii_itte1_u_t;
  878. #else
  879. typedef union ii_itte1_u {
  880. bdrkreg_t ii_itte1_regval;
  881. struct {
  882. bdrkreg_t i_rsvd   : 51;
  883. bdrkreg_t i_iosp   :  1;
  884. bdrkreg_t i_w_num   :  4;
  885. bdrkreg_t i_rsvd_1   :  3;
  886. bdrkreg_t i_offset   :  5;
  887. } ii_itte1_fld_s;
  888. } ii_itte1_u_t;
  889. #endif
  890. /************************************************************************
  891.  *                                                                      *
  892.  * Description:  There are seven instances of translation table entry   *
  893.  * registers. Each register maps a Bedrock Big Window to a 48-bit       *
  894.  * address on Crosstalk.                                                *
  895.  * For M-mode (128 nodes, 8 GBytes/node), SysAD[31:29] (Big Window      *
  896.  * number) are used to select one of these 7 registers. The Widget      *
  897.  * number field is then derived from the W_NUM field for synthesizing   *
  898.  * a Crosstalk packet. The 5 bits of OFFSET are concatenated with       *
  899.  * SysAD[28:0] to form Crosstalk[33:0]. The upper Crosstalk[47:34]      *
  900.  * are padded with zeros. Although the maximum Crosstalk space          *
  901.  * addressable by the Bedrock is thus the lower 16 GBytes per widget    *
  902.  * (M-mode), however only <SUP >7</SUP>/<SUB >32nds</SUB> of this       *
  903.  * space can be accessed.                                               *
  904.  * For the N-mode (256 nodes, 4 GBytes/node), SysAD[30:28] (Big         *
  905.  * Window number) are used to select one of these 7 registers. The      *
  906.  * Widget number field is then derived from the W_NUM field for         *
  907.  * synthesizing a Crosstalk packet. The 5 bits of OFFSET are            *
  908.  * concatenated with SysAD[27:0] to form Crosstalk[33:0]. The IOSP      *
  909.  * field is used as Crosstalk[47], and remainder of the Crosstalk       *
  910.  * address bits (Crosstalk[46:34]) are always zero. While the maximum   *
  911.  * Crosstalk space addressable by the Bedrock is thus the lower         *
  912.  * 8-GBytes per widget (N-mode), only <SUP >7</SUP>/<SUB >32nds</SUB>   *
  913.  * of this space can be accessed.                                       *
  914.  *                                                                      *
  915.  ************************************************************************/
  916. #ifdef LITTLE_ENDIAN
  917. typedef union ii_itte2_u {
  918. bdrkreg_t ii_itte2_regval;
  919. struct {
  920. bdrkreg_t i_offset   :  5;
  921. bdrkreg_t i_rsvd_1   :  3;
  922. bdrkreg_t i_w_num   :  4;
  923. bdrkreg_t i_iosp   :  1;
  924. bdrkreg_t       i_rsvd                    :     51;
  925. } ii_itte2_fld_s;
  926. } ii_itte2_u_t;
  927. #else
  928. typedef union ii_itte2_u {
  929. bdrkreg_t ii_itte2_regval;
  930. struct  {
  931. bdrkreg_t i_rsvd                    : 51;
  932. bdrkreg_t i_iosp                    :  1;
  933. bdrkreg_t i_w_num                   :  4;
  934. bdrkreg_t i_rsvd_1                  :  3;
  935. bdrkreg_t i_offset                  :  5;
  936. } ii_itte2_fld_s;
  937. } ii_itte2_u_t;
  938. #endif
  939. /************************************************************************
  940.  *                                                                      *
  941.  * Description:  There are seven instances of translation table entry   *
  942.  * registers. Each register maps a Bedrock Big Window to a 48-bit       *
  943.  * address on Crosstalk.                                                *
  944.  * For M-mode (128 nodes, 8 GBytes/node), SysAD[31:29] (Big Window      *
  945.  * number) are used to select one of these 7 registers. The Widget      *
  946.  * number field is then derived from the W_NUM field for synthesizing   *
  947.  * a Crosstalk packet. The 5 bits of OFFSET are concatenated with       *
  948.  * SysAD[28:0] to form Crosstalk[33:0]. The upper Crosstalk[47:34]      *
  949.  * are padded with zeros. Although the maximum Crosstalk space          *
  950.  * addressable by the Bedrock is thus the lower 16 GBytes per widget    *
  951.  * (M-mode), however only <SUP >7</SUP>/<SUB >32nds</SUB> of this       *
  952.  * space can be accessed.                                               *
  953.  * For the N-mode (256 nodes, 4 GBytes/node), SysAD[30:28] (Big         *
  954.  * Window number) are used to select one of these 7 registers. The      *
  955.  * Widget number field is then derived from the W_NUM field for         *
  956.  * synthesizing a Crosstalk packet. The 5 bits of OFFSET are            *
  957.  * concatenated with SysAD[27:0] to form Crosstalk[33:0]. The IOSP      *
  958.  * field is used as Crosstalk[47], and remainder of the Crosstalk       *
  959.  * address bits (Crosstalk[46:34]) are always zero. While the maximum   *
  960.  * Crosstalk space addressable by the Bedrock is thus the lower         *
  961.  * 8-GBytes per widget (N-mode), only <SUP >7</SUP>/<SUB >32nds</SUB>   *
  962.  * of this space can be accessed.                                       *
  963.  *                                                                      *
  964.  ************************************************************************/
  965. #ifdef LITTLE_ENDIAN
  966. typedef union ii_itte3_u {
  967. bdrkreg_t ii_itte3_regval;
  968. struct  {
  969. bdrkreg_t i_offset                  :  5;
  970. bdrkreg_t       i_rsvd_1                  :      3;
  971. bdrkreg_t       i_w_num                   :      4;
  972. bdrkreg_t       i_iosp                    :      1;
  973. bdrkreg_t       i_rsvd                    :     51;
  974. } ii_itte3_fld_s;
  975. } ii_itte3_u_t;
  976. #else
  977. typedef union ii_itte3_u {
  978. bdrkreg_t ii_itte3_regval;
  979. struct {
  980. bdrkreg_t i_rsvd   : 51;
  981. bdrkreg_t i_iosp   :  1;
  982. bdrkreg_t i_w_num   :  4;
  983. bdrkreg_t i_rsvd_1   :  3;
  984. bdrkreg_t i_offset   :  5;
  985. } ii_itte3_fld_s;
  986. } ii_itte3_u_t;
  987. #endif
  988. /************************************************************************
  989.  *                                                                      *
  990.  * Description:  There are seven instances of translation table entry   *
  991.  * registers. Each register maps a Bedrock Big Window to a 48-bit       *
  992.  * address on Crosstalk.                                                *
  993.  * For M-mode (128 nodes, 8 GBytes/node), SysAD[31:29] (Big Window      *
  994.  * number) are used to select one of these 7 registers. The Widget      *
  995.  * number field is then derived from the W_NUM field for synthesizing   *
  996.  * a Crosstalk packet. The 5 bits of OFFSET are concatenated with       *
  997.  * SysAD[28:0] to form Crosstalk[33:0]. The upper Crosstalk[47:34]      *
  998.  * are padded with zeros. Although the maximum Crosstalk space          *
  999.  * addressable by the Bedrock is thus the lower 16 GBytes per widget    *
  1000.  * (M-mode), however only <SUP >7</SUP>/<SUB >32nds</SUB> of this       *
  1001.  * space can be accessed.                                               *
  1002.  * For the N-mode (256 nodes, 4 GBytes/node), SysAD[30:28] (Big         *
  1003.  * Window number) are used to select one of these 7 registers. The      *
  1004.  * Widget number field is then derived from the W_NUM field for         *
  1005.  * synthesizing a Crosstalk packet. The 5 bits of OFFSET are            *
  1006.  * concatenated with SysAD[27:0] to form Crosstalk[33:0]. The IOSP      *
  1007.  * field is used as Crosstalk[47], and remainder of the Crosstalk       *
  1008.  * address bits (Crosstalk[46:34]) are always zero. While the maximum   *
  1009.  * Crosstalk space addressable by the Bedrock is thus the lower         *
  1010.  * 8-GBytes per widget (N-mode), only <SUP >7</SUP>/<SUB >32nds</SUB>   *
  1011.  * of this space can be accessed.                                       *
  1012.  *                                                                      *
  1013.  ************************************************************************/
  1014. #ifdef LITTLE_ENDIAN
  1015. typedef union ii_itte4_u {
  1016. bdrkreg_t ii_itte4_regval;
  1017. struct  {
  1018. bdrkreg_t i_offset                  :  5;
  1019. bdrkreg_t i_rsvd_1   :  3;
  1020. bdrkreg_t       i_w_num                   :      4;
  1021. bdrkreg_t       i_iosp                    :      1;
  1022. bdrkreg_t       i_rsvd                    :     51;
  1023. } ii_itte4_fld_s;
  1024. } ii_itte4_u_t;
  1025. #else
  1026. typedef union ii_itte4_u {
  1027. bdrkreg_t ii_itte4_regval;
  1028. struct {
  1029. bdrkreg_t i_rsvd   : 51;
  1030. bdrkreg_t i_iosp   :  1;
  1031. bdrkreg_t i_w_num   :  4;
  1032. bdrkreg_t i_rsvd_1   :  3;
  1033. bdrkreg_t i_offset   :  5;
  1034. } ii_itte4_fld_s;
  1035. } ii_itte4_u_t;
  1036. #endif
  1037. /************************************************************************
  1038.  *                                                                      *
  1039.  * Description:  There are seven instances of translation table entry   *
  1040.  * registers. Each register maps a Bedrock Big Window to a 48-bit       *
  1041.  * address on Crosstalk.                                                *
  1042.  * For M-mode (128 nodes, 8 GBytes/node), SysAD[31:29] (Big Window      *
  1043.  * number) are used to select one of these 7 registers. The Widget      *
  1044.  * number field is then derived from the W_NUM field for synthesizing   *
  1045.  * a Crosstalk packet. The 5 bits of OFFSET are concatenated with       *
  1046.  * SysAD[28:0] to form Crosstalk[33:0]. The upper Crosstalk[47:34]      *
  1047.  * are padded with zeros. Although the maximum Crosstalk space          *
  1048.  * addressable by the Bedrock is thus the lower 16 GBytes per widget    *
  1049.  * (M-mode), however only <SUP >7</SUP>/<SUB >32nds</SUB> of this       *
  1050.  * space can be accessed.                                               *
  1051.  * For the N-mode (256 nodes, 4 GBytes/node), SysAD[30:28] (Big         *
  1052.  * Window number) are used to select one of these 7 registers. The      *
  1053.  * Widget number field is then derived from the W_NUM field for         *
  1054.  * synthesizing a Crosstalk packet. The 5 bits of OFFSET are            *
  1055.  * concatenated with SysAD[27:0] to form Crosstalk[33:0]. The IOSP      *
  1056.  * field is used as Crosstalk[47], and remainder of the Crosstalk       *
  1057.  * address bits (Crosstalk[46:34]) are always zero. While the maximum   *
  1058.  * Crosstalk space addressable by the Bedrock is thus the lower         *
  1059.  * 8-GBytes per widget (N-mode), only <SUP >7</SUP>/<SUB >32nds</SUB>   *
  1060.  * of this space can be accessed.                                       *
  1061.  *                                                                      *
  1062.  ************************************************************************/
  1063. #ifdef LITTLE_ENDIAN
  1064. typedef union ii_itte5_u {
  1065. bdrkreg_t ii_itte5_regval;
  1066. struct  {
  1067. bdrkreg_t i_offset                  :  5;
  1068. bdrkreg_t       i_rsvd_1                  :      3;
  1069. bdrkreg_t       i_w_num                   :      4;
  1070. bdrkreg_t       i_iosp                    :      1;
  1071. bdrkreg_t       i_rsvd                    :     51;
  1072. } ii_itte5_fld_s;
  1073. } ii_itte5_u_t;
  1074. #else
  1075. typedef union ii_itte5_u {
  1076. bdrkreg_t ii_itte5_regval;
  1077. struct {
  1078. bdrkreg_t i_rsvd   : 51;
  1079. bdrkreg_t i_iosp   :  1;
  1080. bdrkreg_t i_w_num   :  4;
  1081. bdrkreg_t i_rsvd_1   :  3;
  1082. bdrkreg_t i_offset   :  5;
  1083. } ii_itte5_fld_s;
  1084. } ii_itte5_u_t;
  1085. #endif
  1086. /************************************************************************
  1087.  *                                                                      *
  1088.  * Description:  There are seven instances of translation table entry   *
  1089.  * registers. Each register maps a Bedrock Big Window to a 48-bit       *
  1090.  * address on Crosstalk.                                                *
  1091.  * For M-mode (128 nodes, 8 GBytes/node), SysAD[31:29] (Big Window      *
  1092.  * number) are used to select one of these 7 registers. The Widget      *
  1093.  * number field is then derived from the W_NUM field for synthesizing   *
  1094.  * a Crosstalk packet. The 5 bits of OFFSET are concatenated with       *
  1095.  * SysAD[28:0] to form Crosstalk[33:0]. The upper Crosstalk[47:34]      *
  1096.  * are padded with zeros. Although the maximum Crosstalk space          *
  1097.  * addressable by the Bedrock is thus the lower 16 GBytes per widget    *
  1098.  * (M-mode), however only <SUP >7</SUP>/<SUB >32nds</SUB> of this       *
  1099.  * space can be accessed.                                               *
  1100.  * For the N-mode (256 nodes, 4 GBytes/node), SysAD[30:28] (Big         *
  1101.  * Window number) are used to select one of these 7 registers. The      *
  1102.  * Widget number field is then derived from the W_NUM field for         *
  1103.  * synthesizing a Crosstalk packet. The 5 bits of OFFSET are            *
  1104.  * concatenated with SysAD[27:0] to form Crosstalk[33:0]. The IOSP      *
  1105.  * field is used as Crosstalk[47], and remainder of the Crosstalk       *
  1106.  * address bits (Crosstalk[46:34]) are always zero. While the maximum   *
  1107.  * Crosstalk space addressable by the Bedrock is thus the lower         *
  1108.  * 8-GBytes per widget (N-mode), only <SUP >7</SUP>/<SUB >32nds</SUB>   *
  1109.  * of this space can be accessed.                                       *
  1110.  *                                                                      *
  1111.  ************************************************************************/
  1112. #ifdef LITTLE_ENDIAN
  1113. typedef union ii_itte6_u {
  1114. bdrkreg_t ii_itte6_regval;
  1115. struct  {
  1116. bdrkreg_t i_offset                  :  5;
  1117. bdrkreg_t       i_rsvd_1                  :      3;
  1118. bdrkreg_t       i_w_num                   :      4;
  1119. bdrkreg_t       i_iosp                    :      1;
  1120. bdrkreg_t       i_rsvd                    :     51;
  1121. } ii_itte6_fld_s;
  1122. } ii_itte6_u_t;
  1123. #else
  1124. typedef union ii_itte6_u {
  1125. bdrkreg_t ii_itte6_regval;
  1126. struct {
  1127. bdrkreg_t i_rsvd   : 51;
  1128. bdrkreg_t i_iosp   :  1;
  1129. bdrkreg_t i_w_num   :  4;
  1130. bdrkreg_t i_rsvd_1   :  3;
  1131. bdrkreg_t i_offset   :  5;
  1132. } ii_itte6_fld_s;
  1133. } ii_itte6_u_t;
  1134. #endif
  1135. /************************************************************************
  1136.  *                                                                      *
  1137.  * Description:  There are seven instances of translation table entry   *
  1138.  * registers. Each register maps a Bedrock Big Window to a 48-bit       *
  1139.  * address on Crosstalk.                                                *
  1140.  * For M-mode (128 nodes, 8 GBytes/node), SysAD[31:29] (Big Window      *
  1141.  * number) are used to select one of these 7 registers. The Widget      *
  1142.  * number field is then derived from the W_NUM field for synthesizing   *
  1143.  * a Crosstalk packet. The 5 bits of OFFSET are concatenated with       *
  1144.  * SysAD[28:0] to form Crosstalk[33:0]. The upper Crosstalk[47:34]      *
  1145.  * are padded with zeros. Although the maximum Crosstalk space          *
  1146.  * addressable by the Bedrock is thus the lower 16 GBytes per widget    *
  1147.  * (M-mode), however only <SUP >7</SUP>/<SUB >32nds</SUB> of this       *
  1148.  * space can be accessed.                                               *
  1149.  * For the N-mode (256 nodes, 4 GBytes/node), SysAD[30:28] (Big         *
  1150.  * Window number) are used to select one of these 7 registers. The      *
  1151.  * Widget number field is then derived from the W_NUM field for         *
  1152.  * synthesizing a Crosstalk packet. The 5 bits of OFFSET are            *
  1153.  * concatenated with SysAD[27:0] to form Crosstalk[33:0]. The IOSP      *
  1154.  * field is used as Crosstalk[47], and remainder of the Crosstalk       *
  1155.  * address bits (Crosstalk[46:34]) are always zero. While the maximum   *
  1156.  * Crosstalk space addressable by the Bedrock is thus the lower         *
  1157.  * 8-GBytes per widget (N-mode), only <SUP >7</SUP>/<SUB >32nds</SUB>   *
  1158.  * of this space can be accessed.                                       *
  1159.  *                                                                      *
  1160.  ************************************************************************/
  1161. #ifdef LITTLE_ENDIAN
  1162. typedef union ii_itte7_u {
  1163. bdrkreg_t ii_itte7_regval;
  1164. struct  {
  1165. bdrkreg_t i_offset                  :  5;
  1166. bdrkreg_t i_rsvd_1   :  3;
  1167. bdrkreg_t       i_w_num                   :      4;
  1168. bdrkreg_t       i_iosp                    :      1;
  1169. bdrkreg_t       i_rsvd                    :     51;
  1170. } ii_itte7_fld_s;
  1171. } ii_itte7_u_t;
  1172. #else
  1173. typedef union ii_itte7_u {
  1174. bdrkreg_t ii_itte7_regval;
  1175. struct {
  1176. bdrkreg_t i_rsvd   : 51;
  1177. bdrkreg_t i_iosp   :  1;
  1178. bdrkreg_t i_w_num   :  4;
  1179. bdrkreg_t i_rsvd_1   :  3;
  1180. bdrkreg_t i_offset   :  5;
  1181. } ii_itte7_fld_s;
  1182. } ii_itte7_u_t;
  1183. #endif
  1184. /************************************************************************
  1185.  *                                                                      *
  1186.  * Description:  There are 9 instances of this register, one per        *
  1187.  * actual widget in this implementation of Bedrock and Crossbow.        *
  1188.  * Note: Crossbow only has ports for Widgets 8 through F, widget 0      *
  1189.  * refers to Crossbow's internal space.                                 *
  1190.  * This register contains the state elements per widget that are        *
  1191.  * necessary to manage the PIO flow control on Crosstalk and on the     *
  1192.  * Router Network. See the PIO Flow Control chapter for a complete      *
  1193.  * description of this register                                         *
  1194.  * The SPUR_WR bit requires some explanation. When this register is     *
  1195.  * written, the new value of the C field is captured in an internal     *
  1196.  * register so the hardware can remember what the programmer wrote      *
  1197.  * into the credit counter. The SPUR_WR bit sets whenever the C field   *
  1198.  * increments above this stored value, which indicates that there       *
  1199.  * have been more responses received than requests sent. The SPUR_WR    *
  1200.  * bit cannot be cleared until a value is written to the IPRBx          *
  1201.  * register; the write will correct the C field and capture its new     *
  1202.  * value in the internal register. Even if IECLR[E_PRB_x] is set, the   *
  1203.  * SPUR_WR bit will persist if IPRBx hasn't yet been written.           *
  1204.  * .                                                                    *
  1205.  *                                                                      *
  1206.  ************************************************************************/
  1207. #ifdef LITTLE_ENDIAN
  1208. typedef union ii_iprb0_u {
  1209. bdrkreg_t ii_iprb0_regval;
  1210. struct  {
  1211. bdrkreg_t i_c                       :  8;
  1212. bdrkreg_t i_na   : 14;
  1213. bdrkreg_t       i_rsvd_2                  :      2;
  1214. bdrkreg_t i_nb   : 14;
  1215. bdrkreg_t i_rsvd_1   :  2;
  1216. bdrkreg_t i_m   :  2;
  1217. bdrkreg_t i_f   :  1;
  1218. bdrkreg_t i_of_cnt   :  5;
  1219. bdrkreg_t i_error   :  1;
  1220. bdrkreg_t i_rd_to   :  1;
  1221. bdrkreg_t i_spur_wr   :  1;
  1222. bdrkreg_t i_spur_rd   :  1;
  1223. bdrkreg_t i_rsvd   : 11;
  1224. bdrkreg_t i_mult_err   :  1;
  1225. } ii_iprb0_fld_s;
  1226. } ii_iprb0_u_t;
  1227. #else
  1228. typedef union ii_iprb0_u {
  1229. bdrkreg_t ii_iprb0_regval;
  1230. struct {
  1231. bdrkreg_t i_mult_err   :  1;
  1232. bdrkreg_t i_rsvd   : 11;
  1233. bdrkreg_t i_spur_rd   :  1;
  1234. bdrkreg_t i_spur_wr   :  1;
  1235. bdrkreg_t i_rd_to   :  1;
  1236. bdrkreg_t i_error   :  1;
  1237. bdrkreg_t i_of_cnt   :  5;
  1238. bdrkreg_t i_f   :  1;
  1239. bdrkreg_t i_m   :  2;
  1240. bdrkreg_t i_rsvd_1   :  2;
  1241. bdrkreg_t i_nb   : 14;
  1242. bdrkreg_t i_rsvd_2   :  2;
  1243. bdrkreg_t i_na   : 14;
  1244. bdrkreg_t i_c   :  8;
  1245. } ii_iprb0_fld_s;
  1246. } ii_iprb0_u_t;
  1247. #endif
  1248. /************************************************************************
  1249.  *                                                                      *
  1250.  * Description:  There are 9 instances of this register, one per        *
  1251.  * actual widget in this implementation of Bedrock and Crossbow.        *
  1252.  * Note: Crossbow only has ports for Widgets 8 through F, widget 0      *
  1253.  * refers to Crossbow's internal space.                                 *
  1254.  * This register contains the state elements per widget that are        *
  1255.  * necessary to manage the PIO flow control on Crosstalk and on the     *
  1256.  * Router Network. See the PIO Flow Control chapter for a complete      *
  1257.  * description of this register                                         *
  1258.  * The SPUR_WR bit requires some explanation. When this register is     *
  1259.  * written, the new value of the C field is captured in an internal     *
  1260.  * register so the hardware can remember what the programmer wrote      *
  1261.  * into the credit counter. The SPUR_WR bit sets whenever the C field   *
  1262.  * increments above this stored value, which indicates that there       *
  1263.  * have been more responses received than requests sent. The SPUR_WR    *
  1264.  * bit cannot be cleared until a value is written to the IPRBx          *
  1265.  * register; the write will correct the C field and capture its new     *
  1266.  * value in the internal register. Even if IECLR[E_PRB_x] is set, the   *
  1267.  * SPUR_WR bit will persist if IPRBx hasn't yet been written.           *
  1268.  * .                                                                    *
  1269.  *                                                                      *
  1270.  ************************************************************************/
  1271. #ifdef LITTLE_ENDIAN
  1272. typedef union ii_iprb8_u {
  1273. bdrkreg_t ii_iprb8_regval;
  1274. struct  {
  1275. bdrkreg_t i_c                       :  8;
  1276. bdrkreg_t i_na   : 14;
  1277. bdrkreg_t       i_rsvd_2                  :      2;
  1278. bdrkreg_t i_nb   : 14;
  1279. bdrkreg_t       i_rsvd_1                  :      2;
  1280. bdrkreg_t       i_m                       :      2;
  1281. bdrkreg_t       i_f                       :      1;
  1282. bdrkreg_t       i_of_cnt                  :      5;
  1283. bdrkreg_t       i_error                   :      1;
  1284. bdrkreg_t       i_rd_to                   :      1;
  1285. bdrkreg_t       i_spur_wr                 :      1;
  1286. bdrkreg_t i_spur_rd   :  1;
  1287. bdrkreg_t       i_rsvd                    :     11;
  1288. bdrkreg_t i_mult_err   :  1;
  1289. } ii_iprb8_fld_s;
  1290. } ii_iprb8_u_t;
  1291. #else
  1292. typedef union ii_iprb8_u {
  1293. bdrkreg_t ii_iprb8_regval;
  1294. struct {
  1295. bdrkreg_t i_mult_err   :  1;
  1296. bdrkreg_t i_rsvd   : 11;
  1297. bdrkreg_t i_spur_rd   :  1;
  1298. bdrkreg_t i_spur_wr   :  1;
  1299. bdrkreg_t i_rd_to   :  1;
  1300. bdrkreg_t i_error   :  1;
  1301. bdrkreg_t i_of_cnt   :  5;
  1302. bdrkreg_t i_f   :  1;
  1303. bdrkreg_t i_m   :  2;
  1304. bdrkreg_t i_rsvd_1   :  2;
  1305. bdrkreg_t i_nb   : 14;
  1306. bdrkreg_t i_rsvd_2   :  2;
  1307. bdrkreg_t i_na   : 14;
  1308. bdrkreg_t i_c   :  8;
  1309. } ii_iprb8_fld_s;
  1310. } ii_iprb8_u_t;
  1311. #endif
  1312. /************************************************************************
  1313.  *                                                                      *
  1314.  * Description:  There are 9 instances of this register, one per        *
  1315.  * actual widget in this implementation of Bedrock and Crossbow.        *
  1316.  * Note: Crossbow only has ports for Widgets 8 through F, widget 0      *
  1317.  * refers to Crossbow's internal space.                                 *
  1318.  * This register contains the state elements per widget that are        *
  1319.  * necessary to manage the PIO flow control on Crosstalk and on the     *
  1320.  * Router Network. See the PIO Flow Control chapter for a complete      *
  1321.  * description of this register                                         *
  1322.  * The SPUR_WR bit requires some explanation. When this register is     *
  1323.  * written, the new value of the C field is captured in an internal     *
  1324.  * register so the hardware can remember what the programmer wrote      *
  1325.  * into the credit counter. The SPUR_WR bit sets whenever the C field   *
  1326.  * increments above this stored value, which indicates that there       *
  1327.  * have been more responses received than requests sent. The SPUR_WR    *
  1328.  * bit cannot be cleared until a value is written to the IPRBx          *
  1329.  * register; the write will correct the C field and capture its new     *
  1330.  * value in the internal register. Even if IECLR[E_PRB_x] is set, the   *
  1331.  * SPUR_WR bit will persist if IPRBx hasn't yet been written.           *
  1332.  * .                                                                    *
  1333.  *                                                                      *
  1334.  ************************************************************************/
  1335. #ifdef LITTLE_ENDIAN
  1336. typedef union ii_iprb9_u {
  1337. bdrkreg_t ii_iprb9_regval;
  1338. struct {
  1339. bdrkreg_t i_c   :  8;
  1340. bdrkreg_t i_na   : 14;
  1341. bdrkreg_t i_rsvd_2   :  2;
  1342. bdrkreg_t i_nb   : 14;
  1343. bdrkreg_t i_rsvd_1   :  2;
  1344. bdrkreg_t i_m   :  2;
  1345. bdrkreg_t i_f   :  1;
  1346. bdrkreg_t i_of_cnt   :  5;
  1347. bdrkreg_t i_error   :  1;
  1348. bdrkreg_t i_rd_to   :  1;
  1349. bdrkreg_t i_spur_wr   :  1;
  1350. bdrkreg_t i_spur_rd   :  1;
  1351. bdrkreg_t i_rsvd   : 11;
  1352. bdrkreg_t i_mult_err   :  1;
  1353. } ii_iprb9_fld_s;
  1354. } ii_iprb9_u_t;
  1355. #else
  1356. typedef union ii_iprb9_u {
  1357. bdrkreg_t ii_iprb9_regval;
  1358. struct  {
  1359. bdrkreg_t i_mult_err                :  1;
  1360. bdrkreg_t i_rsvd                    : 11;
  1361. bdrkreg_t i_spur_rd                 :  1;
  1362. bdrkreg_t i_spur_wr                 :  1;
  1363. bdrkreg_t i_rd_to                   :  1;
  1364. bdrkreg_t i_error                   :  1;
  1365. bdrkreg_t i_of_cnt                  :  5;
  1366. bdrkreg_t i_f                       :  1;
  1367. bdrkreg_t i_m                       :  2;
  1368. bdrkreg_t i_rsvd_1                  :  2;
  1369. bdrkreg_t i_nb                      : 14;
  1370. bdrkreg_t i_rsvd_2                  :  2;
  1371. bdrkreg_t i_na                      : 14;
  1372. bdrkreg_t i_c                       :  8;
  1373. } ii_iprb9_fld_s;
  1374. } ii_iprb9_u_t;
  1375. #endif
  1376. /************************************************************************
  1377.  *                                                                      *
  1378.  * Description:  There are 9 instances of this register, one per        *
  1379.  * actual widget in this implementation of Bedrock and Crossbow.        *
  1380.  * Note: Crossbow only has ports for Widgets 8 through F, widget 0      *
  1381.  * refers to Crossbow's internal space.                                 *
  1382.  * This register contains the state elements per widget that are        *
  1383.  * necessary to manage the PIO flow control on Crosstalk and on the     *
  1384.  * Router Network. See the PIO Flow Control chapter for a complete      *
  1385.  * description of this register                                         *
  1386.  * The SPUR_WR bit requires some explanation. When this register is     *
  1387.  * written, the new value of the C field is captured in an internal     *
  1388.  * register so the hardware can remember what the programmer wrote      *
  1389.  * into the credit counter. The SPUR_WR bit sets whenever the C field   *
  1390.  * increments above this stored value, which indicates that there       *
  1391.  * have been more responses received than requests sent. The SPUR_WR    *
  1392.  * bit cannot be cleared until a value is written to the IPRBx          *
  1393.  * register; the write will correct the C field and capture its new     *
  1394.  * value in the internal register. Even if IECLR[E_PRB_x] is set, the   *
  1395.  * SPUR_WR bit will persist if IPRBx hasn't yet been written.           *
  1396.  * .                                                                    *
  1397.  *                                                                      *
  1398.  ************************************************************************/
  1399. #ifdef LITTLE_ENDIAN
  1400. typedef union ii_iprba_u {
  1401. bdrkreg_t ii_iprba_regval;
  1402. struct  {
  1403. bdrkreg_t i_c                       :  8;
  1404. bdrkreg_t i_na   : 14;
  1405. bdrkreg_t       i_rsvd_2                  :      2;
  1406. bdrkreg_t i_nb   : 14;
  1407. bdrkreg_t i_rsvd_1   :  2;
  1408. bdrkreg_t i_m   :  2;
  1409. bdrkreg_t i_f   :  1;
  1410. bdrkreg_t i_of_cnt   :  5;
  1411. bdrkreg_t i_error   :  1;
  1412. bdrkreg_t i_rd_to   :  1;
  1413. bdrkreg_t i_spur_wr   :  1;
  1414. bdrkreg_t i_spur_rd   :  1;
  1415. bdrkreg_t i_rsvd   : 11;
  1416. bdrkreg_t i_mult_err   :  1;
  1417. } ii_iprba_fld_s;
  1418. } ii_iprba_u_t;
  1419. #else
  1420. typedef union ii_iprba_u {
  1421. bdrkreg_t ii_iprba_regval;
  1422. struct {
  1423. bdrkreg_t i_mult_err   :  1;
  1424. bdrkreg_t i_rsvd   : 11;
  1425. bdrkreg_t i_spur_rd   :  1;
  1426. bdrkreg_t i_spur_wr   :  1;
  1427. bdrkreg_t i_rd_to   :  1;
  1428. bdrkreg_t i_error   :  1;
  1429. bdrkreg_t i_of_cnt   :  5;
  1430. bdrkreg_t i_f   :  1;
  1431. bdrkreg_t i_m   :  2;
  1432. bdrkreg_t i_rsvd_1   :  2;
  1433. bdrkreg_t i_nb   : 14;
  1434. bdrkreg_t i_rsvd_2   :  2;
  1435. bdrkreg_t i_na   : 14;
  1436. bdrkreg_t i_c   :  8;
  1437. } ii_iprba_fld_s;
  1438. } ii_iprba_u_t;
  1439. #endif
  1440. /************************************************************************
  1441.  *                                                                      *
  1442.  * Description:  There are 9 instances of this register, one per        *
  1443.  * actual widget in this implementation of Bedrock and Crossbow.        *
  1444.  * Note: Crossbow only has ports for Widgets 8 through F, widget 0      *
  1445.  * refers to Crossbow's internal space.                                 *
  1446.  * This register contains the state elements per widget that are        *
  1447.  * necessary to manage the PIO flow control on Crosstalk and on the     *
  1448.  * Router Network. See the PIO Flow Control chapter for a complete      *
  1449.  * description of this register                                         *
  1450.  * The SPUR_WR bit requires some explanation. When this register is     *
  1451.  * written, the new value of the C field is captured in an internal     *
  1452.  * register so the hardware can remember what the programmer wrote      *
  1453.  * into the credit counter. The SPUR_WR bit sets whenever the C field   *
  1454.  * increments above this stored value, which indicates that there       *
  1455.  * have been more responses received than requests sent. The SPUR_WR    *
  1456.  * bit cannot be cleared until a value is written to the IPRBx          *
  1457.  * register; the write will correct the C field and capture its new     *
  1458.  * value in the internal register. Even if IECLR[E_PRB_x] is set, the   *
  1459.  * SPUR_WR bit will persist if IPRBx hasn't yet been written.           *
  1460.  * .                                                                    *
  1461.  *                                                                      *
  1462.  ************************************************************************/
  1463. #ifdef LITTLE_ENDIAN
  1464. typedef union ii_iprbb_u {
  1465. bdrkreg_t ii_iprbb_regval;
  1466. struct {
  1467. bdrkreg_t i_c   :  8;
  1468. bdrkreg_t i_na   : 14;
  1469. bdrkreg_t i_rsvd_2   :  2;
  1470. bdrkreg_t i_nb   : 14;
  1471. bdrkreg_t i_rsvd_1   :  2;
  1472. bdrkreg_t i_m   :  2;
  1473. bdrkreg_t i_f   :  1;
  1474. bdrkreg_t i_of_cnt   :  5;
  1475. bdrkreg_t i_error   :  1;
  1476. bdrkreg_t i_rd_to   :  1;
  1477. bdrkreg_t i_spur_wr   :  1;
  1478. bdrkreg_t i_spur_rd   :  1;
  1479. bdrkreg_t i_rsvd   : 11;
  1480. bdrkreg_t i_mult_err   :  1;
  1481. } ii_iprbb_fld_s;
  1482. } ii_iprbb_u_t;
  1483. #else
  1484. typedef union ii_iprbb_u {
  1485. bdrkreg_t ii_iprbb_regval;
  1486. struct  {
  1487. bdrkreg_t i_mult_err                :  1;
  1488. bdrkreg_t i_rsvd                    : 11;
  1489. bdrkreg_t i_spur_rd                 :  1;
  1490. bdrkreg_t i_spur_wr                 :  1;
  1491. bdrkreg_t i_rd_to                   :  1;
  1492. bdrkreg_t i_error                   :  1;
  1493. bdrkreg_t i_of_cnt                  :  5;
  1494. bdrkreg_t i_f                       :  1;
  1495. bdrkreg_t i_m                       :  2;
  1496. bdrkreg_t i_rsvd_1                  :  2;
  1497. bdrkreg_t i_nb                      : 14;
  1498. bdrkreg_t i_rsvd_2                  :  2;
  1499. bdrkreg_t i_na                      : 14;
  1500. bdrkreg_t i_c                       :  8;
  1501. } ii_iprbb_fld_s;
  1502. } ii_iprbb_u_t;
  1503. #endif
  1504. /************************************************************************
  1505.  *                                                                      *
  1506.  * Description:  There are 9 instances of this register, one per        *
  1507.  * actual widget in this implementation of Bedrock and Crossbow.        *
  1508.  * Note: Crossbow only has ports for Widgets 8 through F, widget 0      *
  1509.  * refers to Crossbow's internal space.                                 *
  1510.  * This register contains the state elements per widget that are        *
  1511.  * necessary to manage the PIO flow control on Crosstalk and on the     *
  1512.  * Router Network. See the PIO Flow Control chapter for a complete      *
  1513.  * description of this register                                         *
  1514.  * The SPUR_WR bit requires some explanation. When this register is     *
  1515.  * written, the new value of the C field is captured in an internal     *
  1516.  * register so the hardware can remember what the programmer wrote      *
  1517.  * into the credit counter. The SPUR_WR bit sets whenever the C field   *
  1518.  * increments above this stored value, which indicates that there       *
  1519.  * have been more responses received than requests sent. The SPUR_WR    *
  1520.  * bit cannot be cleared until a value is written to the IPRBx          *
  1521.  * register; the write will correct the C field and capture its new     *
  1522.  * value in the internal register. Even if IECLR[E_PRB_x] is set, the   *
  1523.  * SPUR_WR bit will persist if IPRBx hasn't yet been written.           *
  1524.  * .                                                                    *
  1525.  *                                                                      *
  1526.  ************************************************************************/
  1527. #ifdef LITTLE_ENDIAN
  1528. typedef union ii_iprbc_u {
  1529. bdrkreg_t ii_iprbc_regval;
  1530. struct {
  1531. bdrkreg_t i_c   :  8;
  1532. bdrkreg_t i_na   : 14;
  1533. bdrkreg_t i_rsvd_2   :  2;
  1534. bdrkreg_t i_nb   : 14;
  1535. bdrkreg_t i_rsvd_1   :  2;
  1536. bdrkreg_t i_m   :  2;
  1537. bdrkreg_t i_f   :  1;
  1538. bdrkreg_t i_of_cnt   :  5;
  1539. bdrkreg_t i_error   :  1;
  1540. bdrkreg_t i_rd_to   :  1;
  1541. bdrkreg_t i_spur_wr   :  1;
  1542. bdrkreg_t i_spur_rd   :  1;
  1543. bdrkreg_t i_rsvd   : 11;
  1544. bdrkreg_t i_mult_err   :  1;
  1545. } ii_iprbc_fld_s;
  1546. } ii_iprbc_u_t;
  1547. #else
  1548. typedef union ii_iprbc_u {
  1549. bdrkreg_t ii_iprbc_regval;
  1550. struct  {
  1551. bdrkreg_t i_mult_err                :  1;
  1552. bdrkreg_t i_rsvd                    : 11;
  1553. bdrkreg_t i_spur_rd                 :  1;
  1554. bdrkreg_t i_spur_wr                 :  1;
  1555. bdrkreg_t i_rd_to                   :  1;
  1556. bdrkreg_t i_error                   :  1;
  1557. bdrkreg_t i_of_cnt                  :  5;
  1558. bdrkreg_t i_f                       :  1;
  1559. bdrkreg_t i_m                       :  2;
  1560. bdrkreg_t i_rsvd_1                  :  2;
  1561. bdrkreg_t i_nb                      : 14;
  1562. bdrkreg_t i_rsvd_2                  :  2;
  1563. bdrkreg_t i_na                      : 14;
  1564. bdrkreg_t i_c                       :  8;
  1565. } ii_iprbc_fld_s;
  1566. } ii_iprbc_u_t;
  1567. #endif
  1568. /************************************************************************
  1569.  *                                                                      *
  1570.  * Description:  There are 9 instances of this register, one per        *
  1571.  * actual widget in this implementation of Bedrock and Crossbow.        *
  1572.  * Note: Crossbow only has ports for Widgets 8 through F, widget 0      *
  1573.  * refers to Crossbow's internal space.                                 *
  1574.  * This register contains the state elements per widget that are        *
  1575.  * necessary to manage the PIO flow control on Crosstalk and on the     *
  1576.  * Router Network. See the PIO Flow Control chapter for a complete      *
  1577.  * description of this register                                         *
  1578.  * The SPUR_WR bit requires some explanation. When this register is     *
  1579.  * written, the new value of the C field is captured in an internal     *
  1580.  * register so the hardware can remember what the programmer wrote      *
  1581.  * into the credit counter. The SPUR_WR bit sets whenever the C field   *
  1582.  * increments above this stored value, which indicates that there       *
  1583.  * have been more responses received than requests sent. The SPUR_WR    *
  1584.  * bit cannot be cleared until a value is written to the IPRBx          *
  1585.  * register; the write will correct the C field and capture its new     *
  1586.  * value in the internal register. Even if IECLR[E_PRB_x] is set, the   *
  1587.  * SPUR_WR bit will persist if IPRBx hasn't yet been written.           *
  1588.  * .                                                                    *
  1589.  *                                                                      *
  1590.  ************************************************************************/
  1591. #ifdef LITTLE_ENDIAN
  1592. typedef union ii_iprbd_u {
  1593. bdrkreg_t ii_iprbd_regval;
  1594. struct {
  1595. bdrkreg_t i_c   :  8;
  1596. bdrkreg_t i_na   : 14;
  1597. bdrkreg_t i_rsvd_2   :  2;
  1598. bdrkreg_t i_nb   : 14;
  1599. bdrkreg_t i_rsvd_1   :  2;
  1600. bdrkreg_t i_m   :  2;
  1601. bdrkreg_t i_f   :  1;
  1602. bdrkreg_t i_of_cnt   :  5;
  1603. bdrkreg_t i_error   :  1;
  1604. bdrkreg_t i_rd_to   :  1;
  1605. bdrkreg_t i_spur_wr   :  1;
  1606. bdrkreg_t i_spur_rd   :  1;
  1607. bdrkreg_t i_rsvd   : 11;
  1608. bdrkreg_t i_mult_err   :  1;
  1609. } ii_iprbd_fld_s;
  1610. } ii_iprbd_u_t;
  1611. #else
  1612. typedef union ii_iprbd_u {
  1613. bdrkreg_t ii_iprbd_regval;
  1614. struct  {
  1615. bdrkreg_t i_mult_err                :  1;
  1616. bdrkreg_t i_rsvd                    : 11;
  1617. bdrkreg_t i_spur_rd                 :  1;
  1618. bdrkreg_t i_spur_wr                 :  1;
  1619. bdrkreg_t i_rd_to                   :  1;
  1620. bdrkreg_t i_error                   :  1;
  1621. bdrkreg_t i_of_cnt                  :  5;
  1622. bdrkreg_t i_f                       :  1;
  1623. bdrkreg_t i_m                       :  2;
  1624. bdrkreg_t i_rsvd_1                  :  2;
  1625. bdrkreg_t i_nb                      : 14;
  1626. bdrkreg_t i_rsvd_2                  :  2;
  1627. bdrkreg_t i_na                      : 14;
  1628. bdrkreg_t i_c                       :  8;
  1629. } ii_iprbd_fld_s;
  1630. } ii_iprbd_u_t;
  1631. #endif
  1632. /************************************************************************
  1633.  *                                                                      *
  1634.  * Description:  There are 9 instances of this register, one per        *
  1635.  * actual widget in this implementation of Bedrock and Crossbow.        *
  1636.  * Note: Crossbow only has ports for Widgets 8 through F, widget 0      *
  1637.  * refers to Crossbow's internal space.                                 *
  1638.  * This register contains the state elements per widget that are        *
  1639.  * necessary to manage the PIO flow control on Crosstalk and on the     *
  1640.  * Router Network. See the PIO Flow Control chapter for a complete      *
  1641.  * description of this register                                         *
  1642.  * The SPUR_WR bit requires some explanation. When this register is     *
  1643.  * written, the new value of the C field is captured in an internal     *
  1644.  * register so the hardware can remember what the programmer wrote      *
  1645.  * into the credit counter. The SPUR_WR bit sets whenever the C field   *
  1646.  * increments above this stored value, which indicates that there       *
  1647.  * have been more responses received than requests sent. The SPUR_WR    *
  1648.  * bit cannot be cleared until a value is written to the IPRBx          *
  1649.  * register; the write will correct the C field and capture its new     *
  1650.  * value in the internal register. Even if IECLR[E_PRB_x] is set, the   *
  1651.  * SPUR_WR bit will persist if IPRBx hasn't yet been written.           *
  1652.  * .                                                                    *
  1653.  *                                                                      *
  1654.  ************************************************************************/
  1655. #ifdef LITTLE_ENDIAN
  1656. typedef union ii_iprbe_u {
  1657. bdrkreg_t ii_iprbe_regval;
  1658. struct {
  1659. bdrkreg_t i_c   :  8;
  1660. bdrkreg_t i_na   : 14;
  1661. bdrkreg_t i_rsvd_2   :  2;
  1662. bdrkreg_t i_nb   : 14;
  1663. bdrkreg_t i_rsvd_1   :  2;
  1664. bdrkreg_t i_m   :  2;
  1665. bdrkreg_t i_f   :  1;
  1666. bdrkreg_t i_of_cnt   :  5;
  1667. bdrkreg_t i_error   :  1;
  1668. bdrkreg_t i_rd_to   :  1;
  1669. bdrkreg_t i_spur_wr   :  1;
  1670. bdrkreg_t i_spur_rd   :  1;
  1671. bdrkreg_t i_rsvd   : 11;
  1672. bdrkreg_t i_mult_err   :  1;
  1673. } ii_iprbe_fld_s;
  1674. } ii_iprbe_u_t;
  1675. #else
  1676. typedef union ii_iprbe_u {
  1677. bdrkreg_t ii_iprbe_regval;
  1678. struct  {
  1679. bdrkreg_t i_mult_err                :  1;
  1680. bdrkreg_t i_rsvd                    : 11;
  1681. bdrkreg_t i_spur_rd                 :  1;
  1682. bdrkreg_t i_spur_wr                 :  1;
  1683. bdrkreg_t i_rd_to                   :  1;
  1684. bdrkreg_t i_error                   :  1;
  1685. bdrkreg_t i_of_cnt                  :  5;
  1686. bdrkreg_t i_f                       :  1;
  1687. bdrkreg_t i_m                       :  2;
  1688. bdrkreg_t i_rsvd_1                  :  2;
  1689. bdrkreg_t i_nb                      : 14;
  1690. bdrkreg_t i_rsvd_2                  :  2;
  1691. bdrkreg_t i_na                      : 14;
  1692. bdrkreg_t i_c                       :  8;
  1693. } ii_iprbe_fld_s;
  1694. } ii_iprbe_u_t;
  1695. #endif
  1696. /************************************************************************
  1697.  *                                                                      *
  1698.  * Description:  There are 9 instances of this register, one per        *
  1699.  * actual widget in this implementation of Bedrock and Crossbow.        *
  1700.  * Note: Crossbow only has ports for Widgets 8 through F, widget 0      *
  1701.  * refers to Crossbow's internal space.                                 *
  1702.  * This register contains the state elements per widget that are        *
  1703.  * necessary to manage the PIO flow control on Crosstalk and on the     *
  1704.  * Router Network. See the PIO Flow Control chapter for a complete      *
  1705.  * description of this register                                         *
  1706.  * The SPUR_WR bit requires some explanation. When this register is     *
  1707.  * written, the new value of the C field is captured in an internal     *
  1708.  * register so the hardware can remember what the programmer wrote      *
  1709.  * into the credit counter. The SPUR_WR bit sets whenever the C field   *
  1710.  * increments above this stored value, which indicates that there       *
  1711.  * have been more responses received than requests sent. The SPUR_WR    *
  1712.  * bit cannot be cleared until a value is written to the IPRBx          *
  1713.  * register; the write will correct the C field and capture its new     *
  1714.  * value in the internal register. Even if IECLR[E_PRB_x] is set, the   *
  1715.  * SPUR_WR bit will persist if IPRBx hasn't yet been written.           *
  1716.  * .                                                                    *
  1717.  *                                                                      *
  1718.  ************************************************************************/
  1719. #ifdef LITTLE_ENDIAN
  1720. typedef union ii_iprbf_u {
  1721.         bdrkreg_t       ii_iprbf_regval;
  1722.         struct  {
  1723.                 bdrkreg_t       i_c                       :      8;
  1724.                 bdrkreg_t       i_na                      :     14;
  1725.                 bdrkreg_t       i_rsvd_2                  :      2;
  1726.                 bdrkreg_t       i_nb                      :     14;
  1727.                 bdrkreg_t       i_rsvd_1                  :      2;
  1728.                 bdrkreg_t       i_m                       :      2;
  1729.                 bdrkreg_t       i_f                       :      1;
  1730.                 bdrkreg_t       i_of_cnt                  :      5;
  1731.                 bdrkreg_t       i_error                   :      1;
  1732.                 bdrkreg_t       i_rd_to                   :      1;
  1733.                 bdrkreg_t       i_spur_wr                 :      1;
  1734.                 bdrkreg_t       i_spur_rd                 :      1;
  1735.                 bdrkreg_t       i_rsvd                    :     11;
  1736.                 bdrkreg_t       i_mult_err                :      1;
  1737.         } ii_iprbe_fld_s;
  1738. } ii_iprbf_u_t;
  1739. #else
  1740. typedef union ii_iprbf_u {
  1741. bdrkreg_t ii_iprbf_regval;