hubxb.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:43k
源码类别:

嵌入式Linux

开发平台:

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 Silicon Graphics, Inc.
  8.  * Copyright (C) 2000 by Colin Ngam
  9.  */
  10. #ifndef _ASM_SN_SN1_HUBXB_H
  11. #define _ASM_SN_SN1_HUBXB_H
  12. /************************************************************************
  13.  *                                                                      *
  14.  *      WARNING!!!  WARNING!!!  WARNING!!!  WARNING!!!  WARNING!!!      *
  15.  *                                                                      *
  16.  * This file is created by an automated script. Any (minimal) changes   *
  17.  * made manually to this  file should be made with care.                *
  18.  *                                                                      *
  19.  *               MAKE ALL ADDITIONS TO THE END OF THIS FILE             *
  20.  *                                                                      *
  21.  ************************************************************************/
  22. #define    XB_PARMS                  0x00700000    /*
  23.                                                     * Controls
  24.                                                     * crossbar-wide
  25.                                                     * parameters.
  26.                                                     */
  27. #define    XB_SLOW_GNT               0x00700008    /*
  28.                                                     * Controls wavefront
  29.                                                     * arbiter grant
  30.                                                     * frequency, used to
  31.                                                     * slow XB grants
  32.                                                     */
  33. #define    XB_SPEW_CONTROL           0x00700010    /*
  34.                                                     * Controls spew
  35.                                                     * settings (debug
  36.                                                     * only).
  37.                                                     */
  38. #define    XB_IOQ_ARB_TRIGGER        0x00700018    /*
  39.                                                     * Controls IOQ
  40.                                                     * trigger level
  41.                                                     */
  42. #define    XB_FIRST_ERROR            0x00700090    /*
  43.                                                     * Records the first
  44.                                                     * crossbar error
  45.                                                     * seen.
  46.                                                     */
  47. #define    XB_POQ0_ERROR             0x00700020    /*
  48.                                                     * POQ0 error
  49.                                                     * register.
  50.                                                     */
  51. #define    XB_PIQ0_ERROR             0x00700028    /*
  52.                                                     * PIQ0 error
  53.                                                     * register.
  54.                                                     */
  55. #define    XB_POQ1_ERROR             0x00700030    /*
  56.                                                     * POQ1 error
  57.                                                     * register.
  58.                                                     */
  59. #define    XB_PIQ1_ERROR             0x00700038    /*
  60.                                                     * PIQ1 error
  61.                                                     * register.
  62.                                                     */
  63. #define    XB_MP0_ERROR              0x00700040    /*
  64.                                                     * MOQ for PI0 error
  65.                                                     * register.
  66.                                                     */
  67. #define    XB_MP1_ERROR              0x00700048    /*
  68.                                                     * MOQ for PI1 error
  69.                                                     * register.
  70.                                                     */
  71. #define    XB_MMQ_ERROR              0x00700050    /*
  72.                                                     * MOQ for misc. (LB,
  73.                                                     * NI, II) error
  74.                                                     * register.
  75.                                                     */
  76. #define    XB_MIQ_ERROR              0x00700058    /*
  77.                                                     * MIQ error register,
  78.                                                     * addtional MIQ
  79.                                                     * errors are logged
  80.                                                     * in MD "Input
  81.                                                     * Error
  82.                                                     * Registers".
  83.                                                     */
  84. #define    XB_NOQ_ERROR              0x00700060    /* NOQ error register.    */
  85. #define    XB_NIQ_ERROR              0x00700068    /* NIQ error register.    */
  86. #define    XB_IOQ_ERROR              0x00700070    /* IOQ error register.    */
  87. #define    XB_IIQ_ERROR              0x00700078    /* IIQ error register.    */
  88. #define    XB_LOQ_ERROR              0x00700080    /* LOQ error register.    */
  89. #define    XB_LIQ_ERROR              0x00700088    /* LIQ error register.    */
  90. #define    XB_DEBUG_DATA_CTL         0x00700098    /*
  91.                                                     * Debug Datapath
  92.                                                     * Select
  93.                                                     */
  94. #define    XB_DEBUG_ARB_CTL          0x007000A0    /*
  95.                                                     * XB master debug
  96.                                                     * control
  97.                                                     */
  98. #define    XB_POQ0_ERROR_CLEAR       0x00700120    /*
  99.                                                     * Clears
  100.                                                     * XB_POQ0_ERROR
  101.                                                     * register.
  102.                                                     */
  103. #define    XB_PIQ0_ERROR_CLEAR       0x00700128    /*
  104.                                                     * Clears
  105.                                                     * XB_PIQ0_ERROR
  106.                                                     * register.
  107.                                                     */
  108. #define    XB_POQ1_ERROR_CLEAR       0x00700130    /*
  109.                                                     * Clears
  110.                                                     * XB_POQ1_ERROR
  111.                                                     * register.
  112.                                                     */
  113. #define    XB_PIQ1_ERROR_CLEAR       0x00700138    /*
  114.                                                     * Clears
  115.                                                     * XB_PIQ1_ERROR
  116.                                                     * register.
  117.                                                     */
  118. #define    XB_MP0_ERROR_CLEAR        0x00700140    /*
  119.                                                     * Clears XB_MP0_ERROR
  120.                                                     * register.
  121.                                                     */
  122. #define    XB_MP1_ERROR_CLEAR        0x00700148    /*
  123.                                                     * Clears XB_MP1_ERROR
  124.                                                     * register.
  125.                                                     */
  126. #define    XB_MMQ_ERROR_CLEAR        0x00700150    /*
  127.                                                     * Clears XB_MMQ_ERROR
  128.                                                     * register.
  129.                                                     */
  130. #define    XB_XM_MIQ_ERROR_CLEAR     0x00700158    /*
  131.                                                     * Clears XB_MIQ_ERROR
  132.                                                     * register
  133.                                                     */
  134. #define    XB_NOQ_ERROR_CLEAR        0x00700160    /*
  135.                                                     * Clears XB_NOQ_ERROR
  136.                                                     * register.
  137.                                                     */
  138. #define    XB_NIQ_ERROR_CLEAR        0x00700168    /*
  139.                                                     * Clears XB_NIQ_ERROR
  140.                                                     * register.
  141.                                                     */
  142. #define    XB_IOQ_ERROR_CLEAR        0x00700170    /*
  143.                                                     * Clears XB_IOQ
  144.                                                     * _ERROR register.
  145.                                                     */
  146. #define    XB_IIQ_ERROR_CLEAR        0x00700178    /*
  147.                                                     * Clears XB_IIQ
  148.                                                     * _ERROR register.
  149.                                                     */
  150. #define    XB_LOQ_ERROR_CLEAR        0x00700180    /*
  151.                                                     * Clears XB_LOQ_ERROR
  152.                                                     * register.
  153.                                                     */
  154. #define    XB_LIQ_ERROR_CLEAR        0x00700188    /*
  155.                                                     * Clears XB_LIQ_ERROR
  156.                                                     * register.
  157.                                                     */
  158. #define    XB_FIRST_ERROR_CLEAR      0x00700190    /*
  159.                                                     * Clears
  160.                                                     * XB_FIRST_ERROR
  161.                                                     * register
  162.                                                     */
  163. #ifdef _LANGUAGE_C
  164. /************************************************************************
  165.  *                                                                      *
  166.  *  Access to parameters which control various aspects of the           *
  167.  * crossbar's operation.                                                *
  168.  *                                                                      *
  169.  ************************************************************************/
  170. #ifdef LITTLE_ENDIAN
  171. typedef union xb_parms_u {
  172. bdrkreg_t xb_parms_regval;
  173. struct  {
  174. bdrkreg_t p_byp_en                  :  1;
  175.                 bdrkreg_t       p_rsrvd_1                 :      3;
  176.                 bdrkreg_t       p_age_wrap                :      8;
  177.                 bdrkreg_t       p_deadlock_to_wrap        :     20;
  178.                 bdrkreg_t       p_tail_to_wrap            :     20;
  179.                 bdrkreg_t       p_rsrvd                   :     12;
  180. } xb_parms_fld_s;
  181. } xb_parms_u_t;
  182. #else
  183. typedef union xb_parms_u {
  184. bdrkreg_t xb_parms_regval;
  185. struct {
  186. bdrkreg_t p_rsrvd   : 12;
  187. bdrkreg_t p_tail_to_wrap   : 20;
  188. bdrkreg_t p_deadlock_to_wrap   : 20;
  189. bdrkreg_t p_age_wrap   :  8;
  190. bdrkreg_t p_rsrvd_1   :  3;
  191. bdrkreg_t p_byp_en   :  1;
  192. } xb_parms_fld_s;
  193. } xb_parms_u_t;
  194. #endif
  195. /************************************************************************
  196.  *                                                                      *
  197.  *  Sets the period of wavefront grants given to each unit. The         *
  198.  * register's value corresponds to the number of cycles between each    *
  199.  * wavefront grant opportunity given to the requesting unit. If set     *
  200.  * to 0xF, no grants are given to this unit. If set to 0xE, the unit    *
  201.  * is granted at the slowest rate (sometimes called "molasses mode").   *
  202.  * This feature can be used to apply backpressure to a unit's output    *
  203.  * queue(s). The setting does not affect bypass grants.                 *
  204.  *                                                                      *
  205.  ************************************************************************/
  206. #ifdef LITTLE_ENDIAN
  207. typedef union xb_slow_gnt_u {
  208. bdrkreg_t xb_slow_gnt_regval;
  209. struct  {
  210. bdrkreg_t sg_lb_slow_gnt            :  4;
  211.                 bdrkreg_t       sg_ii_slow_gnt            :      4;
  212.                 bdrkreg_t       sg_ni_slow_gnt            :      4;
  213.                 bdrkreg_t       sg_mmq_slow_gnt           :      4;
  214.                 bdrkreg_t       sg_mp1_slow_gnt           :      4;
  215.                 bdrkreg_t       sg_mp0_slow_gnt           :      4;
  216.                 bdrkreg_t       sg_pi1_slow_gnt           :      4;
  217.                 bdrkreg_t       sg_pi0_slow_gnt           :      4;
  218.                 bdrkreg_t       sg_rsrvd                  :     32;
  219. } xb_slow_gnt_fld_s;
  220. } xb_slow_gnt_u_t;
  221. #else
  222. typedef union xb_slow_gnt_u {
  223. bdrkreg_t xb_slow_gnt_regval;
  224. struct {
  225. bdrkreg_t sg_rsrvd   : 32;
  226. bdrkreg_t sg_pi0_slow_gnt   :  4;
  227. bdrkreg_t sg_pi1_slow_gnt   :  4;
  228. bdrkreg_t sg_mp0_slow_gnt   :  4;
  229. bdrkreg_t sg_mp1_slow_gnt   :  4;
  230. bdrkreg_t sg_mmq_slow_gnt   :  4;
  231. bdrkreg_t sg_ni_slow_gnt   :  4;
  232. bdrkreg_t sg_ii_slow_gnt   :  4;
  233. bdrkreg_t sg_lb_slow_gnt   :  4;
  234. } xb_slow_gnt_fld_s;
  235. } xb_slow_gnt_u_t;
  236. #endif
  237. /************************************************************************
  238.  *                                                                      *
  239.  *  Enables snooping of internal crossbar traffic by spewing all        *
  240.  * traffic across a selected crossbar point to the PI1 port. Only one   *
  241.  * bit should be set at any one time, and any bit set will preclude     *
  242.  * using the P1 for anything but a debug connection.                    *
  243.  *                                                                      *
  244.  ************************************************************************/
  245. #ifdef LITTLE_ENDIAN
  246. typedef union xb_spew_control_u {
  247. bdrkreg_t xb_spew_control_regval;
  248. struct  {
  249. bdrkreg_t sc_snoop_liq              :  1;
  250.                 bdrkreg_t       sc_snoop_iiq              :      1;
  251.                 bdrkreg_t       sc_snoop_niq              :      1;
  252.                 bdrkreg_t       sc_snoop_miq              :      1;
  253.                 bdrkreg_t       sc_snoop_piq0             :      1;
  254.                 bdrkreg_t       sc_snoop_loq              :      1;
  255.                 bdrkreg_t       sc_snoop_ioq              :      1;
  256.                 bdrkreg_t       sc_snoop_noq              :      1;
  257.                 bdrkreg_t       sc_snoop_mmq              :      1;
  258.                 bdrkreg_t       sc_snoop_mp0              :      1;
  259.                 bdrkreg_t       sc_snoop_poq0             :      1;
  260.                 bdrkreg_t       sc_rsrvd                  :     53;
  261. } xb_spew_control_fld_s;
  262. } xb_spew_control_u_t;
  263. #else
  264. typedef union xb_spew_control_u {
  265. bdrkreg_t xb_spew_control_regval;
  266. struct {
  267. bdrkreg_t sc_rsrvd   : 53;
  268. bdrkreg_t sc_snoop_poq0   :  1;
  269. bdrkreg_t sc_snoop_mp0   :  1;
  270. bdrkreg_t sc_snoop_mmq   :  1;
  271. bdrkreg_t sc_snoop_noq   :  1;
  272. bdrkreg_t sc_snoop_ioq   :  1;
  273. bdrkreg_t sc_snoop_loq   :  1;
  274. bdrkreg_t sc_snoop_piq0   :  1;
  275. bdrkreg_t sc_snoop_miq   :  1;
  276. bdrkreg_t sc_snoop_niq   :  1;
  277. bdrkreg_t sc_snoop_iiq   :  1;
  278. bdrkreg_t sc_snoop_liq   :  1;
  279. } xb_spew_control_fld_s;
  280. } xb_spew_control_u_t;
  281. #endif
  282. /************************************************************************
  283.  *                                                                      *
  284.  *  Number of clocks the IOQ will wait before beginning XB              *
  285.  * arbitration. This is set so that the slower IOQ data rate can        *
  286.  * catch up up with the XB data rate in the IOQ buffer.                 *
  287.  *                                                                      *
  288.  ************************************************************************/
  289. #ifdef LITTLE_ENDIAN
  290. typedef union xb_ioq_arb_trigger_u {
  291. bdrkreg_t xb_ioq_arb_trigger_regval;
  292. struct  {
  293. bdrkreg_t iat_ioq_arb_trigger       :  4;
  294.         bdrkreg_t       iat_rsrvd                 :     60;
  295. } xb_ioq_arb_trigger_fld_s;
  296. } xb_ioq_arb_trigger_u_t;
  297. #else
  298. typedef union xb_ioq_arb_trigger_u {
  299. bdrkreg_t xb_ioq_arb_trigger_regval;
  300. struct {
  301. bdrkreg_t iat_rsrvd   : 60;
  302. bdrkreg_t iat_ioq_arb_trigger   :  4;
  303. } xb_ioq_arb_trigger_fld_s;
  304. } xb_ioq_arb_trigger_u_t;
  305. #endif
  306. /************************************************************************
  307.  *                                                                      *
  308.  *  Records errors seen by POQ0.Can be written to test software, will   *
  309.  * cause an interrupt.                                                  *
  310.  *                                                                      *
  311.  ************************************************************************/
  312. #ifdef LITTLE_ENDIAN
  313. typedef union xb_poq0_error_u {
  314. bdrkreg_t xb_poq0_error_regval;
  315. struct  {
  316. bdrkreg_t pe_invalid_xsel           :  2;
  317.                 bdrkreg_t       pe_rsrvd_3                :      2;
  318.                 bdrkreg_t       pe_overflow               :      2;
  319.                 bdrkreg_t       pe_rsrvd_2                :      2;
  320.                 bdrkreg_t       pe_underflow              :      2;
  321.                 bdrkreg_t       pe_rsrvd_1                :      2;
  322.                 bdrkreg_t       pe_tail_timeout           :      2;
  323.                 bdrkreg_t       pe_unused                 :      6;
  324.                 bdrkreg_t       pe_rsrvd                  :     44;
  325. } xb_poq0_error_fld_s;
  326. } xb_poq0_error_u_t;
  327. #else
  328. typedef union xb_poq0_error_u {
  329. bdrkreg_t xb_poq0_error_regval;
  330. struct {
  331. bdrkreg_t pe_rsrvd   : 44;
  332. bdrkreg_t pe_unused   :  6;
  333. bdrkreg_t pe_tail_timeout   :  2;
  334. bdrkreg_t pe_rsrvd_1   :  2;
  335. bdrkreg_t pe_underflow   :  2;
  336. bdrkreg_t pe_rsrvd_2   :  2;
  337. bdrkreg_t pe_overflow   :  2;
  338. bdrkreg_t pe_rsrvd_3   :  2;
  339. bdrkreg_t pe_invalid_xsel   :  2;
  340. } xb_poq0_error_fld_s;
  341. } xb_poq0_error_u_t;
  342. #endif
  343. /************************************************************************
  344.  *                                                                      *
  345.  *  Records errors seen by PIQ0. Note that the PIQ/PI interface         *
  346.  * precludes PIQ underflow.                                             *
  347.  *                                                                      *
  348.  ************************************************************************/
  349. #ifdef LITTLE_ENDIAN
  350. typedef union xb_piq0_error_u {
  351. bdrkreg_t xb_piq0_error_regval;
  352. struct  {
  353. bdrkreg_t pe_overflow               :  2;
  354.                 bdrkreg_t       pe_rsrvd_1                :      2;
  355.                 bdrkreg_t       pe_deadlock_timeout       :      2;
  356.                 bdrkreg_t       pe_rsrvd                  :     58;
  357. } xb_piq0_error_fld_s;
  358. } xb_piq0_error_u_t;
  359. #else
  360. typedef union xb_piq0_error_u {
  361. bdrkreg_t xb_piq0_error_regval;
  362. struct {
  363. bdrkreg_t pe_rsrvd   : 58;
  364. bdrkreg_t pe_deadlock_timeout   :  2;
  365. bdrkreg_t pe_rsrvd_1   :  2;
  366. bdrkreg_t pe_overflow   :  2;
  367. } xb_piq0_error_fld_s;
  368. } xb_piq0_error_u_t;
  369. #endif
  370. /************************************************************************
  371.  *                                                                      *
  372.  *  Records errors seen by MP0 queue (the MOQ for processor 0). Since   *
  373.  * the xselect is decoded on the MD/MOQ interface, no invalid xselect   *
  374.  * errors are possible.                                                 *
  375.  *                                                                      *
  376.  ************************************************************************/
  377. #ifdef LITTLE_ENDIAN
  378. typedef union xb_mp0_error_u {
  379. bdrkreg_t xb_mp0_error_regval;
  380. struct  {
  381. bdrkreg_t me_rsrvd_3                :  4;
  382.                 bdrkreg_t       me_overflow               :      2;
  383.                 bdrkreg_t       me_rsrvd_2                :      2;
  384.                 bdrkreg_t       me_underflow              :      2;
  385.                 bdrkreg_t       me_rsrvd_1                :      2;
  386.                 bdrkreg_t       me_tail_timeout           :      2;
  387.                 bdrkreg_t       me_rsrvd                  :     50;
  388. } xb_mp0_error_fld_s;
  389. } xb_mp0_error_u_t;
  390. #else
  391. typedef union xb_mp0_error_u {
  392. bdrkreg_t xb_mp0_error_regval;
  393. struct {
  394. bdrkreg_t me_rsrvd   : 50;
  395. bdrkreg_t me_tail_timeout   :  2;
  396. bdrkreg_t me_rsrvd_1   :  2;
  397. bdrkreg_t me_underflow   :  2;
  398. bdrkreg_t me_rsrvd_2   :  2;
  399. bdrkreg_t me_overflow   :  2;
  400. bdrkreg_t me_rsrvd_3   :  4;
  401. } xb_mp0_error_fld_s;
  402. } xb_mp0_error_u_t;
  403. #endif
  404. /************************************************************************
  405.  *                                                                      *
  406.  *  Records errors seen by MIQ.                                         *
  407.  *                                                                      *
  408.  ************************************************************************/
  409. #ifdef LITTLE_ENDIAN
  410. typedef union xb_miq_error_u {
  411. bdrkreg_t xb_miq_error_regval;
  412. struct  {
  413. bdrkreg_t me_rsrvd_1                :  4;
  414.                 bdrkreg_t       me_deadlock_timeout       :      4;
  415.                 bdrkreg_t       me_rsrvd                  :     56;
  416. } xb_miq_error_fld_s;
  417. } xb_miq_error_u_t;
  418. #else
  419. typedef union xb_miq_error_u {
  420. bdrkreg_t xb_miq_error_regval;
  421. struct {
  422. bdrkreg_t me_rsrvd   : 56;
  423. bdrkreg_t me_deadlock_timeout   :  4;
  424. bdrkreg_t me_rsrvd_1   :  4;
  425. } xb_miq_error_fld_s;
  426. } xb_miq_error_u_t;
  427. #endif
  428. /************************************************************************
  429.  *                                                                      *
  430.  *  Records errors seen by NOQ.                                         *
  431.  *                                                                      *
  432.  ************************************************************************/
  433. #ifdef LITTLE_ENDIAN
  434. typedef union xb_noq_error_u {
  435. bdrkreg_t xb_noq_error_regval;
  436. struct  {
  437. bdrkreg_t ne_rsvd                   :  4;
  438.                 bdrkreg_t       ne_overflow               :      4;
  439.                 bdrkreg_t       ne_underflow              :      4;
  440.                 bdrkreg_t       ne_tail_timeout           :      4;
  441.                 bdrkreg_t       ne_rsrvd                  :     48;
  442. } xb_noq_error_fld_s;
  443. } xb_noq_error_u_t;
  444. #else
  445. typedef union xb_noq_error_u {
  446. bdrkreg_t xb_noq_error_regval;
  447. struct {
  448. bdrkreg_t ne_rsrvd   : 48;
  449. bdrkreg_t ne_tail_timeout   :  4;
  450. bdrkreg_t ne_underflow   :  4;
  451. bdrkreg_t ne_overflow   :  4;
  452. bdrkreg_t ne_rsvd   :  4;
  453. } xb_noq_error_fld_s;
  454. } xb_noq_error_u_t;
  455. #endif
  456. /************************************************************************
  457.  *                                                                      *
  458.  *  Records errors seen by LOQ.                                         *
  459.  *                                                                      *
  460.  ************************************************************************/
  461. #ifdef LITTLE_ENDIAN
  462. typedef union xb_loq_error_u {
  463. bdrkreg_t xb_loq_error_regval;
  464. struct  {
  465. bdrkreg_t le_invalid_xsel           :  2;
  466.                 bdrkreg_t       le_rsrvd_1                :      6;
  467.                 bdrkreg_t       le_underflow              :      2;
  468.                 bdrkreg_t       le_rsvd                   :      2;
  469.                 bdrkreg_t       le_tail_timeout           :      2;
  470.                 bdrkreg_t       le_rsrvd                  :     50;
  471. } xb_loq_error_fld_s;
  472. } xb_loq_error_u_t;
  473. #else
  474. typedef union xb_loq_error_u {
  475. bdrkreg_t xb_loq_error_regval;
  476. struct {
  477. bdrkreg_t le_rsrvd   : 50;
  478. bdrkreg_t le_tail_timeout   :  2;
  479. bdrkreg_t le_rsvd   :  2;
  480. bdrkreg_t le_underflow   :  2;
  481. bdrkreg_t le_rsrvd_1   :  6;
  482. bdrkreg_t le_invalid_xsel   :  2;
  483. } xb_loq_error_fld_s;
  484. } xb_loq_error_u_t;
  485. #endif
  486. /************************************************************************
  487.  *                                                                      *
  488.  *  Records errors seen by LIQ. Note that the LIQ only records errors   *
  489.  * for the request channel. The reply channel can never deadlock or     *
  490.  * overflow because it does not have hardware flow control.             *
  491.  *                                                                      *
  492.  ************************************************************************/
  493. #ifdef LITTLE_ENDIAN
  494. typedef union xb_liq_error_u {
  495. bdrkreg_t xb_liq_error_regval;
  496. struct  {
  497. bdrkreg_t le_overflow               :  1;
  498.                 bdrkreg_t       le_rsrvd_1                :      3;
  499.                 bdrkreg_t       le_deadlock_timeout       :      1;
  500.                 bdrkreg_t       le_rsrvd                  :     59;
  501. } xb_liq_error_fld_s;
  502. } xb_liq_error_u_t;
  503. #else
  504. typedef union xb_liq_error_u {
  505. bdrkreg_t xb_liq_error_regval;
  506. struct {
  507. bdrkreg_t le_rsrvd   : 59;
  508. bdrkreg_t le_deadlock_timeout   :  1;
  509. bdrkreg_t le_rsrvd_1   :  3;
  510. bdrkreg_t le_overflow   :  1;
  511. } xb_liq_error_fld_s;
  512. } xb_liq_error_u_t;
  513. #endif
  514. /************************************************************************
  515.  *                                                                      *
  516.  *  First error is latched whenever the Valid bit is clear and an       *
  517.  * error occurs. Any valid bit on in this register causes an            *
  518.  * interrupt to PI0 and PI1. This interrupt bit will persist until      *
  519.  * the specific error register to capture the error is cleared, then    *
  520.  * the FIRST_ERROR register is cleared (in that oder.) The              *
  521.  * FIRST_ERROR register is not writable, but will be set when any of    *
  522.  * the corresponding error registers are written by software.           *
  523.  *                                                                      *
  524.  ************************************************************************/
  525. #ifdef LITTLE_ENDIAN
  526. typedef union xb_first_error_u {
  527. bdrkreg_t xb_first_error_regval;
  528. struct  {
  529. bdrkreg_t fe_type                   :  4;
  530.                 bdrkreg_t       fe_channel                :      4;
  531.                 bdrkreg_t       fe_source                 :      4;
  532.                 bdrkreg_t       fe_valid                  :      1;
  533.                 bdrkreg_t       fe_rsrvd                  :     51;
  534. } xb_first_error_fld_s;
  535. } xb_first_error_u_t;
  536. #else
  537. typedef union xb_first_error_u {
  538. bdrkreg_t xb_first_error_regval;
  539. struct {
  540. bdrkreg_t fe_rsrvd   : 51;
  541. bdrkreg_t fe_valid   :  1;
  542. bdrkreg_t fe_source   :  4;
  543. bdrkreg_t fe_channel   :  4;
  544. bdrkreg_t fe_type   :  4;
  545. } xb_first_error_fld_s;
  546. } xb_first_error_u_t;
  547. #endif
  548. /************************************************************************
  549.  *                                                                      *
  550.  *  Controls DEBUG_DATA mux setting. Allows user to watch the output    *
  551.  * of any OQ or input of any IQ on the DEBUG port. Note that bits       *
  552.  * 13:0 are one-hot. If more than one bit is set in [13:0], the debug   *
  553.  * output is undefined. Details on the debug output lines can be        *
  554.  * found in the XB chapter of the Bedrock Interface Specification.      *
  555.  *                                                                      *
  556.  ************************************************************************/
  557. #ifdef LITTLE_ENDIAN
  558. typedef union xb_debug_data_ctl_u {
  559. bdrkreg_t xb_debug_data_ctl_regval;
  560. struct  {
  561. bdrkreg_t ddc_observe_liq_traffic   :  1;
  562.                 bdrkreg_t       ddc_observe_iiq_traffic   :      1;
  563.                 bdrkreg_t       ddc_observe_niq_traffic   :      1;
  564.                 bdrkreg_t       ddc_observe_miq_traffic   :      1;
  565.                 bdrkreg_t       ddc_observe_piq1_traffic  :      1;
  566.                 bdrkreg_t       ddc_observe_piq0_traffic  :      1;
  567.                 bdrkreg_t       ddc_observe_loq_traffic   :      1;
  568.                 bdrkreg_t       ddc_observe_ioq_traffic   :      1;
  569.                 bdrkreg_t       ddc_observe_noq_traffic   :      1;
  570.                 bdrkreg_t       ddc_observe_mp1_traffic   :      1;
  571.                 bdrkreg_t       ddc_observe_mp0_traffic   :      1;
  572.                 bdrkreg_t       ddc_observe_mmq_traffic   :      1;
  573.                 bdrkreg_t       ddc_observe_poq1_traffic  :      1;
  574.                 bdrkreg_t       ddc_observe_poq0_traffic  :      1;
  575.                 bdrkreg_t       ddc_observe_source_field  :      1;
  576.                 bdrkreg_t       ddc_observe_lodata        :      1;
  577.                 bdrkreg_t       ddc_rsrvd                 :     48;
  578. } xb_debug_data_ctl_fld_s;
  579. } xb_debug_data_ctl_u_t;
  580. #else
  581. typedef union xb_debug_data_ctl_u {
  582. bdrkreg_t xb_debug_data_ctl_regval;
  583. struct {
  584. bdrkreg_t ddc_rsrvd   : 48;
  585. bdrkreg_t ddc_observe_lodata   :  1;
  586. bdrkreg_t ddc_observe_source_field  :  1;
  587. bdrkreg_t ddc_observe_poq0_traffic  :  1;
  588. bdrkreg_t ddc_observe_poq1_traffic  :  1;
  589. bdrkreg_t ddc_observe_mmq_traffic   :  1;
  590. bdrkreg_t ddc_observe_mp0_traffic   :  1;
  591. bdrkreg_t ddc_observe_mp1_traffic   :  1;
  592. bdrkreg_t ddc_observe_noq_traffic   :  1;
  593. bdrkreg_t ddc_observe_ioq_traffic   :  1;
  594. bdrkreg_t ddc_observe_loq_traffic   :  1;
  595. bdrkreg_t ddc_observe_piq0_traffic  :  1;
  596. bdrkreg_t ddc_observe_piq1_traffic  :  1;
  597. bdrkreg_t ddc_observe_miq_traffic   :  1;
  598. bdrkreg_t ddc_observe_niq_traffic   :  1;
  599. bdrkreg_t ddc_observe_iiq_traffic   :  1;
  600. bdrkreg_t ddc_observe_liq_traffic   :  1;
  601. } xb_debug_data_ctl_fld_s;
  602. } xb_debug_data_ctl_u_t;
  603. #endif
  604. /************************************************************************
  605.  *                                                                      *
  606.  *  Controls debug mux setting for XB Input/Output Queues and           *
  607.  * Arbiter. Can select one of the following values. Details on the      *
  608.  * debug output lines can be found in the XB chapter of the Bedrock     *
  609.  * Interface Specification.                                             *
  610.  *                                                                      *
  611.  ************************************************************************/
  612. #ifdef LITTLE_ENDIAN
  613. typedef union xb_debug_arb_ctl_u {
  614. bdrkreg_t xb_debug_arb_ctl_regval;
  615. struct  {
  616. bdrkreg_t dac_xb_debug_select       :  3;
  617. bdrkreg_t       dac_rsrvd                 :     61;
  618. } xb_debug_arb_ctl_fld_s;
  619. } xb_debug_arb_ctl_u_t;
  620. #else
  621. typedef union xb_debug_arb_ctl_u {
  622.         bdrkreg_t       xb_debug_arb_ctl_regval;
  623.         struct  {
  624.                 bdrkreg_t       dac_rsrvd                 :     61;
  625.                 bdrkreg_t       dac_xb_debug_select       :      3;
  626.         } xb_debug_arb_ctl_fld_s;
  627. } xb_debug_arb_ctl_u_t;
  628. #endif
  629. /************************************************************************
  630.  *                                                                      *
  631.  *  Records errors seen by POQ0.Can be written to test software, will   *
  632.  * cause an interrupt.                                                  *
  633.  *                                                                      *
  634.  ************************************************************************/
  635. #ifdef LITTLE_ENDIAN
  636. typedef union xb_poq0_error_clear_u {
  637. bdrkreg_t xb_poq0_error_clear_regval;
  638. struct  {
  639. bdrkreg_t pec_invalid_xsel          :  2;
  640.                 bdrkreg_t       pec_rsrvd_3               :      2;
  641.                 bdrkreg_t       pec_overflow              :      2;
  642.                 bdrkreg_t       pec_rsrvd_2               :      2;
  643.                 bdrkreg_t       pec_underflow             :      2;
  644.                 bdrkreg_t       pec_rsrvd_1               :      2;
  645.                 bdrkreg_t       pec_tail_timeout          :      2;
  646.                 bdrkreg_t       pec_unused                :      6;
  647.                 bdrkreg_t       pec_rsrvd                 :     44;
  648. } xb_poq0_error_clear_fld_s;
  649. } xb_poq0_error_clear_u_t;
  650. #else
  651. typedef union xb_poq0_error_clear_u {
  652. bdrkreg_t xb_poq0_error_clear_regval;
  653. struct {
  654. bdrkreg_t pec_rsrvd   : 44;
  655. bdrkreg_t pec_unused   :  6;
  656. bdrkreg_t pec_tail_timeout   :  2;
  657. bdrkreg_t pec_rsrvd_1   :  2;
  658. bdrkreg_t pec_underflow   :  2;
  659. bdrkreg_t pec_rsrvd_2   :  2;
  660. bdrkreg_t pec_overflow   :  2;
  661. bdrkreg_t pec_rsrvd_3   :  2;
  662. bdrkreg_t pec_invalid_xsel   :  2;
  663. } xb_poq0_error_clear_fld_s;
  664. } xb_poq0_error_clear_u_t;
  665. #endif
  666. /************************************************************************
  667.  *                                                                      *
  668.  *  Records errors seen by PIQ0. Note that the PIQ/PI interface         *
  669.  * precludes PIQ underflow.                                             *
  670.  *                                                                      *
  671.  ************************************************************************/
  672. #ifdef LITTLE_ENDIAN
  673. typedef union xb_piq0_error_clear_u {
  674. bdrkreg_t xb_piq0_error_clear_regval;
  675. struct  {
  676. bdrkreg_t pec_overflow              :  2;
  677.                 bdrkreg_t       pec_rsrvd_1               :      2;
  678.                 bdrkreg_t       pec_deadlock_timeout      :      2;
  679.                 bdrkreg_t       pec_rsrvd                 :     58;
  680. } xb_piq0_error_clear_fld_s;
  681. } xb_piq0_error_clear_u_t;
  682. #else
  683. typedef union xb_piq0_error_clear_u {
  684. bdrkreg_t xb_piq0_error_clear_regval;
  685. struct {
  686. bdrkreg_t pec_rsrvd   : 58;
  687. bdrkreg_t pec_deadlock_timeout   :  2;
  688. bdrkreg_t pec_rsrvd_1   :  2;
  689. bdrkreg_t pec_overflow   :  2;
  690. } xb_piq0_error_clear_fld_s;
  691. } xb_piq0_error_clear_u_t;
  692. #endif
  693. /************************************************************************
  694.  *                                                                      *
  695.  *  Records errors seen by MP0 queue (the MOQ for processor 0). Since   *
  696.  * the xselect is decoded on the MD/MOQ interface, no invalid xselect   *
  697.  * errors are possible.                                                 *
  698.  *                                                                      *
  699.  ************************************************************************/
  700. #ifdef LITTLE_ENDIAN
  701. typedef union xb_mp0_error_clear_u {
  702. bdrkreg_t xb_mp0_error_clear_regval;
  703. struct  {
  704. bdrkreg_t mec_rsrvd_3               :  4;
  705.                 bdrkreg_t       mec_overflow              :      2;
  706.                 bdrkreg_t       mec_rsrvd_2               :      2;
  707.                 bdrkreg_t       mec_underflow             :      2;
  708.                 bdrkreg_t       mec_rsrvd_1               :      2;
  709.                 bdrkreg_t       mec_tail_timeout          :      2;
  710.                 bdrkreg_t       mec_rsrvd                 :     50;
  711. } xb_mp0_error_clear_fld_s;
  712. } xb_mp0_error_clear_u_t;
  713. #else
  714. typedef union xb_mp0_error_clear_u {
  715. bdrkreg_t xb_mp0_error_clear_regval;
  716. struct {
  717. bdrkreg_t mec_rsrvd   : 50;
  718. bdrkreg_t mec_tail_timeout   :  2;
  719. bdrkreg_t mec_rsrvd_1   :  2;
  720. bdrkreg_t mec_underflow   :  2;
  721. bdrkreg_t mec_rsrvd_2   :  2;
  722. bdrkreg_t mec_overflow   :  2;
  723. bdrkreg_t mec_rsrvd_3   :  4;
  724. } xb_mp0_error_clear_fld_s;
  725. } xb_mp0_error_clear_u_t;
  726. #endif
  727. /************************************************************************
  728.  *                                                                      *
  729.  *  Records errors seen by MIQ.                                         *
  730.  *                                                                      *
  731.  ************************************************************************/
  732. #ifdef LITTLE_ENDIAN
  733. typedef union xb_xm_miq_error_clear_u {
  734. bdrkreg_t xb_xm_miq_error_clear_regval;
  735. struct  {
  736. bdrkreg_t xmec_rsrvd_1              :  4;
  737.                 bdrkreg_t       xmec_deadlock_timeout     :      4;
  738.                 bdrkreg_t       xmec_rsrvd                :     56;
  739. } xb_xm_miq_error_clear_fld_s;
  740. } xb_xm_miq_error_clear_u_t;
  741. #else
  742. typedef union xb_xm_miq_error_clear_u {
  743. bdrkreg_t xb_xm_miq_error_clear_regval;
  744. struct {
  745. bdrkreg_t xmec_rsrvd   : 56;
  746. bdrkreg_t xmec_deadlock_timeout   :  4;
  747. bdrkreg_t xmec_rsrvd_1   :  4;
  748. } xb_xm_miq_error_clear_fld_s;
  749. } xb_xm_miq_error_clear_u_t;
  750. #endif
  751. /************************************************************************
  752.  *                                                                      *
  753.  *  Records errors seen by NOQ.                                         *
  754.  *                                                                      *
  755.  ************************************************************************/
  756. #ifdef LITTLE_ENDIAN
  757. typedef union xb_noq_error_clear_u {
  758. bdrkreg_t xb_noq_error_clear_regval;
  759. struct  {
  760. bdrkreg_t nec_rsvd                  :  4;
  761.                 bdrkreg_t       nec_overflow              :      4;
  762.                 bdrkreg_t       nec_underflow             :      4;
  763.                 bdrkreg_t       nec_tail_timeout          :      4;
  764.                 bdrkreg_t       nec_rsrvd                 :     48;
  765. } xb_noq_error_clear_fld_s;
  766. } xb_noq_error_clear_u_t;
  767. #else
  768. typedef union xb_noq_error_clear_u {
  769. bdrkreg_t xb_noq_error_clear_regval;
  770. struct {
  771. bdrkreg_t nec_rsrvd   : 48;
  772. bdrkreg_t nec_tail_timeout   :  4;
  773. bdrkreg_t nec_underflow   :  4;
  774. bdrkreg_t nec_overflow   :  4;
  775. bdrkreg_t nec_rsvd   :  4;
  776. } xb_noq_error_clear_fld_s;
  777. } xb_noq_error_clear_u_t;
  778. #endif
  779. /************************************************************************
  780.  *                                                                      *
  781.  *  Records errors seen by LOQ.                                         *
  782.  *                                                                      *
  783.  ************************************************************************/
  784. #ifdef LITTLE_ENDIAN
  785. typedef union xb_loq_error_clear_u {
  786. bdrkreg_t xb_loq_error_clear_regval;
  787. struct  {
  788. bdrkreg_t lec_invalid_xsel          :  2;
  789.                 bdrkreg_t       lec_rsrvd_1               :      6;
  790.                 bdrkreg_t       lec_underflow             :      2;
  791.                 bdrkreg_t       lec_rsvd                  :      2;
  792.                 bdrkreg_t       lec_tail_timeout          :      2;
  793.                 bdrkreg_t       lec_rsrvd                 :     50;
  794. } xb_loq_error_clear_fld_s;
  795. } xb_loq_error_clear_u_t;
  796. #else
  797. typedef union xb_loq_error_clear_u {
  798. bdrkreg_t xb_loq_error_clear_regval;
  799. struct {
  800. bdrkreg_t lec_rsrvd   : 50;
  801. bdrkreg_t lec_tail_timeout   :  2;
  802. bdrkreg_t lec_rsvd   :  2;
  803. bdrkreg_t lec_underflow   :  2;
  804. bdrkreg_t lec_rsrvd_1   :  6;
  805. bdrkreg_t lec_invalid_xsel   :  2;
  806. } xb_loq_error_clear_fld_s;
  807. } xb_loq_error_clear_u_t;
  808. #endif
  809. /************************************************************************
  810.  *                                                                      *
  811.  *  Records errors seen by LIQ. Note that the LIQ only records errors   *
  812.  * for the request channel. The reply channel can never deadlock or     *
  813.  * overflow because it does not have hardware flow control.             *
  814.  *                                                                      *
  815.  ************************************************************************/
  816. #ifdef LITTLE_ENDIAN
  817. typedef union xb_liq_error_clear_u {
  818. bdrkreg_t xb_liq_error_clear_regval;
  819. struct  {
  820. bdrkreg_t lec_overflow              :  1;
  821.                 bdrkreg_t       lec_rsrvd_1               :      3;
  822.                 bdrkreg_t       lec_deadlock_timeout      :      1;
  823.                 bdrkreg_t       lec_rsrvd                 :     59;
  824. } xb_liq_error_clear_fld_s;
  825. } xb_liq_error_clear_u_t;
  826. #else
  827. typedef union xb_liq_error_clear_u {
  828.         bdrkreg_t       xb_liq_error_clear_regval;
  829.         struct  {
  830.                 bdrkreg_t       lec_rsrvd                 :     59;
  831.                 bdrkreg_t       lec_deadlock_timeout      :      1;
  832.                 bdrkreg_t       lec_rsrvd_1               :      3;
  833.                 bdrkreg_t       lec_overflow              :      1;
  834.         } xb_liq_error_clear_fld_s;
  835. } xb_liq_error_clear_u_t;
  836. #endif
  837. /************************************************************************
  838.  *                                                                      *
  839.  *  First error is latched whenever the Valid bit is clear and an       *
  840.  * error occurs. Any valid bit on in this register causes an            *
  841.  * interrupt to PI0 and PI1. This interrupt bit will persist until      *
  842.  * the specific error register to capture the error is cleared, then    *
  843.  * the FIRST_ERROR register is cleared (in that oder.) The              *
  844.  * FIRST_ERROR register is not writable, but will be set when any of    *
  845.  * the corresponding error registers are written by software.           *
  846.  *                                                                      *
  847.  ************************************************************************/
  848. #ifdef LITTLE_ENDIAN
  849. typedef union xb_first_error_clear_u {
  850. bdrkreg_t xb_first_error_clear_regval;
  851. struct  {
  852. bdrkreg_t fec_type                  :  4;
  853.                 bdrkreg_t       fec_channel               :      4;
  854.                 bdrkreg_t       fec_source                :      4;
  855.                 bdrkreg_t       fec_valid                 :      1;
  856.                 bdrkreg_t       fec_rsrvd                 :     51;
  857. } xb_first_error_clear_fld_s;
  858. } xb_first_error_clear_u_t;
  859. #else
  860. typedef union xb_first_error_clear_u {
  861. bdrkreg_t xb_first_error_clear_regval;
  862. struct {
  863. bdrkreg_t fec_rsrvd   : 51;
  864. bdrkreg_t fec_valid   :  1;
  865. bdrkreg_t fec_source   :  4;
  866. bdrkreg_t fec_channel   :  4;
  867. bdrkreg_t fec_type   :  4;
  868. } xb_first_error_clear_fld_s;
  869. } xb_first_error_clear_u_t;
  870. #endif
  871. #endif /* _LANGUAGE_C */
  872. /************************************************************************
  873.  *                                                                      *
  874.  * The following defines were not formed into structures                *
  875.  *                                                                      *
  876.  * This could be because the document did not contain details of the    *
  877.  * register, or because the automated script did not recognize the      *
  878.  * register details in the documentation. If these register need        *
  879.  * structure definition, please create them manually                    *
  880.  *                                                                      *
  881.  *           XB_POQ1_ERROR            0x700030                          *
  882.  *           XB_PIQ1_ERROR            0x700038                          *
  883.  *           XB_MP1_ERROR             0x700048                          *
  884.  *           XB_MMQ_ERROR             0x700050                          *
  885.  *           XB_NIQ_ERROR             0x700068                          *
  886.  *           XB_IOQ_ERROR             0x700070                          *
  887.  *           XB_IIQ_ERROR             0x700078                          *
  888.  *           XB_POQ1_ERROR_CLEAR      0x700130                          *
  889.  *           XB_PIQ1_ERROR_CLEAR      0x700138                          *
  890.  *           XB_MP1_ERROR_CLEAR       0x700148                          *
  891.  *           XB_MMQ_ERROR_CLEAR       0x700150                          *
  892.  *           XB_NIQ_ERROR_CLEAR       0x700168                          *
  893.  *           XB_IOQ_ERROR_CLEAR       0x700170                          *
  894.  *           XB_IIQ_ERROR_CLEAR       0x700178                          *
  895.  *                                                                      *
  896.  ************************************************************************/
  897. /************************************************************************
  898.  *                                                                      *
  899.  *               MAKE ALL ADDITIONS AFTER THIS LINE                     *
  900.  *                                                                      *
  901.  ************************************************************************/
  902. #endif /* _ASM_SN_SN1_HUBXB_H */