⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shubio.h

📁 xen虚拟机源代码安装包
💻 H
📖 第 1 页 / 共 5 页
字号:
		u64 i_rd_to:1;		u64 i_spur_wr:1;		u64 i_spur_rd:1;		u64 i_rsvd:11;		u64 i_mult_err:1;	} ii_iprbe_fld_s;} ii_iprbf_u_t;/************************************************************************ *									* *  This register specifies the timeout value to use for monitoring     * * Crosstalk credits which are used outbound to Crosstalk. An           * * internal counter called the Crosstalk Credit Timeout Counter         * * increments every 128 II clocks. The counter starts counting          * * anytime the credit count drops below a threshold, and resets to      * * zero (stops counting) anytime the credit count is at or above the    * * threshold. The threshold is 1 credit in direct connect mode and 2    * * in Crossbow connect mode. When the internal Crosstalk Credit         * * Timeout Counter reaches the value programmed in this register, a     * * Crosstalk Credit Timeout has occurred. The internal counter is not   * * readable from software, and stops counting at its maximum value,     * * so it cannot cause more than one interrupt.                          * *									* ************************************************************************/typedef union ii_ixcc_u {	u64 ii_ixcc_regval;	struct {		u64 i_time_out:26;		u64 i_rsvd:38;	} ii_ixcc_fld_s;} ii_ixcc_u_t;/************************************************************************ *									* * Description:  This register qualifies all the PIO and DMA            * * operations launched from widget 0 towards the SHub. In               * * addition, it also qualifies accesses by the BTE streams.             * * The bits in each field of this register are cleared by the SHub      * * upon detection of an error which requires widget 0 or the BTE        * * streams to be terminated. Whether or not widget x has access         * * rights to this SHub is determined by an AND of the device            * * enable bit in the appropriate field of this register and bit 0 in    * * the Wx_IAC field. The bits in this field are set by writing a 1 to   * * them. Incoming replies from Crosstalk are not subject to this        * * access control mechanism.                                            * *									* ************************************************************************/typedef union ii_imem_u {	u64 ii_imem_regval;	struct {		u64 i_w0_esd:1;		u64 i_rsvd_3:3;		u64 i_b0_esd:1;		u64 i_rsvd_2:3;		u64 i_b1_esd:1;		u64 i_rsvd_1:3;		u64 i_clr_precise:1;		u64 i_rsvd:51;	} ii_imem_fld_s;} ii_imem_u_t;/************************************************************************ *									* * Description:  This register specifies the timeout value to use for   * * monitoring Crosstalk tail flits coming into the Shub in the          * * TAIL_TO field. An internal counter associated with this register     * * is incremented every 128 II internal clocks (7 bits). The counter    * * starts counting anytime a header micropacket is received and stops   * * counting (and resets to zero) any time a micropacket with a Tail     * * bit is received. Once the counter reaches the threshold value        * * programmed in this register, it generates an interrupt to the        * * processor that is programmed into the IIDSR. The counter saturates   * * (does not roll over) at its maximum value, so it cannot cause        * * another interrupt until after it is cleared.                         * * The register also contains the Read Response Timeout values. The     * * Prescalar is 23 bits, and counts II clocks. An internal counter      * * increments on every II clock and when it reaches the value in the    * * Prescalar field, all IPRTE registers with their valid bits set       * * have their Read Response timers bumped. Whenever any of them match   * * the value in the RRSP_TO field, a Read Response Timeout has          * * occurred, and error handling occurs as described in the Error        * * Handling section of this document.                                   * *									* ************************************************************************/typedef union ii_ixtt_u {	u64 ii_ixtt_regval;	struct {		u64 i_tail_to:26;		u64 i_rsvd_1:6;		u64 i_rrsp_ps:23;		u64 i_rrsp_to:5;		u64 i_rsvd:4;	} ii_ixtt_fld_s;} ii_ixtt_u_t;/************************************************************************ *									* *  Writing a 1 to the fields of this register clears the appropriate   * * error bits in other areas of SHub. Note that when the                * * E_PRB_x bits are used to clear error bits in PRB registers,          * * SPUR_RD and SPUR_WR may persist, because they require additional     * * action to clear them. See the IPRBx and IXSS Register                * * specifications.                                                      * *									* ************************************************************************/typedef union ii_ieclr_u {	u64 ii_ieclr_regval;	struct {		u64 i_e_prb_0:1;		u64 i_rsvd:7;		u64 i_e_prb_8:1;		u64 i_e_prb_9:1;		u64 i_e_prb_a:1;		u64 i_e_prb_b:1;		u64 i_e_prb_c:1;		u64 i_e_prb_d:1;		u64 i_e_prb_e:1;		u64 i_e_prb_f:1;		u64 i_e_crazy:1;		u64 i_e_bte_0:1;		u64 i_e_bte_1:1;		u64 i_reserved_1:10;		u64 i_spur_rd_hdr:1;		u64 i_cam_intr_to:1;		u64 i_cam_overflow:1;		u64 i_cam_read_miss:1;		u64 i_ioq_rep_underflow:1;		u64 i_ioq_req_underflow:1;		u64 i_ioq_rep_overflow:1;		u64 i_ioq_req_overflow:1;		u64 i_iiq_rep_overflow:1;		u64 i_iiq_req_overflow:1;		u64 i_ii_xn_rep_cred_overflow:1;		u64 i_ii_xn_req_cred_overflow:1;		u64 i_ii_xn_invalid_cmd:1;		u64 i_xn_ii_invalid_cmd:1;		u64 i_reserved_2:21;	} ii_ieclr_fld_s;} ii_ieclr_u_t;/************************************************************************ *									* *  This register controls both BTEs. SOFT_RESET is intended for        * * recovery after an error. COUNT controls the total number of CRBs     * * that both BTEs (combined) can use, which affects total BTE           * * bandwidth.                                                           * *									* ************************************************************************/typedef union ii_ibcr_u {	u64 ii_ibcr_regval;	struct {		u64 i_count:4;		u64 i_rsvd_1:4;		u64 i_soft_reset:1;		u64 i_rsvd:55;	} ii_ibcr_fld_s;} ii_ibcr_u_t;/************************************************************************ *									* *  This register contains the header of a spurious read response       * * received from Crosstalk. A spurious read response is defined as a    * * read response received by II from a widget for which (1) the SIDN    * * has a value between 1 and 7, inclusive (II never sends requests to   * * these widgets (2) there is no valid IPRTE register which             * * corresponds to the TNUM, or (3) the widget indicated in SIDN is      * * not the same as the widget recorded in the IPRTE register            * * referenced by the TNUM. If this condition is true, and if the        * * IXSS[VALID] bit is clear, then the header of the spurious read       * * response is capture in IXSM and IXSS, and IXSS[VALID] is set. The    * * errant header is thereby captured, and no further spurious read      * * respones are captured until IXSS[VALID] is cleared by setting the    * * appropriate bit in IECLR.Everytime a spurious read response is       * * detected, the SPUR_RD bit of the PRB corresponding to the incoming   * * message's SIDN field is set. This always happens, regarless of       * * whether a header is captured. The programmer should check            * * IXSM[SIDN] to determine which widget sent the spurious response,     * * because there may be more than one SPUR_RD bit set in the PRB        * * registers. The widget indicated by IXSM[SIDN] was the first          * * spurious read response to be received since the last time            * * IXSS[VALID] was clear. The SPUR_RD bit of the corresponding PRB      * * will be set. Any SPUR_RD bits in any other PRB registers indicate    * * spurious messages from other widets which were detected after the    * * header was captured..                                                * *									* ************************************************************************/typedef union ii_ixsm_u {	u64 ii_ixsm_regval;	struct {		u64 i_byte_en:32;		u64 i_reserved:1;		u64 i_tag:3;		u64 i_alt_pactyp:4;		u64 i_bo:1;		u64 i_error:1;		u64 i_vbpm:1;		u64 i_gbr:1;		u64 i_ds:2;		u64 i_ct:1;		u64 i_tnum:5;		u64 i_pactyp:4;		u64 i_sidn:4;		u64 i_didn:4;	} ii_ixsm_fld_s;} ii_ixsm_u_t;/************************************************************************ *									* *  This register contains the sideband bits of a spurious read         * * response received from Crosstalk.                                    * *									* ************************************************************************/typedef union ii_ixss_u {	u64 ii_ixss_regval;	struct {		u64 i_sideband:8;		u64 i_rsvd:55;		u64 i_valid:1;	} ii_ixss_fld_s;} ii_ixss_u_t;/************************************************************************ *									* *  This register enables software to access the II LLP's test port.    * * Refer to the LLP 2.5 documentation for an explanation of the test    * * port. Software can write to this register to program the values      * * for the control fields (TestErrCapture, TestClear, TestFlit,         * * TestMask and TestSeed). Similarly, software can read from this       * * register to obtain the values of the test port's status outputs      * * (TestCBerr, TestValid and TestData).                                 * *									* ************************************************************************/typedef union ii_ilct_u {	u64 ii_ilct_regval;	struct {		u64 i_test_seed:20;		u64 i_test_mask:8;		u64 i_test_data:20;		u64 i_test_valid:1;		u64 i_test_cberr:1;		u64 i_test_flit:3;		u64 i_test_clear:1;		u64 i_test_err_capture:1;		u64 i_rsvd:9;	} ii_ilct_fld_s;} ii_ilct_u_t;/************************************************************************ *									* *  If the II detects an illegal incoming Duplonet packet (request or   * * reply) when VALID==0 in the IIEPH1 register, then it saves the       * * contents of the packet's header flit in the IIEPH1 and IIEPH2        * * registers, sets the VALID bit in IIEPH1, clears the OVERRUN bit,     * * and assigns a value to the ERR_TYPE field which indicates the        * * specific nature of the error. The II recognizes four different       * * types of errors: short request packets (ERR_TYPE==2), short reply    * * packets (ERR_TYPE==3), long request packets (ERR_TYPE==4) and long   * * reply packets (ERR_TYPE==5). The encodings for these types of        * * errors were chosen to be consistent with the same types of errors    * * indicated by the ERR_TYPE field in the LB_ERROR_HDR1 register (in    * * the LB unit). If the II detects an illegal incoming Duplonet         * * packet when VALID==1 in the IIEPH1 register, then it merely sets     * * the OVERRUN bit to indicate that a subsequent error has happened,    * * and does nothing further.                                            * *									* ************************************************************************/typedef union ii_iieph1_u {	u64 ii_iieph1_regval;	struct {		u64 i_command:7;		u64 i_rsvd_5:1;		u64 i_suppl:14;		u64 i_rsvd_4:1;		u64 i_source:14;		u64 i_rsvd_3:1;		u64 i_err_type:4;		u64 i_rsvd_2:4;		u64 i_overrun:1;		u64 i_rsvd_1:3;		u64 i_valid:1;		u64 i_rsvd:13;	} ii_iieph1_fld_s;} ii_iieph1_u_t;/************************************************************************ *									* *  This register holds the Address field from the header flit of an    * * incoming erroneous Duplonet packet, along with the tail bit which    * * accompanied this header flit. This register is essentially an        * * extension of IIEPH1. Two registers were necessary because the 64     * * bits available in only a single register were insufficient to        * * capt

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -