4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
22 * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _SYS_NXGE_NXGE_HW_H
27 #define _SYS_NXGE_NXGE_HW_H
29 #pragma ident "%Z%%M% %I% %E% SMI"
35 #if !defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN) && \
36 !defined(__BIG_ENDIAN) && !defined(__LITTLE_ENDIAN)
37 #error Host endianness not defined
40 #if !defined(_BIT_FIELDS_HTOL) && !defined(_BIT_FIELDS_LTOH) && \
41 !defined(__BIT_FIELDS_HTOL) && !defined(__BIT_FIELDS_LTOH)
42 #error Bit ordering not defined
45 #include <nxge_fflp_hw.h>
46 #include <nxge_ipp_hw.h>
47 #include <nxge_mac_hw.h>
48 #include <nxge_rxdma_hw.h>
49 #include <nxge_txc_hw.h>
50 #include <nxge_txdma_hw.h>
51 #include <nxge_zcp_hw.h>
52 #include <nxge_espc_hw.h>
53 #include <nxge_n2_esr_hw.h>
54 #include <nxge_sr_hw.h>
55 #include <nxge_phy_hw.h>
59 * The Neptune chip has 16 Receive DMA channels, but no more than
60 * 24 Transmit DMA channels.
62 typedef uint32_t dc_map_t
;
65 * The logical group map is a Crossbow addition.
67 typedef uint32_t lg_map_t
;
69 /* Modes of NXGE core */
70 typedef enum nxge_mode_e
{
76 * Function control Register
77 * (bit 31 is reset to 0. Read back 0 then free to use it.
78 * (once done with it, bit 0:15 can be used to store SW status)
80 #define DEV_FUNC_SR_REG (PIO + 0x10000)
81 #define DEV_FUNC_SR_SR_SHIFT 0
82 #define DEV_FUNC_SR_SR_MASK 0x000000000000FFFFULL
83 #define DEV_FUNC_SR_FUNCID_SHIFT 16
84 #define DEV_FUNC_SR_FUNCID_MASK 0x0000000000030000ULL
85 #define DEV_FUNC_SR_TAS_SHIFT 31
86 #define DEV_FUNC_SR_TAS_MASK 0x0000000080000000ULL
88 typedef union _dev_func_sr_t
{
91 #if defined(_BIG_ENDIAN)
95 #if defined(_BIT_FIELDS_HTOL)
100 #elif defined(_BIT_FIELDS_LTOH)
107 #if !defined(_BIG_ENDIAN)
111 } dev_func_sr_t
, *p_dev_func_sr_t
;
115 * Multi Parition Control Register (partitiion manager)
117 #define MULTI_PART_CTL_REG (FZC_PIO + 0x00000)
118 #define MULTI_PART_CTL_MPC 0x0000000000000001ULL
120 typedef union _multi_part_ctl_t
{
123 #if defined(_BIG_ENDIAN)
127 #if defined(_BIT_FIELDS_HTOL)
130 #elif defined(_BIT_FIELDS_LTOH)
135 #if !defined(_BIG_ENDIAN)
139 } multi_part_ctl_t
, *p_multi_part_ctl_t
;
142 * Virtual DMA CSR Address (partition manager)
144 #define VADDR_REG (PIO_VADDR + 0x00000)
147 * DMA Channel Binding Register (partition manager)
149 #define DMA_BIND_REG (FZC_PIO + 0x10000)
150 #define DMA_BIND_RX_SHIFT 0
151 #define DMA_BIND_RX_MASK 0x000000000000001FULL
152 #define DMA_BIND_RX_BIND_SHIFT 5
153 #define DMA_BIND_RX_BIND_SET 0x0000000000000020ULL
154 #define DMA_BIND_RX_BIND_MASK 0x0000000000000020ULL
155 #define DMA_BIND_TX_SHIFT 8
156 #define DMA_BIND_TX_MASK 0x0000000000001f00ULL
157 #define DMA_BIND_TX_BIND_SHIFT 13
158 #define DMA_BIND_TX_BIND_SET 0x0000000000002000ULL
159 #define DMA_BIND_TX_BIND_MASK 0x0000000000002000ULL
161 typedef union _dma_bind_t
{
164 #if defined(_BIG_ENDIAN)
168 #if defined(_BIT_FIELDS_HTOL)
175 #elif defined(_BIT_FIELDS_LTOH)
184 #if !defined(_BIG_ENDIAN)
188 } dma_bind_t
, *p_dma_bind_t
;
192 * Logical device and group definitions.
194 #define NXGE_INT_MAX_LDS 69
195 #define NXGE_INT_MAX_LDGS 64
196 #define NXGE_LDGRP_PER_NIU_PORT (NXGE_INT_MAX_LDGS/2)
197 #define NXGE_LDGRP_PER_NEP_PORT (NXGE_INT_MAX_LDGS/4)
198 #define NXGE_LDGRP_PER_2PORTS (NXGE_INT_MAX_LDGS/2)
199 #define NXGE_LDGRP_PER_4PORTS (NXGE_INT_MAX_LDGS/4)
201 #define NXGE_RDMA_LD_START 0
202 #define NXGE_TDMA_LD_START 32
203 #define NXGE_MIF_LD 63
204 #define NXGE_MAC_LD_START 64
205 #define NXGE_MAC_LD_PORT0 64
206 #define NXGE_MAC_LD_PORT1 65
207 #define NXGE_MAC_LD_PORT2 66
208 #define NXGE_MAC_LD_PORT3 67
209 #define NXGE_SYS_ERROR_LD 68
212 * Logical Device Group Number
214 #define LDG_NUM_REG (FZC_PIO + 0x20000)
215 #define LDG_NUM_NUM_SHIFT 0
216 #define LDG_NUM_NUM_MASK 0x000000000000001FULL
218 typedef union _ldg_num_t
{
221 #if defined(_BIG_ENDIAN)
225 #if defined(_BIT_FIELDS_HTOL)
228 #elif defined(_BIT_FIELDS_LTOH)
233 #if !defined(_BIG_ENDIAN)
237 } ldg_num_t
, *p_ldg_num_t
;
240 * Logical Device State Vector
242 #define LDSV0_REG (PIO_LDSV + 0x00000)
243 #define LDSV0_LDF_SHIFT 0
244 #define LDSV0_LDF_MASK 0x00000000000003FFULL
245 #define LDG_NUM_NUM_MASK 0x000000000000001FULL
246 #define LDSV_MASK_ALL 0x0000000000000001ULL
249 * Logical Device State Vector 1
251 #define LDSV1_REG (PIO_LDSV + 0x00008)
254 * Logical Device State Vector 2
256 #define LDSV2_REG (PIO_LDSV + 0x00010)
258 /* For Logical Device State Vector 0 and 1 */
259 typedef union _ldsv_t
{
262 #if defined(_BIG_ENDIAN)
266 #if !defined(_BIG_ENDIAN)
272 #define LDSV2_LDF0_SHIFT 0
273 #define LDSV2_LDF0_MASK 0x000000000000001FULL
274 #define LDSV2_LDF1_SHIFT 5
275 #define LDSV2_LDF1_MASK 0x00000000000001E0ULL
277 typedef union _ldsv2_t
{
280 #if defined(_BIG_ENDIAN)
284 #if defined(_BIT_FIELDS_HTOL)
288 #elif defined(_BIT_FIELDS_LTOH)
294 #if !defined(_BIG_ENDIAN)
298 } ldsv2_t
, *p_ldsv2_t
;
301 * Logical Device Interrupt Mask 0
303 #define LD_IM0_REG (PIO_IMASK0 + 0x00000)
304 #define LD_IM0_SHIFT 0
305 #define LD_IM0_MASK 0x0000000000000003ULL
306 #define LD_IM_MASK 0x0000000000000003ULL
309 * Logical Device Interrupt Mask 1
311 #define LD_IM1_REG (PIO_IMASK1 + 0x00000)
312 #define LD_IM1_SHIFT 0
313 #define LD_IM1_MASK 0x0000000000000003ULL
315 /* For Lofical Device Interrupt Mask 0 and 1 */
316 typedef union _ld_im_t
{
319 #if defined(_BIG_ENDIAN)
324 #if defined(_BIT_FIELDS_HTOL)
327 #elif defined(_BIT_FIELDS_LTOH)
332 #if !defined(_BIG_ENDIAN)
336 } ld_im_t
, *p_ld_im_t
;
339 * Logical Device Group Interrupt Management
341 #define LDGIMGN_REG (PIO_LDSV + 0x00018)
342 #define LDGIMGN_TIMER_SHIFT 0
343 #define LDGIMGM_TIMER_MASK 0x000000000000003FULL
344 #define LDGIMGN_ARM_SHIFT 31
345 #define LDGIMGM_ARM 0x0000000080000000ULL
346 #define LDGIMGM_ARM_MASK 0x0000000080000000ULL
348 typedef union _ldgimgm_t
{
351 #if defined(_BIG_ENDIAN)
355 #if defined(_BIT_FIELDS_HTOL)
359 #elif defined(_BIT_FIELDS_LTOH)
365 #if !defined(_BIG_ENDIAN)
369 } ldgimgm_t
, *p_ldgimgm_t
;
372 * Logical Device Group Interrupt Timer Resolution
374 #define LDGITMRES_REG (FZC_PIO + 0x00008)
375 #define LDGTITMRES_RES_SHIFT 0 /* bits 19:0 */
376 #define LDGTITMRES_RES_MASK 0x00000000000FFFFFULL
377 typedef union _ldgitmres_t
{
380 #if defined(_BIG_ENDIAN)
384 #if defined(_BIT_FIELDS_HTOL)
387 #elif defined(_BIT_FIELDS_LTOH)
392 #if !defined(_BIG_ENDIAN)
396 } ldgitmres_t
, *p_ldgitmres_t
;
399 * System Interrupt Data
401 #define SID_REG (FZC_PIO + 0x10200)
402 #define SID_DATA_SHIFT 0 /* bits 6:0 */
403 #define SID_DATA_MASK 0x000000000000007FULL
404 #define SID_DATA_INTNUM_SHIFT 0 /* bits 4:0 */
405 #define SID_DATA_INTNUM_MASK 0x000000000000001FULL
406 #define SID_DATA_FUNCNUM_SHIFT 5 /* bits 6:5 */
407 #define SID_DATA_FUNCNUM_MASK 0x0000000000000060ULL
408 #define SID_PCI_FUNCTION_SHIFT (1 << 5)
409 #define SID_N2_INDEX (1 << 6)
411 #define SID_DATA(f, v) ((f << SID_DATA_FUNCNUM_SHIFT) | \
412 ((v << SID_DATA_SHIFT) & SID_DATA_INTNUM_MASK))
414 #define SID_DATA_N2(v) (v | SID_N2_INDEX)
416 typedef union _sid_t
{
419 #if defined(_BIG_ENDIAN)
423 #if defined(_BIT_FIELDS_HTOL)
426 #elif defined(_BIT_FIELDS_LTOH)
431 #if !defined(_BIG_ENDIAN)
440 #define RST_CTL_REG (FZC_PIO + 0x00038)
441 #define RST_CTL_MAC_RST3 0x0000000000400000ULL
442 #define RST_CTL_MAC_RST3_SHIFT 22
443 #define RST_CTL_MAC_RST2 0x0000000000200000ULL
444 #define RST_CTL_MAC_RST2_SHIFT 21
445 #define RST_CTL_MAC_RST1 0x0000000000100000ULL
446 #define RST_CTL_MAC_RST1_SHIFT 20
447 #define RST_CTL_MAC_RST0 0x0000000000080000ULL
448 #define RST_CTL_MAC_RST0_SHIFT 19
449 #define RST_CTL_EN_ACK_TO 0x0000000000000800ULL
450 #define RST_CTL_EN_ACK_TO_SHIFT 11
451 #define RST_CTL_ACK_TO_MASK 0x00000000000007FEULL
452 #define RST_CTL_ACK_TO_SHIFT 1
455 typedef union _rst_ctl_t
{
458 #if defined(_BIG_ENDIAN)
462 #if defined(_BIT_FIELDS_HTOL)
469 uint32_t ack_to_en
:1;
470 uint32_t ack_to_val
:10;
472 #elif defined(_BIT_FIELDS_LTOH)
474 uint32_t ack_to_val
:10;
475 uint32_t ack_to_en
:1;
484 #if !defined(_BIG_ENDIAN)
488 } rst_ctl_t
, *p_rst_ctl_t
;
493 #define SYS_ERR_MASK_REG (FZC_PIO + 0x00090)
496 * System Error Status
498 #define SYS_ERR_STAT_REG (FZC_PIO + 0x00098)
501 #define SYS_ERR_META2_MASK 0x0000000000000400ULL
502 #define SYS_ERR_META2_SHIFT 10
503 #define SYS_ERR_META1_MASK 0x0000000000000200ULL
504 #define SYS_ERR_META1_SHIFT 9
505 #define SYS_ERR_PEU_MASK 0x0000000000000100ULL
506 #define SYS_ERR_PEU_SHIFT 8
507 #define SYS_ERR_TXC_MASK 0x0000000000000080ULL
508 #define SYS_ERR_TXC_SHIFT 7
509 #define SYS_ERR_RDMC_MASK 0x0000000000000040ULL
510 #define SYS_ERR_RDMC_SHIFT 6
511 #define SYS_ERR_TDMC_MASK 0x0000000000000020ULL
512 #define SYS_ERR_TDMC_SHIFT 5
513 #define SYS_ERR_ZCP_MASK 0x0000000000000010ULL
514 #define SYS_ERR_ZCP_SHIFT 4
515 #define SYS_ERR_FFLP_MASK 0x0000000000000008ULL
516 #define SYS_ERR_FFLP_SHIFT 3
517 #define SYS_ERR_IPP_MASK 0x0000000000000004ULL
518 #define SYS_ERR_IPP_SHIFT 2
519 #define SYS_ERR_MAC_MASK 0x0000000000000002ULL
520 #define SYS_ERR_MAC_SHIFT 1
521 #define SYS_ERR_SMX_MASK 0x0000000000000001ULL
522 #define SYS_ERR_SMX_SHIFT 0
523 #define SYS_ERR_MASK_ALL (SYS_ERR_SMX_MASK | SYS_ERR_MAC_MASK | \
524 SYS_ERR_IPP_MASK | SYS_ERR_FFLP_MASK | \
525 SYS_ERR_ZCP_MASK | SYS_ERR_TDMC_MASK | \
526 SYS_ERR_RDMC_MASK | SYS_ERR_TXC_MASK | \
527 SYS_ERR_PEU_MASK | SYS_ERR_META1_MASK | \
531 typedef union _sys_err_mask_t
{
534 #if defined(_BIG_ENDIAN)
538 #if defined(_BIT_FIELDS_HTOL)
551 #elif defined(_BIT_FIELDS_LTOH)
566 #if !defined(_BIG_ENDIAN)
570 } sys_err_mask_t
, sys_err_stat_t
, *p_sys_err_mask_t
, *p_sys_err_stat_t
;
574 * Meta Arbiter Dirty Transaction ID Control
577 #define DIRTY_TID_CTL_REG (FZC_PIO + 0x0010)
578 #define DIRTY_TID_CTL_WR_THRES_MASK 0x00000000003F0000ULL
579 #define DIRTY_TID_CTL_WR_THRES_SHIFT 16
580 #define DIRTY_TID_CTL_RD_THRES_MASK 0x00000000000003F0ULL
581 #define DIRTY_TID_CTL_RD_THRES_SHIFT 4
582 #define DIRTY_TID_CTL_DTID_CLR 0x0000000000000002ULL
583 #define DIRTY_TID_CTL_DTID_CLR_SHIFT 1
584 #define DIRTY_TID_CTL_DTID_EN 0x0000000000000001ULL
585 #define DIRTY_TID_CTL_DTID_EN_SHIFT 0
587 typedef union _dty_tid_ctl_t
{
590 #if defined(_BIG_ENDIAN)
594 #if defined(_BIT_FIELDS_HTOL)
596 uint32_t np_wr_thres_val
:6;
598 uint32_t np_rd_thres_val
:6;
600 uint32_t dty_tid_clr
:1;
601 uint32_t dty_tid_en
:1;
602 #elif defined(_BIT_FIELDS_LTOH)
603 uint32_t dty_tid_en
:1;
604 uint32_t dty_tid_clr
:1;
606 uint32_t np_rd_thres_val
:6;
608 uint32_t np_wr_thres_val
:6;
612 #if !defined(_BIG_ENDIAN)
616 } dty_tid_ctl_t
, *p_dty_tid_ctl_t
;
620 * Meta Arbiter Dirty Transaction ID Status
622 #define DIRTY_TID_STAT_REG (FZC_PIO + 0x0018)
623 #define DIRTY_TID_STAT_WR_TID_DTY_CNT_MASK 0x0000000000003F00ULL
624 #define DIRTY_TID_STAT_WR_TID_DTY_CNT_SHIFT 8
625 #define DIRTY_TID_STAT_RD_TID_DTY_CNT_MASK 0x000000000000003FULL
626 #define DIRTY_TID_STAT_RD_TID_DTY_CNT_SHIFT 0
628 typedef union _dty_tid_stat_t
{
631 #if defined(_BIG_ENDIAN)
635 #if defined(_BIT_FIELDS_HTOL)
637 uint32_t wr_tid_dirty_cnt
:6;
639 uint32_t rd_tid_dirty_cnt
:6;
640 #elif defined(_BIT_FIELDS_LTOH)
641 uint32_t rd_tid_dirty_cnt
:6;
643 uint32_t wr_tid_dirty_cnt
:6;
647 #if !defined(_BIG_ENDIAN)
651 } dty_tid_stat_t
, *p_dty_tid_stat_t
;
657 #define SMX_CFIG_DAT_REG (FZC_PIO + 0x00040)
658 #define SMX_CFIG_DAT_RAS_DET_EN_MASK 0x0000000080000000ULL
659 #define SMX_CFIG_DAT_RAS_DET_EN_SHIFT 31
660 #define SMX_CFIG_DAT_RAS_INJ_EN_MASK 0x0000000040000000ULL
661 #define SMX_CFIG_DAT_RAS_INJ_EN_SHIFT 30
662 #define SMX_CFIG_DAT_TRANS_TO_MASK 0x000000000FFFFFFFULL
663 #define SMX_CFIG_DAT_TRANS_TO_SHIFT 0
665 typedef union _smx_cfg_dat_t
{
668 #if defined(_BIG_ENDIAN)
672 #if defined(_BIT_FIELDS_HTOL)
673 uint32_t res_err_det
:1;
674 uint32_t ras_err_inj_en
:1;
676 uint32_t trans_to_val
:28;
677 #elif defined(_BIT_FIELDS_LTOH)
678 uint32_t trans_to_val
:28;
680 uint32_t ras_err_inj_en
:1;
681 uint32_t res_err_det
:1;
684 #if !defined(_BIG_ENDIAN)
688 } smx_cfg_dat_t
, *p_smx_cfg_dat_t
;
691 #define SMX_INT_STAT_REG (FZC_PIO + 0x00048)
692 #define SMX_INT_STAT_SM_MASK 0x00000000FFFFFFC0ULL
693 #define SMX_INT_STAT_SM_SHIFT 6
695 typedef union _smx_int_stat_t
{
698 #if defined(_BIG_ENDIAN)
702 #if defined(_BIT_FIELDS_HTOL)
703 uint32_t st_mc_stat
:26;
705 #elif defined(_BIT_FIELDS_LTOH)
707 uint32_t st_mc_stat
:26;
710 #if !defined(_BIG_ENDIAN)
714 } smx_int_stat_t
, *p_smx_int_stat_t
;
717 #define SMX_CTL_REG (FZC_PIO + 0x00050)
719 typedef union _smx_ctl_t
{
722 #if defined(_BIG_ENDIAN)
726 #if defined(_BIT_FIELDS_HTOL)
728 uint32_t resp_err_inj
:3;
730 uint32_t xtb_err_inj
:3;
733 #elif defined(_BIT_FIELDS_LTOH)
736 uint32_t xtb_err_inj
:3;
738 uint32_t resp_err_inj
:3;
742 #if !defined(_BIG_ENDIAN)
746 } smx_ctl_t
, *p_smx_ctl_t
;
749 #define SMX_DBG_VEC_REG (FZC_PIO + 0x00058)
751 typedef union _smx_dbg_vec_t
{
754 #if defined(_BIG_ENDIAN)
758 uint32_t dbg_tng_vec
;
760 #if !defined(_BIG_ENDIAN)
764 } smx_dbg_vec_t
, *p_smx_dbg_vec_t
;
771 #define PIO_DBG_SEL_REG (FZC_PIO + 0x00060)
773 typedef union _pio_dbg_sel_t
{
776 #if defined(_BIG_ENDIAN)
782 #if !defined(_BIG_ENDIAN)
786 } pio_dbg_sel_t
, *p_pio_dbg_sel_t
;
789 #define PIO_TRAIN_VEC_REG (FZC_PIO + 0x00068)
791 typedef union _pio_tng_vec_t
{
794 #if defined(_BIG_ENDIAN)
798 uint32_t training_vec
;
800 #if !defined(_BIG_ENDIAN)
804 } pio_tng_vec_t
, *p_pio_tng_vec_t
;
806 #define PIO_ARB_CTL_REG (FZC_PIO + 0x00070)
808 typedef union _pio_arb_ctl_t
{
811 #if defined(_BIG_ENDIAN)
817 #if !defined(_BIG_ENDIAN)
821 } pio_arb_ctl_t
, *p_pio_arb_ctl_t
;
823 #define PIO_ARB_DBG_VEC_REG (FZC_PIO + 0x00078)
825 typedef union _pio_arb_dbg_vec_t
{
828 #if defined(_BIG_ENDIAN)
834 #if !defined(_BIG_ENDIAN)
838 } pio_arb_dbg_vec_t
, *p_pio_arb_dbg_vec_t
;
845 #define GPIO_EN_REG (FZC_PIO + 0x00028)
846 #define GPIO_EN_ENABLE_MASK 0x000000000000FFFFULL
847 #define GPIO_EN_ENABLE_SHIFT 0
848 typedef union _gpio_en_t
{
851 #if defined(_BIG_ENDIAN)
855 #if defined(_BIT_FIELDS_HTOL)
858 #elif defined(_BIT_FIELDS_LTOH)
863 #if !defined(_BIG_ENDIAN)
867 } gpio_en_t
, *p_gpio_en_t
;
869 #define GPIO_DATA_IN_REG (FZC_PIO + 0x00030)
870 #define GPIO_DATA_IN_MASK 0x000000000000FFFFULL
871 #define GPIO_DATA_IN_SHIFT 0
872 typedef union _gpio_data_in_t
{
875 #if defined(_BIG_ENDIAN)
879 #if defined(_BIT_FIELDS_HTOL)
882 #elif defined(_BIT_FIELDS_LTOH)
887 #if !defined(_BIG_ENDIAN)
891 } gpio_data_in_t
, *p_gpio_data_in_t
;
895 * PCI Express Interface Module (PIM) registers
897 #define PIM_CONTROL_REG (FZC_PIM + 0x0)
898 #define PIM_CONTROL_DBG_SEL_MASK 0x000000000000000FULL
899 #define PIM_CONTROL_DBG_SEL_SHIFT 0
900 typedef union _pim_ctl_t
{
903 #if defined(_BIG_ENDIAN)
907 #if defined(_BIT_FIELDS_HTOL)
910 #elif defined(_BIT_FIELDS_LTOH)
915 #if !defined(_BIG_ENDIAN)
919 } pim_ctl_t
, *p_pim_ctl_t
;
921 #define PIM_DBG_TRAINING_VEC_REG (FZC_PIM + 0x00008)
922 #define PIM_DBG_TRAINING_VEC_MASK 0x00000000FFFFFFFFULL
924 #define PIM_INTR_STATUS_REG (FZC_PIM + 0x00010)
925 #define PIM_INTR_STATUS_MASK 0x00000000FFFFFFFFULL
927 #define PIM_INTERNAL_STATUS_REG (FZC_PIM + 0x00018)
928 #define PIM_INTERNAL_STATUS_MASK 0x00000000FFFFFFFFULL
930 #define PIM_INTR_MASK_REG (FZC_PIM + 0x00020)
931 #define PIM_INTR_MASK_MASK 0x00000000FFFFFFFFULL
934 * Partitioning Logical pages Definition registers.
935 * (used by both receive and transmit DMA channels)
938 /* Logical page definitions */
939 typedef union _log_page_vld_t
{
942 #if defined(_BIG_ENDIAN)
946 #if defined(_BIT_FIELDS_HTOL)
951 #elif defined(_BIT_FIELDS_LTOH)
958 #if !defined(_BIG_ENDIAN)
962 } log_page_vld_t
, *p_log_page_vld_t
;
965 #define DMA_LOG_PAGE_MASK_SHIFT 0
966 #define DMA_LOG_PAGE_MASK_MASK 0x00000000ffffffffULL
968 /* Receive Logical Page Mask */
969 typedef union _log_page_mask_t
{
972 #if defined(_BIG_ENDIAN)
976 #if defined(_BIT_FIELDS_HTOL)
978 #elif defined(_BIT_FIELDS_LTOH)
982 #if !defined(_BIG_ENDIAN)
986 } log_page_mask_t
, *p_log_page_mask_t
;
989 /* Receive Logical Page Value */
990 #define DMA_LOG_PAGE_VALUE_SHIFT 0
991 #define DMA_LOG_PAGE_VALUE_MASK 0x00000000ffffffffULL
993 /* Receive Logical Page Value */
994 typedef union _log_page_value_t
{
997 #if defined(_BIG_ENDIAN)
1001 #if defined(_BIT_FIELDS_HTOL)
1003 #elif defined(_BIT_FIELDS_LTOH)
1007 #if !defined(_BIG_ENDIAN)
1011 } log_page_value_t
, *p_log_page_value_t
;
1013 /* Receive Logical Page Relocation */
1014 #define DMA_LOG_PAGE_RELO_SHIFT 0 /* bits 31:0 */
1015 #define DMA_LOG_PAGE_RELO_MASK 0x00000000ffffffffULL
1017 /* Receive Logical Page Relocation */
1018 typedef union _log_page_relo_t
{
1021 #if defined(_BIG_ENDIAN)
1025 #if defined(_BIT_FIELDS_HTOL)
1027 #elif defined(_BIT_FIELDS_LTOH)
1031 #if !defined(_BIG_ENDIAN)
1035 } log_page_relo_t
, *p_log_page_relo_t
;
1038 /* Receive Logical Page Handle */
1039 #define DMA_LOG_PAGE_HANDLE_SHIFT 0 /* bits 19:0 */
1040 #define DMA_LOG_PAGE_HANDLE_MASK 0x00000000ffffffffULL
1042 /* Receive Logical Page Handle */
1043 typedef union _log_page_hdl_t
{
1046 #if defined(_BIG_ENDIAN)
1050 #if defined(_BIT_FIELDS_HTOL)
1053 #elif defined(_BIT_FIELDS_LTOH)
1058 #if !defined(_BIG_ENDIAN)
1062 } log_page_hdl_t
, *p_log_page_hdl_t
;
1068 #endif /* _SYS_NXGE_NXGE_HW_H */