1a23fd118Syl /* 2a23fd118Syl * CDDL HEADER START 3a23fd118Syl * 4a23fd118Syl * The contents of this file are subject to the terms of the 5a23fd118Syl * Common Development and Distribution License (the "License"). 6a23fd118Syl * You may not use this file except in compliance with the License. 7a23fd118Syl * 8a23fd118Syl * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9a23fd118Syl * or http://www.opensolaris.org/os/licensing. 10a23fd118Syl * See the License for the specific language governing permissions 11a23fd118Syl * and limitations under the License. 12a23fd118Syl * 13a23fd118Syl * When distributing Covered Code, include this CDDL HEADER in each 14a23fd118Syl * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15a23fd118Syl * If applicable, add the following below this CDDL HEADER, with the 16a23fd118Syl * fields enclosed by brackets "[]" replaced with your own identifying 17a23fd118Syl * information: Portions Copyright [yyyy] [name of copyright owner] 18a23fd118Syl * 19a23fd118Syl * CDDL HEADER END 20a23fd118Syl * 218347601bSyl * Copyright (c) 2002-2006 Neterion, Inc. 22a23fd118Syl */ 23a23fd118Syl 24da14cebeSEric Cheng /* 25da14cebeSEric Cheng * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 26da14cebeSEric Cheng * Use is subject to license terms. 27da14cebeSEric Cheng */ 28da14cebeSEric Cheng 29a23fd118Syl #ifndef XGE_HAL_REGS_H 30a23fd118Syl #define XGE_HAL_REGS_H 31a23fd118Syl 327eced415Sxw __EXTERN_BEGIN_DECLS 337eced415Sxw 34a23fd118Syl typedef struct { 35a23fd118Syl 36a23fd118Syl /* General Control-Status Registers */ 37a23fd118Syl u64 general_int_status; 38a23fd118Syl #define XGE_HAL_GEN_INTR_TXPIC BIT(0) 39a23fd118Syl #define XGE_HAL_GEN_INTR_TXDMA BIT(1) 40a23fd118Syl #define XGE_HAL_GEN_INTR_TXMAC BIT(2) 41a23fd118Syl #define XGE_HAL_GEN_INTR_TXXGXS BIT(3) 42a23fd118Syl #define XGE_HAL_GEN_INTR_TXTRAFFIC BIT(8) 43a23fd118Syl #define XGE_HAL_GEN_INTR_RXPIC BIT(32) 44a23fd118Syl #define XGE_HAL_GEN_INTR_RXDMA BIT(33) 45a23fd118Syl #define XGE_HAL_GEN_INTR_RXMAC BIT(34) 46a23fd118Syl #define XGE_HAL_GEN_INTR_MC BIT(35) 47a23fd118Syl #define XGE_HAL_GEN_INTR_RXXGXS BIT(36) 48a23fd118Syl #define XGE_HAL_GEN_INTR_RXTRAFFIC BIT(40) 49a23fd118Syl #define XGE_HAL_GEN_ERROR_INTR (XGE_HAL_GEN_INTR_TXPIC | \ 50a23fd118Syl XGE_HAL_GEN_INTR_RXPIC | \ 51a23fd118Syl XGE_HAL_GEN_INTR_TXDMA | \ 52a23fd118Syl XGE_HAL_GEN_INTR_RXDMA | \ 53a23fd118Syl XGE_HAL_GEN_INTR_TXMAC | \ 54a23fd118Syl XGE_HAL_GEN_INTR_RXMAC | \ 55a23fd118Syl XGE_HAL_GEN_INTR_TXXGXS | \ 56a23fd118Syl XGE_HAL_GEN_INTR_RXXGXS | \ 57a23fd118Syl XGE_HAL_GEN_INTR_MC) 58a23fd118Syl 59a23fd118Syl u64 general_int_mask; 60a23fd118Syl 61a23fd118Syl u8 unused0[0x100 - 0x10]; 62a23fd118Syl 63a23fd118Syl u64 sw_reset; 64a23fd118Syl 65a23fd118Syl /* XGXS must be removed from reset only once. */ 66a23fd118Syl #define XGE_HAL_SW_RESET_XENA vBIT(0xA5,0,8) 67a23fd118Syl #define XGE_HAL_SW_RESET_FLASH vBIT(0xA5,8,8) 68a23fd118Syl #define XGE_HAL_SW_RESET_EOI vBIT(0xA5,16,8) 69a23fd118Syl #define XGE_HAL_SW_RESET_XGXS vBIT(0xA5,24,8) 70a23fd118Syl #define XGE_HAL_SW_RESET_ALL (XGE_HAL_SW_RESET_XENA | \ 71a23fd118Syl XGE_HAL_SW_RESET_FLASH | \ 72a23fd118Syl XGE_HAL_SW_RESET_EOI | \ 73a23fd118Syl XGE_HAL_SW_RESET_XGXS) 74a23fd118Syl 75a23fd118Syl /* The SW_RESET register must read this value after a successful reset. */ 76a23fd118Syl #if defined(XGE_OS_HOST_BIG_ENDIAN) && !defined(XGE_OS_PIO_LITTLE_ENDIAN) 77a23fd118Syl #define XGE_HAL_SW_RESET_RAW_VAL_XENA 0xA500000000ULL 78a23fd118Syl #define XGE_HAL_SW_RESET_RAW_VAL_HERC 0xA5A500000000ULL 79a23fd118Syl #else 80a23fd118Syl #define XGE_HAL_SW_RESET_RAW_VAL_XENA 0xA5000000ULL 81a23fd118Syl #define XGE_HAL_SW_RESET_RAW_VAL_HERC 0xA5A50000ULL 82a23fd118Syl #endif 83a23fd118Syl 84a23fd118Syl 85a23fd118Syl u64 adapter_status; 86a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_TDMA_READY BIT(0) 87a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_RDMA_READY BIT(1) 88a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_PFC_READY BIT(2) 89a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_TMAC_BUF_EMPTY BIT(3) 90a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_PIC_QUIESCENT BIT(5) 91a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_RMAC_REMOTE_FAULT BIT(6) 92a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_RMAC_LOCAL_FAULT BIT(7) 93a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_RMAC_PCC_IDLE vBIT(0xFF,8,8) 94a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_RMAC_PCC_4_IDLE vBIT(0x0F,8,8) 95a23fd118Syl #define XGE_HAL_ADAPTER_PCC_ENABLE_FOUR vBIT(0x0F,0,8) 96a23fd118Syl 97a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_RC_PRC_QUIESCENT vBIT(0xFF,16,8) 98a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_MC_DRAM_READY BIT(24) 99a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_MC_QUEUES_READY BIT(25) 100a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_M_PLL_LOCK BIT(30) 101a23fd118Syl #define XGE_HAL_ADAPTER_STATUS_P_PLL_LOCK BIT(31) 102a23fd118Syl 103a23fd118Syl u64 adapter_control; 104a23fd118Syl #define XGE_HAL_ADAPTER_CNTL_EN BIT(7) 105a23fd118Syl #define XGE_HAL_ADAPTER_EOI_TX_ON BIT(15) 106a23fd118Syl #define XGE_HAL_ADAPTER_LED_ON BIT(23) 107a23fd118Syl #define XGE_HAL_ADAPTER_UDPI(val) vBIT(val,36,4) 108a23fd118Syl #define XGE_HAL_ADAPTER_WAIT_INT BIT(48) 109a23fd118Syl #define XGE_HAL_ADAPTER_ECC_EN BIT(55) 110a23fd118Syl 111a23fd118Syl u64 serr_source; 112a23fd118Syl #define XGE_HAL_SERR_SOURCE_PIC BIT(0) 113a23fd118Syl #define XGE_HAL_SERR_SOURCE_TXDMA BIT(1) 114a23fd118Syl #define XGE_HAL_SERR_SOURCE_RXDMA BIT(2) 115a23fd118Syl #define XGE_HAL_SERR_SOURCE_MAC BIT(3) 116a23fd118Syl #define XGE_HAL_SERR_SOURCE_MC BIT(4) 117a23fd118Syl #define XGE_HAL_SERR_SOURCE_XGXS BIT(5) 118a23fd118Syl #define XGE_HAL_SERR_SOURCE_ANY (XGE_HAL_SERR_SOURCE_PIC | \ 119a23fd118Syl XGE_HAL_SERR_SOURCE_TXDMA | \ 120a23fd118Syl XGE_HAL_SERR_SOURCE_RXDMA | \ 121a23fd118Syl XGE_HAL_SERR_SOURCE_MAC | \ 122a23fd118Syl XGE_HAL_SERR_SOURCE_MC | \ 123a23fd118Syl XGE_HAL_SERR_SOURCE_XGXS) 124a23fd118Syl 125a23fd118Syl u64 pci_info; 126a23fd118Syl #define XGE_HAL_PCI_INFO vBIT(0xF,0,4) 127a23fd118Syl #define XGE_HAL_PCI_32_BIT BIT(8) 1288347601bSyl 1298347601bSyl u8 unused0_1[0x160 - 0x128]; 130*55fea89dSDan Cross 1318347601bSyl u64 ric_status; 1328347601bSyl 1338347601bSyl u8 unused0_2[0x558 - 0x168]; 1348347601bSyl 1358347601bSyl u64 mbist_status; 1368347601bSyl 1378347601bSyl u8 unused0_3[0x800 - 0x560]; 138a23fd118Syl 139a23fd118Syl /* PCI-X Controller registers */ 140a23fd118Syl u64 pic_int_status; 141a23fd118Syl u64 pic_int_mask; 142a23fd118Syl #define XGE_HAL_PIC_INT_TX BIT(0) 143a23fd118Syl #define XGE_HAL_PIC_INT_FLSH BIT(1) 144a23fd118Syl #define XGE_HAL_PIC_INT_MDIO BIT(2) 145a23fd118Syl #define XGE_HAL_PIC_INT_IIC BIT(3) 146a23fd118Syl #define XGE_HAL_PIC_INT_MISC BIT(4) 147a23fd118Syl #define XGE_HAL_PIC_INT_RX BIT(32) 148a23fd118Syl 149a23fd118Syl u64 txpic_int_reg; 150a23fd118Syl #define XGE_HAL_TXPIC_INT_SCHED_INTR BIT(42) 151a23fd118Syl u64 txpic_int_mask; 152a23fd118Syl #define XGE_HAL_PCIX_INT_REG_ECC_SG_ERR BIT(0) 153a23fd118Syl #define XGE_HAL_PCIX_INT_REG_ECC_DB_ERR BIT(1) 154a23fd118Syl #define XGE_HAL_PCIX_INT_REG_FLASHR_R_FSM_ERR BIT(8) 155a23fd118Syl #define XGE_HAL_PCIX_INT_REG_FLASHR_W_FSM_ERR BIT(9) 156a23fd118Syl #define XGE_HAL_PCIX_INT_REG_INI_TX_FSM_SERR BIT(10) 157a23fd118Syl #define XGE_HAL_PCIX_INT_REG_INI_TXO_FSM_ERR BIT(11) 158a23fd118Syl #define XGE_HAL_PCIX_INT_REG_TRT_FSM_SERR BIT(13) 159a23fd118Syl #define XGE_HAL_PCIX_INT_REG_SRT_FSM_SERR BIT(14) 160a23fd118Syl #define XGE_HAL_PCIX_INT_REG_PIFR_FSM_SERR BIT(15) 161a23fd118Syl #define XGE_HAL_PCIX_INT_REG_WRC_TX_SEND_FSM_SERR BIT(21) 162a23fd118Syl #define XGE_HAL_PCIX_INT_REG_RRC_TX_REQ_FSM_SERR BIT(23) 163a23fd118Syl #define XGE_HAL_PCIX_INT_REG_INI_RX_FSM_SERR BIT(48) 164a23fd118Syl #define XGE_HAL_PCIX_INT_REG_RA_RX_FSM_SERR BIT(50) 165a23fd118Syl /* 166a23fd118Syl #define XGE_HAL_PCIX_INT_REG_WRC_RX_SEND_FSM_SERR BIT(52) 167a23fd118Syl #define XGE_HAL_PCIX_INT_REG_RRC_RX_REQ_FSM_SERR BIT(54) 168a23fd118Syl #define XGE_HAL_PCIX_INT_REG_RRC_RX_SPLIT_FSM_SERR BIT(58) 169a23fd118Syl */ 170a23fd118Syl u64 txpic_alarms; 171a23fd118Syl u64 rxpic_int_reg; 172a23fd118Syl #define XGE_HAL_RX_PIC_INT_REG_SPDM_READY BIT(0) 173a23fd118Syl #define XGE_HAL_RX_PIC_INT_REG_SPDM_OVERWRITE_ERR BIT(44) 174a23fd118Syl #define XGE_HAL_RX_PIC_INT_REG_SPDM_PERR BIT(55) 175a23fd118Syl u64 rxpic_int_mask; 176a23fd118Syl u64 rxpic_alarms; 177a23fd118Syl 178a23fd118Syl u64 flsh_int_reg; 179a23fd118Syl u64 flsh_int_mask; 180a23fd118Syl #define XGE_HAL_PIC_FLSH_INT_REG_CYCLE_FSM_ERR BIT(63) 181a23fd118Syl #define XGE_HAL_PIC_FLSH_INT_REG_ERR BIT(62) 182a23fd118Syl u64 flash_alarms; 183a23fd118Syl 184a23fd118Syl u64 mdio_int_reg; 185a23fd118Syl u64 mdio_int_mask; 186a23fd118Syl #define XGE_HAL_MDIO_INT_REG_MDIO_BUS_ERR BIT(0) 187a23fd118Syl #define XGE_HAL_MDIO_INT_REG_DTX_BUS_ERR BIT(8) 188a23fd118Syl #define XGE_HAL_MDIO_INT_REG_LASI BIT(39) 189a23fd118Syl u64 mdio_alarms; 190a23fd118Syl 191a23fd118Syl u64 iic_int_reg; 192a23fd118Syl u64 iic_int_mask; 193a23fd118Syl #define XGE_HAL_IIC_INT_REG_BUS_FSM_ERR BIT(4) 194a23fd118Syl #define XGE_HAL_IIC_INT_REG_BIT_FSM_ERR BIT(5) 195a23fd118Syl #define XGE_HAL_IIC_INT_REG_CYCLE_FSM_ERR BIT(6) 196a23fd118Syl #define XGE_HAL_IIC_INT_REG_REQ_FSM_ERR BIT(7) 197a23fd118Syl #define XGE_HAL_IIC_INT_REG_ACK_ERR BIT(8) 198a23fd118Syl u64 iic_alarms; 199a23fd118Syl 2008347601bSyl u64 msi_pending_reg; 201a23fd118Syl 202a23fd118Syl u64 misc_int_reg; 203a23fd118Syl #define XGE_HAL_MISC_INT_REG_DP_ERR_INT BIT(0) 204a23fd118Syl #define XGE_HAL_MISC_INT_REG_LINK_DOWN_INT BIT(1) 205a23fd118Syl #define XGE_HAL_MISC_INT_REG_LINK_UP_INT BIT(2) 206a23fd118Syl u64 misc_int_mask; 207a23fd118Syl u64 misc_alarms; 208a23fd118Syl 2098347601bSyl u64 msi_triggered_reg; 2108347601bSyl 2118347601bSyl u64 xfp_gpio_int_reg; 2128347601bSyl u64 xfp_gpio_int_mask; 2138347601bSyl u64 xfp_alarms; 2148347601bSyl 2158347601bSyl u8 unused5[0x8E0 - 0x8C8]; 216a23fd118Syl 217a23fd118Syl u64 tx_traffic_int; 218a23fd118Syl #define XGE_HAL_TX_TRAFFIC_INT_n(n) BIT(n) 219a23fd118Syl u64 tx_traffic_mask; 220a23fd118Syl 221a23fd118Syl u64 rx_traffic_int; 222a23fd118Syl #define XGE_HAL_RX_TRAFFIC_INT_n(n) BIT(n) 223a23fd118Syl u64 rx_traffic_mask; 224a23fd118Syl 225a23fd118Syl /* PIC Control registers */ 226a23fd118Syl u64 pic_control; 227a23fd118Syl #define XGE_HAL_PIC_CNTL_RX_ALARM_MAP_1 BIT(0) 228a23fd118Syl #define XGE_HAL_PIC_CNTL_ONE_SHOT_TINT BIT(1) 229a23fd118Syl #define XGE_HAL_PIC_CNTL_SHARED_SPLITS(n) vBIT(n,11,4) 230a23fd118Syl 231a23fd118Syl u64 swapper_ctrl; 232a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_PIF_R_FE BIT(0) 233a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_PIF_R_SE BIT(1) 234a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_PIF_W_FE BIT(8) 235a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_PIF_W_SE BIT(9) 236a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_RTH_FE BIT(10) 237a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_RTH_SE BIT(11) 238a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_TXP_FE BIT(16) 239a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_TXP_SE BIT(17) 240a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_TXD_R_FE BIT(18) 241a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_TXD_R_SE BIT(19) 242a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_TXD_W_FE BIT(20) 243a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_TXD_W_SE BIT(21) 244a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_TXF_R_FE BIT(22) 245a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_TXF_R_SE BIT(23) 246a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_RXD_R_FE BIT(32) 247a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_RXD_R_SE BIT(33) 248a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_RXD_W_FE BIT(34) 249a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_RXD_W_SE BIT(35) 250a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_RXF_W_FE BIT(36) 251a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_RXF_W_SE BIT(37) 252a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_XMSI_FE BIT(40) 253a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_XMSI_SE BIT(41) 254a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_STATS_FE BIT(48) 255a23fd118Syl #define XGE_HAL_SWAPPER_CTRL_STATS_SE BIT(49) 256a23fd118Syl 257a23fd118Syl u64 pif_rd_swapper_fb; 258a23fd118Syl #define XGE_HAL_IF_RD_SWAPPER_FB 0x0123456789ABCDEFULL 259a23fd118Syl 260a23fd118Syl u64 scheduled_int_ctrl; 261a23fd118Syl #define XGE_HAL_SCHED_INT_CTRL_TIMER_EN BIT(0) 262a23fd118Syl #define XGE_HAL_SCHED_INT_CTRL_ONE_SHOT BIT(1) 263a23fd118Syl #define XGE_HAL_SCHED_INT_CTRL_INT2MSI(val) vBIT(val,10,6) 264a23fd118Syl #define XGE_HAL_SCHED_INT_PERIOD(val) vBIT(val,32,32) 265a23fd118Syl #define XGE_HAL_SCHED_INT_PERIOD_MASK 0xFFFFFFFF00000000ULL 266a23fd118Syl 267a23fd118Syl 268a23fd118Syl u64 txreqtimeout; 269a23fd118Syl #define XGE_HAL_TXREQTO_VAL(val) vBIT(val,0,32) 270a23fd118Syl #define XGE_HAL_TXREQTO_EN BIT(63) 271a23fd118Syl 272a23fd118Syl u64 statsreqtimeout; 273a23fd118Syl #define XGE_HAL_STATREQTO_VAL(n) TBD 274a23fd118Syl #define XGE_HAL_STATREQTO_EN BIT(63) 275a23fd118Syl 276a23fd118Syl u64 read_retry_delay; 277a23fd118Syl u64 read_retry_acceleration; 278a23fd118Syl u64 write_retry_delay; 279a23fd118Syl u64 write_retry_acceleration; 280a23fd118Syl 281a23fd118Syl u64 xmsi_control; 282a23fd118Syl #define XGE_HAL_XMSI_EN BIT(0) 283a23fd118Syl #define XGE_HAL_XMSI_DIS_TINT_SERR BIT(1) 2848347601bSyl #define XGE_HAL_XMSI_BYTE_COUNT(val) vBIT(val,13,3) 285a23fd118Syl 286a23fd118Syl u64 xmsi_access; 287a23fd118Syl #define XGE_HAL_XMSI_WR_RDN BIT(7) 288a23fd118Syl #define XGE_HAL_XMSI_STROBE BIT(15) 289a23fd118Syl #define XGE_HAL_XMSI_NO(val) vBIT(val,26,6) 290a23fd118Syl 291a23fd118Syl u64 xmsi_address; 292a23fd118Syl u64 xmsi_data; 293a23fd118Syl 294a23fd118Syl u64 rx_mat; 295a23fd118Syl #define XGE_HAL_SET_RX_MAT(ring, msi) vBIT(msi, (8 * ring), 8) 296a23fd118Syl 297a23fd118Syl u8 unused6[0x8]; 298a23fd118Syl 299a23fd118Syl u64 tx_mat[8]; 300a23fd118Syl #define XGE_HAL_SET_TX_MAT(fifo, msi) vBIT(msi, (8 * fifo), 8) 301a23fd118Syl 302a23fd118Syl u64 xmsi_mask_reg; 303a23fd118Syl 304a23fd118Syl /* Automated statistics collection */ 305a23fd118Syl u64 stat_byte_cnt; 3067eced415Sxw #define XGE_HAL_STAT_BYTE_CNT(n) vBIT(n, 4, 12) 307a23fd118Syl u64 stat_cfg; 308a23fd118Syl #define XGE_HAL_STAT_CFG_STAT_EN BIT(0) 309a23fd118Syl #define XGE_HAL_STAT_CFG_ONE_SHOT_EN BIT(1) 310a23fd118Syl #define XGE_HAL_STAT_CFG_STAT_NS_EN BIT(8) 311a23fd118Syl #define XGE_HAL_STAT_CFG_STAT_RO BIT(9) 312a23fd118Syl #define XGE_HAL_XENA_PER_SEC 0x208d5 313a23fd118Syl #define XGE_HAL_SET_UPDT_PERIOD(n) vBIT(n,32,32) 314a23fd118Syl 315a23fd118Syl u64 stat_addr; 316a23fd118Syl 317a23fd118Syl /* General Configuration */ 318a23fd118Syl u64 mdio_control; 3198347601bSyl #define XGE_HAL_MDIO_CONTROL_MMD_INDX_ADDR(n) vBIT(n,0,16) 3208347601bSyl #define XGE_HAL_MDIO_CONTROL_MMD_DEV_ADDR(n) vBIT(n,19,5) 3218347601bSyl #define XGE_HAL_MDIO_CONTROL_MMD_PRT_ADDR(n) vBIT(n,27,5) 3228347601bSyl #define XGE_HAL_MDIO_CONTROL_MMD_DATA(n) vBIT(n,32,16) 3238347601bSyl #define XGE_HAL_MDIO_CONTROL_MMD_CTRL(n) vBIT(n,56,4) 3248347601bSyl #define XGE_HAL_MDIO_CONTROL_MMD_OP(n) vBIT(n,60,2) 3258347601bSyl #define XGE_HAL_MDIO_CONTROL_MMD_DATA_GET(n) ((n>>16)&0xFFFF) 3268347601bSyl #define XGE_HAL_MDIO_MMD_PMA_DEV_ADDR 0x01 3278347601bSyl #define XGE_HAL_MDIO_DOM_REG_ADDR 0xA100 3288347601bSyl #define XGE_HAL_MDIO_ALARM_FLAGS_ADDR 0xA070 3298347601bSyl #define XGE_HAL_MDIO_WARN_FLAGS_ADDR 0xA074 3308347601bSyl #define XGE_HAL_MDIO_CTRL_START 0xE 3318347601bSyl #define XGE_HAL_MDIO_OP_ADDRESS 0x0 3328347601bSyl #define XGE_HAL_MDIO_OP_WRITE 0x1 3338347601bSyl #define XGE_HAL_MDIO_OP_READ 0x3 3348347601bSyl #define XGE_HAL_MDIO_OP_READ_POST_INCREMENT 0x2 3358347601bSyl #define XGE_HAL_MDIO_ALARM_TEMPHIGH 0x0080 3368347601bSyl #define XGE_HAL_MDIO_ALARM_TEMPLOW 0x0040 3378347601bSyl #define XGE_HAL_MDIO_ALARM_BIASHIGH 0x0008 3388347601bSyl #define XGE_HAL_MDIO_ALARM_BIASLOW 0x0004 3398347601bSyl #define XGE_HAL_MDIO_ALARM_POUTPUTHIGH 0x0002 3408347601bSyl #define XGE_HAL_MDIO_ALARM_POUTPUTLOW 0x0001 3418347601bSyl #define XGE_HAL_MDIO_WARN_TEMPHIGH 0x0080 3428347601bSyl #define XGE_HAL_MDIO_WARN_TEMPLOW 0x0040 3438347601bSyl #define XGE_HAL_MDIO_WARN_BIASHIGH 0x0008 3448347601bSyl #define XGE_HAL_MDIO_WARN_BIASLOW 0x0004 3458347601bSyl #define XGE_HAL_MDIO_WARN_POUTPUTHIGH 0x0002 3468347601bSyl #define XGE_HAL_MDIO_WARN_POUTPUTLOW 0x0001 347a23fd118Syl 348a23fd118Syl u64 dtx_control; 349a23fd118Syl 350a23fd118Syl u64 i2c_control; 351a23fd118Syl #define XGE_HAL_I2C_CONTROL_DEV_ID(id) vBIT(id,1,3) 352a23fd118Syl #define XGE_HAL_I2C_CONTROL_ADDR(addr) vBIT(addr,5,11) 353a23fd118Syl #define XGE_HAL_I2C_CONTROL_BYTE_CNT(cnt) vBIT(cnt,22,2) 354a23fd118Syl #define XGE_HAL_I2C_CONTROL_READ BIT(24) 355a23fd118Syl #define XGE_HAL_I2C_CONTROL_NACK BIT(25) 356a23fd118Syl #define XGE_HAL_I2C_CONTROL_CNTL_START vBIT(0xE,28,4) 357a23fd118Syl #define XGE_HAL_I2C_CONTROL_CNTL_END(val) (val & vBIT(0x1,28,4)) 358a23fd118Syl #define XGE_HAL_I2C_CONTROL_GET_DATA(val) (u32)(val & 0xFFFFFFFF) 359a23fd118Syl #define XGE_HAL_I2C_CONTROL_SET_DATA(val) vBIT(val,32,32) 360a23fd118Syl 361a23fd118Syl u64 beacon_control; 362a23fd118Syl u64 misc_control; 363a23fd118Syl #define XGE_HAL_MISC_CONTROL_LINK_STABILITY_PERIOD(val) vBIT(val,29,3) 364a23fd118Syl #define XGE_HAL_MISC_CONTROL_EXT_REQ_EN BIT(1) 3657eced415Sxw #define XGE_HAL_MISC_CONTROL_LINK_FAULT BIT(0) 366a23fd118Syl 367a23fd118Syl u64 xfb_control; 368a23fd118Syl u64 gpio_control; 3698347601bSyl #define XGE_HAL_GPIO_CTRL_GPIO_0 BIT(8) 370a23fd118Syl 371a23fd118Syl u64 txfifo_dw_mask; 372a23fd118Syl u64 split_table_line_no; 373a23fd118Syl u64 sc_timeout; 374a23fd118Syl u64 pic_control_2; 3758347601bSyl #define XGE_HAL_TXD_WRITE_BC(n) vBIT(n, 13, 3) 376a23fd118Syl u64 ini_dperr_ctrl; 377a23fd118Syl u64 wreq_split_mask; 378a23fd118Syl u64 qw_per_rxd; 379a23fd118Syl u8 unused7[0x300 - 0x250]; 380a23fd118Syl 381a23fd118Syl u64 pic_status; 382a23fd118Syl u64 txp_status; 383a23fd118Syl u64 txp_err_context; 384a23fd118Syl u64 spdm_bir_offset; 385a23fd118Syl #define XGE_HAL_SPDM_PCI_BAR_NUM(spdm_bir_offset) \ 386a23fd118Syl (u8)(spdm_bir_offset >> 61) 387a23fd118Syl #define XGE_HAL_SPDM_PCI_BAR_OFFSET(spdm_bir_offset) \ 388a23fd118Syl (u32)((spdm_bir_offset >> 32) & 0x1FFFFFFF) 389a23fd118Syl u64 spdm_overwrite; 390a23fd118Syl #define XGE_HAL_SPDM_OVERWRITE_ERR_SPDM_ENTRY(spdm_overwrite) \ 391a23fd118Syl (u8)((spdm_overwrite >> 48) & 0xff) 392a23fd118Syl #define XGE_HAL_SPDM_OVERWRITE_ERR_SPDM_DW(spdm_overwrite) \ 393a23fd118Syl (u8)((spdm_overwrite >> 40) & 0x3) 394a23fd118Syl #define XGE_HAL_SPDM_OVERWRITE_ERR_SPDM_LINE(spdm_overwrite) \ 395a23fd118Syl (u8)((spdm_overwrite >> 32) & 0x7) 396a23fd118Syl u64 cfg_addr_on_dperr; 397a23fd118Syl u64 pif_addr_on_dperr; 398a23fd118Syl u64 tags_in_use; 399a23fd118Syl u64 rd_req_types; 400a23fd118Syl u64 split_table_line; 401a23fd118Syl u64 unxp_split_add_ph; 402a23fd118Syl u64 unexp_split_attr_ph; 403a23fd118Syl u64 split_message; 404a23fd118Syl u64 spdm_structure; 405a23fd118Syl #define XGE_HAL_SPDM_MAX_ENTRIES(spdm_structure) (u16)(spdm_structure >> 48) 406a23fd118Syl #define XGE_HAL_SPDM_INT_QW_PER_ENTRY(spdm_structure) \ 407a23fd118Syl (u8)((spdm_structure >> 40) & 0xff) 408a23fd118Syl #define XGE_HAL_SPDM_PCI_QW_PER_ENTRY(spdm_structure) \ 409a23fd118Syl (u8)((spdm_structure >> 32) & 0xff) 410a23fd118Syl 411a23fd118Syl u64 txdw_ptr_cnt_0; 412a23fd118Syl u64 txdw_ptr_cnt_1; 413a23fd118Syl u64 txdw_ptr_cnt_2; 414a23fd118Syl u64 txdw_ptr_cnt_3; 415a23fd118Syl u64 txdw_ptr_cnt_4; 416a23fd118Syl u64 txdw_ptr_cnt_5; 417a23fd118Syl u64 txdw_ptr_cnt_6; 418a23fd118Syl u64 txdw_ptr_cnt_7; 419a23fd118Syl u64 rxdw_cnt_ring_0; 420a23fd118Syl u64 rxdw_cnt_ring_1; 421a23fd118Syl u64 rxdw_cnt_ring_2; 422a23fd118Syl u64 rxdw_cnt_ring_3; 423a23fd118Syl u64 rxdw_cnt_ring_4; 424a23fd118Syl u64 rxdw_cnt_ring_5; 425a23fd118Syl u64 rxdw_cnt_ring_6; 426a23fd118Syl u64 rxdw_cnt_ring_7; 427a23fd118Syl 428a23fd118Syl u8 unused8[0x410]; 429a23fd118Syl 430a23fd118Syl /* TxDMA registers */ 431a23fd118Syl u64 txdma_int_status; 432a23fd118Syl u64 txdma_int_mask; 433a23fd118Syl #define XGE_HAL_TXDMA_PFC_INT BIT(0) 434a23fd118Syl #define XGE_HAL_TXDMA_TDA_INT BIT(1) 435a23fd118Syl #define XGE_HAL_TXDMA_PCC_INT BIT(2) 436a23fd118Syl #define XGE_HAL_TXDMA_TTI_INT BIT(3) 437a23fd118Syl #define XGE_HAL_TXDMA_LSO_INT BIT(4) 438a23fd118Syl #define XGE_HAL_TXDMA_TPA_INT BIT(5) 439a23fd118Syl #define XGE_HAL_TXDMA_SM_INT BIT(6) 440a23fd118Syl u64 pfc_err_reg; 4417eced415Sxw #define XGE_HAL_PFC_ECC_SG_ERR BIT(7) 4427eced415Sxw #define XGE_HAL_PFC_ECC_DB_ERR BIT(15) 4437eced415Sxw #define XGE_HAL_PFC_SM_ERR_ALARM BIT(23) 4447eced415Sxw #define XGE_HAL_PFC_MISC_0_ERR BIT(31) 4457eced415Sxw #define XGE_HAL_PFC_MISC_1_ERR BIT(32) 4467eced415Sxw #define XGE_HAL_PFC_PCIX_ERR BIT(39) 447a23fd118Syl u64 pfc_err_mask; 448a23fd118Syl u64 pfc_err_alarm; 449a23fd118Syl 450a23fd118Syl u64 tda_err_reg; 4517eced415Sxw #define XGE_HAL_TDA_Fn_ECC_SG_ERR vBIT(0xff,0,8) 4527eced415Sxw #define XGE_HAL_TDA_Fn_ECC_DB_ERR vBIT(0xff,8,8) 4537eced415Sxw #define XGE_HAL_TDA_SM0_ERR_ALARM BIT(22) 4547eced415Sxw #define XGE_HAL_TDA_SM1_ERR_ALARM BIT(23) 4557eced415Sxw #define XGE_HAL_TDA_PCIX_ERR BIT(39) 456a23fd118Syl u64 tda_err_mask; 457a23fd118Syl u64 tda_err_alarm; 458a23fd118Syl 459a23fd118Syl u64 pcc_err_reg; 4607eced415Sxw #define XGE_HAL_PCC_FB_ECC_SG_ERR vBIT(0xFF,0,8) 4617eced415Sxw #define XGE_HAL_PCC_TXB_ECC_SG_ERR vBIT(0xFF,8,8) 4627eced415Sxw #define XGE_HAL_PCC_FB_ECC_DB_ERR vBIT(0xFF,16, 8) 4637eced415Sxw #define XGE_HAL_PCC_TXB_ECC_DB_ERR vBIT(0xff,24,8) 4647eced415Sxw #define XGE_HAL_PCC_SM_ERR_ALARM vBIT(0xff,32,8) 4657eced415Sxw #define XGE_HAL_PCC_WR_ERR_ALARM vBIT(0xff,40,8) 4667eced415Sxw #define XGE_HAL_PCC_N_SERR vBIT(0xff,48,8) 4677eced415Sxw #define XGE_HAL_PCC_ENABLE_FOUR vBIT(0x0F,0,8) 4687eced415Sxw #define XGE_HAL_PCC_6_COF_OV_ERR BIT(56) 4697eced415Sxw #define XGE_HAL_PCC_7_COF_OV_ERR BIT(57) 4707eced415Sxw #define XGE_HAL_PCC_6_LSO_OV_ERR BIT(58) 4717eced415Sxw #define XGE_HAL_PCC_7_LSO_OV_ERR BIT(59) 472a23fd118Syl u64 pcc_err_mask; 473a23fd118Syl u64 pcc_err_alarm; 474a23fd118Syl 475a23fd118Syl u64 tti_err_reg; 4767eced415Sxw #define XGE_HAL_TTI_ECC_SG_ERR BIT(7) 4777eced415Sxw #define XGE_HAL_TTI_ECC_DB_ERR BIT(15) 4787eced415Sxw #define XGE_HAL_TTI_SM_ERR_ALARM BIT(23) 479a23fd118Syl u64 tti_err_mask; 480a23fd118Syl u64 tti_err_alarm; 481a23fd118Syl 482a23fd118Syl u64 lso_err_reg; 4837eced415Sxw #define XGE_HAL_LSO6_SEND_OFLOW BIT(12) 4847eced415Sxw #define XGE_HAL_LSO7_SEND_OFLOW BIT(13) 4857eced415Sxw #define XGE_HAL_LSO6_ABORT BIT(14) 4867eced415Sxw #define XGE_HAL_LSO7_ABORT BIT(15) 4877eced415Sxw #define XGE_HAL_LSO6_SM_ERR_ALARM BIT(22) 4887eced415Sxw #define XGE_HAL_LSO7_SM_ERR_ALARM BIT(23) 489a23fd118Syl u64 lso_err_mask; 490a23fd118Syl u64 lso_err_alarm; 491a23fd118Syl 492a23fd118Syl u64 tpa_err_reg; 4937eced415Sxw #define XGE_HAL_TPA_TX_FRM_DROP BIT(7) 4947eced415Sxw #define XGE_HAL_TPA_SM_ERR_ALARM BIT(23) 495a23fd118Syl u64 tpa_err_mask; 496a23fd118Syl u64 tpa_err_alarm; 497a23fd118Syl 498a23fd118Syl u64 sm_err_reg; 4997eced415Sxw #define XGE_HAL_SM_SM_ERR_ALARM BIT(15) 500a23fd118Syl u64 sm_err_mask; 501a23fd118Syl u64 sm_err_alarm; 502a23fd118Syl 503a23fd118Syl u8 unused9[0x100 - 0xB8]; 504a23fd118Syl 505a23fd118Syl /* TxDMA arbiter */ 506a23fd118Syl u64 tx_dma_wrap_stat; 507a23fd118Syl 508a23fd118Syl /* Tx FIFO controller */ 509a23fd118Syl #define XGE_HAL_X_MAX_FIFOS 8 510a23fd118Syl #define XGE_HAL_X_FIFO_MAX_LEN 0x1FFF /*8191 */ 511a23fd118Syl u64 tx_fifo_partition_0; 512a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_EN BIT(0) 513a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_0_PRI(val) vBIT(val,5,3) 514a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_0_LEN(val) vBIT(val,19,13) 515a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_1_PRI(val) vBIT(val,37,3) 516a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_1_LEN(val) vBIT(val,51,13 ) 517a23fd118Syl 518a23fd118Syl u64 tx_fifo_partition_1; 519a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_2_PRI(val) vBIT(val,5,3) 520a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_2_LEN(val) vBIT(val,19,13) 521a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_3_PRI(val) vBIT(val,37,3) 522a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_3_LEN(val) vBIT(val,51,13) 523a23fd118Syl 524a23fd118Syl u64 tx_fifo_partition_2; 525a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_4_PRI(val) vBIT(val,5,3) 526a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_4_LEN(val) vBIT(val,19,13) 527a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_5_PRI(val) vBIT(val,37,3) 528a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_5_LEN(val) vBIT(val,51,13) 529a23fd118Syl 530a23fd118Syl u64 tx_fifo_partition_3; 531a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_6_PRI(val) vBIT(val,5,3) 532a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_6_LEN(val) vBIT(val,19,13) 533a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_7_PRI(val) vBIT(val,37,3) 534a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_7_LEN(val) vBIT(val,51,13) 535a23fd118Syl 536a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_PRI_0 0 /* highest */ 537a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_PRI_1 1 538a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_PRI_2 2 539a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_PRI_3 3 540a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_PRI_4 4 541a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_PRI_5 5 542a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_PRI_6 6 543a23fd118Syl #define XGE_HAL_TX_FIFO_PARTITION_PRI_7 7 /* lowest */ 544a23fd118Syl 545a23fd118Syl u64 tx_w_round_robin_0; 546a23fd118Syl u64 tx_w_round_robin_1; 547a23fd118Syl u64 tx_w_round_robin_2; 548a23fd118Syl u64 tx_w_round_robin_3; 549a23fd118Syl u64 tx_w_round_robin_4; 550a23fd118Syl 551a23fd118Syl u64 tti_command_mem; 552a23fd118Syl #define XGE_HAL_TTI_CMD_MEM_WE BIT(7) 553a23fd118Syl #define XGE_HAL_TTI_CMD_MEM_STROBE_NEW_CMD BIT(15) 554a23fd118Syl #define XGE_HAL_TTI_CMD_MEM_STROBE_BEING_EXECUTED BIT(15) 555a23fd118Syl #define XGE_HAL_TTI_CMD_MEM_OFFSET(n) vBIT(n,26,6) 556a23fd118Syl 557a23fd118Syl u64 tti_data1_mem; 558a23fd118Syl #define XGE_HAL_TTI_DATA1_MEM_TX_TIMER_VAL(n) vBIT(n,6,26) 559a23fd118Syl #define XGE_HAL_TTI_DATA1_MEM_TX_TIMER_AC_CI(n) vBIT(n,38,2) 560a23fd118Syl #define XGE_HAL_TTI_DATA1_MEM_TX_TIMER_AC_EN BIT(38) 561a23fd118Syl #define XGE_HAL_TTI_DATA1_MEM_TX_TIMER_CI_EN BIT(39) 562a23fd118Syl #define XGE_HAL_TTI_DATA1_MEM_TX_URNG_A(n) vBIT(n,41,7) 563a23fd118Syl #define XGE_HAL_TTI_DATA1_MEM_TX_URNG_B(n) vBIT(n,49,7) 564a23fd118Syl #define XGE_HAL_TTI_DATA1_MEM_TX_URNG_C(n) vBIT(n,57,7) 565a23fd118Syl 566a23fd118Syl u64 tti_data2_mem; 567a23fd118Syl #define XGE_HAL_TTI_DATA2_MEM_TX_UFC_A(n) vBIT(n,0,16) 568a23fd118Syl #define XGE_HAL_TTI_DATA2_MEM_TX_UFC_B(n) vBIT(n,16,16) 569a23fd118Syl #define XGE_HAL_TTI_DATA2_MEM_TX_UFC_C(n) vBIT(n,32,16) 570a23fd118Syl #define XGE_HAL_TTI_DATA2_MEM_TX_UFC_D(n) vBIT(n,48,16) 571a23fd118Syl 572a23fd118Syl /* Tx Protocol assist */ 573a23fd118Syl u64 tx_pa_cfg; 574a23fd118Syl #define XGE_HAL_TX_PA_CFG_IGNORE_FRM_ERR BIT(1) 575a23fd118Syl #define XGE_HAL_TX_PA_CFG_IGNORE_SNAP_OUI BIT(2) 576a23fd118Syl #define XGE_HAL_TX_PA_CFG_IGNORE_LLC_CTRL BIT(3) 577a23fd118Syl #define XGE_HAL_TX_PA_CFG_IGNORE_L2_ERR BIT(6) 578a23fd118Syl 579a23fd118Syl /* Recent add, used only debug purposes. */ 580a23fd118Syl u64 pcc_enable; 581*55fea89dSDan Cross 5828347601bSyl u64 pfc_monitor_0; 5838347601bSyl u64 pfc_monitor_1; 5848347601bSyl u64 pfc_monitor_2; 5858347601bSyl u64 pfc_monitor_3; 5868347601bSyl u64 txd_ownership_ctrl; 5878347601bSyl u64 pfc_read_cntrl; 5888347601bSyl u64 pfc_read_data; 589*55fea89dSDan Cross 5908347601bSyl u8 unused10[0x1700 - 0x11B0]; 591*55fea89dSDan Cross 592a23fd118Syl u64 txdma_debug_ctrl; 593a23fd118Syl 594a23fd118Syl u8 unused11[0x1800 - 0x1708]; 595a23fd118Syl 596a23fd118Syl /* RxDMA Registers */ 597a23fd118Syl u64 rxdma_int_status; 598a23fd118Syl #define XGE_HAL_RXDMA_RC_INT BIT(0) 599a23fd118Syl #define XGE_HAL_RXDMA_RPA_INT BIT(1) 600a23fd118Syl #define XGE_HAL_RXDMA_RDA_INT BIT(2) 601a23fd118Syl #define XGE_HAL_RXDMA_RTI_INT BIT(3) 602a23fd118Syl 603a23fd118Syl u64 rxdma_int_mask; 604a23fd118Syl #define XGE_HAL_RXDMA_INT_RC_INT_M BIT(0) 605a23fd118Syl #define XGE_HAL_RXDMA_INT_RPA_INT_M BIT(1) 606a23fd118Syl #define XGE_HAL_RXDMA_INT_RDA_INT_M BIT(2) 607a23fd118Syl #define XGE_HAL_RXDMA_INT_RTI_INT_M BIT(3) 608a23fd118Syl 609a23fd118Syl u64 rda_err_reg; 6107eced415Sxw #define XGE_HAL_RDA_RXDn_ECC_SG_ERR vBIT(0xFF,0,8) 6117eced415Sxw #define XGE_HAL_RDA_RXDn_ECC_DB_ERR vBIT(0xFF,8,8) 6127eced415Sxw #define XGE_HAL_RDA_FRM_ECC_SG_ERR BIT(23) 6137eced415Sxw #define XGE_HAL_RDA_FRM_ECC_DB_N_AERR BIT(31) 6147eced415Sxw #define XGE_HAL_RDA_SM1_ERR_ALARM BIT(38) 6157eced415Sxw #define XGE_HAL_RDA_SM0_ERR_ALARM BIT(39) 6167eced415Sxw #define XGE_HAL_RDA_MISC_ERR BIT(47) 6177eced415Sxw #define XGE_HAL_RDA_PCIX_ERR BIT(55) 6187eced415Sxw #define XGE_HAL_RDA_RXD_ECC_DB_SERR BIT(63) 619a23fd118Syl u64 rda_err_mask; 620a23fd118Syl u64 rda_err_alarm; 621a23fd118Syl 622a23fd118Syl u64 rc_err_reg; 6237eced415Sxw #define XGE_HAL_RC_PRCn_ECC_SG_ERR vBIT(0xFF,0,8) 6247eced415Sxw #define XGE_HAL_RC_PRCn_ECC_DB_ERR vBIT(0xFF,8,8) 6257eced415Sxw #define XGE_HAL_RC_FTC_ECC_SG_ERR BIT(23) 6267eced415Sxw #define XGE_HAL_RC_FTC_ECC_DB_ERR BIT(31) 6277eced415Sxw #define XGE_HAL_RC_PRCn_SM_ERR_ALARM vBIT(0xFF,32,8) 6287eced415Sxw #define XGE_HAL_RC_FTC_SM_ERR_ALARM BIT(47) 6297eced415Sxw #define XGE_HAL_RC_RDA_FAIL_WR_Rn vBIT(0xFF,48,8) 630a23fd118Syl u64 rc_err_mask; 631a23fd118Syl u64 rc_err_alarm; 632a23fd118Syl 633a23fd118Syl u64 prc_pcix_err_reg; 6347eced415Sxw #define XGE_HAL_PRC_PCI_AB_RD_Rn vBIT(0xFF,0,8) 6357eced415Sxw #define XGE_HAL_PRC_PCI_DP_RD_Rn vBIT(0xFF,8,8) 6367eced415Sxw #define XGE_HAL_PRC_PCI_AB_WR_Rn vBIT(0xFF,16,8) 6377eced415Sxw #define XGE_HAL_PRC_PCI_DP_WR_Rn vBIT(0xFF,24,8) 6387eced415Sxw #define XGE_HAL_PRC_PCI_AB_F_WR_Rn vBIT(0xFF,32,8) 6397eced415Sxw #define XGE_HAL_PRC_PCI_DP_F_WR_Rn vBIT(0xFF,40,8) 640a23fd118Syl u64 prc_pcix_err_mask; 641a23fd118Syl u64 prc_pcix_err_alarm; 642a23fd118Syl 643a23fd118Syl u64 rpa_err_reg; 6447eced415Sxw #define XGE_HAL_RPA_ECC_SG_ERR BIT(7) 6457eced415Sxw #define XGE_HAL_RPA_ECC_DB_ERR BIT(15) 6467eced415Sxw #define XGE_HAL_RPA_FLUSH_REQUEST BIT(22) 6477eced415Sxw #define XGE_HAL_RPA_SM_ERR_ALARM BIT(23) 6487eced415Sxw #define XGE_HAL_RPA_CREDIT_ERR BIT(31) 649a23fd118Syl u64 rpa_err_mask; 650a23fd118Syl u64 rpa_err_alarm; 651a23fd118Syl 652a23fd118Syl u64 rti_err_reg; 6537eced415Sxw #define XGE_HAL_RTI_ECC_SG_ERR BIT(7) 6547eced415Sxw #define XGE_HAL_RTI_ECC_DB_ERR BIT(15) 6557eced415Sxw #define XGE_HAL_RTI_SM_ERR_ALARM BIT(23) 656a23fd118Syl u64 rti_err_mask; 657a23fd118Syl u64 rti_err_alarm; 658a23fd118Syl 659a23fd118Syl u8 unused12[0x100 - 0x88]; 660a23fd118Syl 661a23fd118Syl /* DMA arbiter */ 662a23fd118Syl u64 rx_queue_priority; 663a23fd118Syl #define XGE_HAL_RX_QUEUE_0_PRIORITY(val) vBIT(val,5,3) 664a23fd118Syl #define XGE_HAL_RX_QUEUE_1_PRIORITY(val) vBIT(val,13,3) 665a23fd118Syl #define XGE_HAL_RX_QUEUE_2_PRIORITY(val) vBIT(val,21,3) 666a23fd118Syl #define XGE_HAL_RX_QUEUE_3_PRIORITY(val) vBIT(val,29,3) 667a23fd118Syl #define XGE_HAL_RX_QUEUE_4_PRIORITY(val) vBIT(val,37,3) 668a23fd118Syl #define XGE_HAL_RX_QUEUE_5_PRIORITY(val) vBIT(val,45,3) 669a23fd118Syl #define XGE_HAL_RX_QUEUE_6_PRIORITY(val) vBIT(val,53,3) 670a23fd118Syl #define XGE_HAL_RX_QUEUE_7_PRIORITY(val) vBIT(val,61,3) 671a23fd118Syl 672a23fd118Syl #define XGE_HAL_RX_QUEUE_PRI_0 0 /* highest */ 673a23fd118Syl #define XGE_HAL_RX_QUEUE_PRI_1 1 674a23fd118Syl #define XGE_HAL_RX_QUEUE_PRI_2 2 675a23fd118Syl #define XGE_HAL_RX_QUEUE_PRI_3 3 676a23fd118Syl #define XGE_HAL_RX_QUEUE_PRI_4 4 677a23fd118Syl #define XGE_HAL_RX_QUEUE_PRI_5 5 678a23fd118Syl #define XGE_HAL_RX_QUEUE_PRI_6 6 679a23fd118Syl #define XGE_HAL_RX_QUEUE_PRI_7 7 /* lowest */ 680a23fd118Syl 681a23fd118Syl u64 rx_w_round_robin_0; 682a23fd118Syl u64 rx_w_round_robin_1; 683a23fd118Syl u64 rx_w_round_robin_2; 684a23fd118Syl u64 rx_w_round_robin_3; 685a23fd118Syl u64 rx_w_round_robin_4; 686a23fd118Syl 687a23fd118Syl /* Per-ring controller regs */ 688a23fd118Syl #define XGE_HAL_RX_MAX_RINGS 8 689a23fd118Syl u64 prc_rxd0_n[XGE_HAL_RX_MAX_RINGS]; 690a23fd118Syl u64 prc_ctrl_n[XGE_HAL_RX_MAX_RINGS]; 691a23fd118Syl #define XGE_HAL_PRC_CTRL_RC_ENABLED BIT(7) 692a23fd118Syl #define XGE_HAL_PRC_CTRL_RING_MODE (BIT(14)|BIT(15)) 693a23fd118Syl #define XGE_HAL_PRC_CTRL_RING_MODE_1 vBIT(0,14,2) 694a23fd118Syl #define XGE_HAL_PRC_CTRL_RING_MODE_3 vBIT(1,14,2) 695a23fd118Syl #define XGE_HAL_PRC_CTRL_RING_MODE_5 vBIT(2,14,2) 696a23fd118Syl #define XGE_HAL_PRC_CTRL_RING_MODE_x vBIT(3,14,2) 697a23fd118Syl #define XGE_HAL_PRC_CTRL_NO_SNOOP(n) vBIT(n,22,2) 6988347601bSyl #define XGE_HAL_PRC_CTRL_RTH_DISABLE BIT(31) 6998347601bSyl #define XGE_HAL_PRC_CTRL_BIMODAL_INTERRUPT BIT(37) 7008347601bSyl #define XGE_HAL_PRC_CTRL_GROUP_READS BIT(38) 701a23fd118Syl #define XGE_HAL_PRC_CTRL_RXD_BACKOFF_INTERVAL(val) vBIT(val,40,24) 702a23fd118Syl 703a23fd118Syl u64 prc_alarm_action; 704a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RR_R0_STOP BIT(3) 705a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RW_R0_STOP BIT(7) 706a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RR_R1_STOP BIT(11) 707a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RW_R1_STOP BIT(15) 708a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RR_R2_STOP BIT(19) 709a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RW_R2_STOP BIT(23) 710a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RR_R3_STOP BIT(27) 711a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RW_R3_STOP BIT(31) 712a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RR_R4_STOP BIT(35) 713a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RW_R4_STOP BIT(39) 714a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RR_R5_STOP BIT(43) 715a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RW_R5_STOP BIT(47) 716a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RR_R6_STOP BIT(51) 717a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RW_R6_STOP BIT(55) 718a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RR_R7_STOP BIT(59) 719a23fd118Syl #define XGE_HAL_PRC_ALARM_ACTION_RW_R7_STOP BIT(63) 720a23fd118Syl 721a23fd118Syl /* Receive traffic interrupts */ 722a23fd118Syl u64 rti_command_mem; 723a23fd118Syl #define XGE_HAL_RTI_CMD_MEM_WE BIT(7) 724a23fd118Syl #define XGE_HAL_RTI_CMD_MEM_STROBE BIT(15) 725a23fd118Syl #define XGE_HAL_RTI_CMD_MEM_STROBE_NEW_CMD BIT(15) 726a23fd118Syl #define XGE_HAL_RTI_CMD_MEM_STROBE_CMD_BEING_EXECUTED BIT(15) 727a23fd118Syl #define XGE_HAL_RTI_CMD_MEM_OFFSET(n) vBIT(n,29,3) 728a23fd118Syl 729a23fd118Syl u64 rti_data1_mem; 730a23fd118Syl #define XGE_HAL_RTI_DATA1_MEM_RX_TIMER_VAL(n) vBIT(n,3,29) 731a23fd118Syl #define XGE_HAL_RTI_DATA1_MEM_RX_TIMER_AC_EN BIT(38) 732a23fd118Syl #define XGE_HAL_RTI_DATA1_MEM_RX_TIMER_CI_EN BIT(39) 733a23fd118Syl #define XGE_HAL_RTI_DATA1_MEM_RX_URNG_A(n) vBIT(n,41,7) 734a23fd118Syl #define XGE_HAL_RTI_DATA1_MEM_RX_URNG_B(n) vBIT(n,49,7) 735a23fd118Syl #define XGE_HAL_RTI_DATA1_MEM_RX_URNG_C(n) vBIT(n,57,7) 736a23fd118Syl 737a23fd118Syl u64 rti_data2_mem; 738a23fd118Syl #define XGE_HAL_RTI_DATA2_MEM_RX_UFC_A(n) vBIT(n,0,16) 739a23fd118Syl #define XGE_HAL_RTI_DATA2_MEM_RX_UFC_B(n) vBIT(n,16,16) 740a23fd118Syl #define XGE_HAL_RTI_DATA2_MEM_RX_UFC_C(n) vBIT(n,32,16) 741a23fd118Syl #define XGE_HAL_RTI_DATA2_MEM_RX_UFC_D(n) vBIT(n,48,16) 742a23fd118Syl 743a23fd118Syl u64 rx_pa_cfg; 744a23fd118Syl #define XGE_HAL_RX_PA_CFG_IGNORE_FRM_ERR BIT(1) 745a23fd118Syl #define XGE_HAL_RX_PA_CFG_IGNORE_SNAP_OUI BIT(2) 746a23fd118Syl #define XGE_HAL_RX_PA_CFG_IGNORE_LLC_CTRL BIT(3) 747a23fd118Syl #define XGE_HAL_RX_PA_CFG_SCATTER_MODE(n) vBIT(n,6,1) 748a23fd118Syl #define XGE_HAL_RX_PA_CFG_STRIP_VLAN_TAG_MODE(n) vBIT(n,15,1) 749a23fd118Syl 750a23fd118Syl u8 unused13_0[0x8]; 751a23fd118Syl 752a23fd118Syl u64 ring_bump_counter1; 753a23fd118Syl u64 ring_bump_counter2; 754a23fd118Syl #define XGE_HAL_RING_BUMP_CNT(i, val) (u16)(val >> (48 - (16 * (i % 4)))) 755a23fd118Syl 756a23fd118Syl u8 unused13[0x700 - 0x1f0]; 757a23fd118Syl 758a23fd118Syl u64 rxdma_debug_ctrl; 759a23fd118Syl 760a23fd118Syl u8 unused14[0x2000 - 0x1f08]; 761a23fd118Syl 762a23fd118Syl /* Media Access Controller Register */ 763a23fd118Syl u64 mac_int_status; 764a23fd118Syl u64 mac_int_mask; 765a23fd118Syl #define XGE_HAL_MAC_INT_STATUS_TMAC_INT BIT(0) 766a23fd118Syl #define XGE_HAL_MAC_INT_STATUS_RMAC_INT BIT(1) 767a23fd118Syl 768a23fd118Syl u64 mac_tmac_err_reg; 769*55fea89dSDan Cross #define XGE_HAL_TMAC_ECC_DB_ERR BIT(15) 7707eced415Sxw #define XGE_HAL_TMAC_TX_BUF_OVRN BIT(23) 7717eced415Sxw #define XGE_HAL_TMAC_TX_CRI_ERR BIT(31) 7727eced415Sxw #define XGE_HAL_TMAC_TX_SM_ERR BIT(39) 773a23fd118Syl u64 mac_tmac_err_mask; 774a23fd118Syl u64 mac_tmac_err_alarm; 775a23fd118Syl 776a23fd118Syl u64 mac_rmac_err_reg; 7777eced415Sxw #define XGE_HAL_RMAC_RX_BUFF_OVRN BIT(0) 7787eced415Sxw #define XGE_HAL_RMAC_RTH_SPDM_ECC_SG_ERR BIT(0) 7797eced415Sxw #define XGE_HAL_RMAC_RTS_ECC_DB_ERR BIT(0) 7807eced415Sxw #define XGE_HAL_RMAC_ECC_DB_ERR BIT(0) 7817eced415Sxw #define XGE_HAL_RMAC_RTH_SPDM_ECC_DB_ERR BIT(0) 7827eced415Sxw #define XGE_HAL_RMAC_LINK_STATE_CHANGE_INT BIT(0) 7837eced415Sxw #define XGE_HAL_RMAC_RX_SM_ERR BIT(39) 784a23fd118Syl u64 mac_rmac_err_mask; 785a23fd118Syl u64 mac_rmac_err_alarm; 786a23fd118Syl 787a23fd118Syl u8 unused15[0x100 - 0x40]; 788a23fd118Syl 789a23fd118Syl u64 mac_cfg; 790a23fd118Syl #define XGE_HAL_MAC_CFG_TMAC_ENABLE BIT(0) 791a23fd118Syl #define XGE_HAL_MAC_CFG_RMAC_ENABLE BIT(1) 792a23fd118Syl #define XGE_HAL_MAC_CFG_LAN_NOT_WAN BIT(2) 793a23fd118Syl #define XGE_HAL_MAC_CFG_TMAC_LOOPBACK BIT(3) 794a23fd118Syl #define XGE_HAL_MAC_CFG_TMAC_APPEND_PAD BIT(4) 795a23fd118Syl #define XGE_HAL_MAC_CFG_RMAC_STRIP_FCS BIT(5) 796a23fd118Syl #define XGE_HAL_MAC_CFG_RMAC_STRIP_PAD BIT(6) 797a23fd118Syl #define XGE_HAL_MAC_CFG_RMAC_PROM_ENABLE BIT(7) 798a23fd118Syl #define XGE_HAL_MAC_RMAC_DISCARD_PFRM BIT(8) 799a23fd118Syl #define XGE_HAL_MAC_RMAC_BCAST_ENABLE BIT(9) 800a23fd118Syl #define XGE_HAL_MAC_RMAC_ALL_ADDR_ENABLE BIT(10) 801a23fd118Syl #define XGE_HAL_MAC_RMAC_INVLD_IPG_THR(val) vBIT(val,16,8) 802a23fd118Syl 803a23fd118Syl u64 tmac_avg_ipg; 804a23fd118Syl #define XGE_HAL_TMAC_AVG_IPG(val) vBIT(val,0,8) 805a23fd118Syl 806a23fd118Syl u64 rmac_max_pyld_len; 807a23fd118Syl #define XGE_HAL_RMAC_MAX_PYLD_LEN(val) vBIT(val,2,14) 808a23fd118Syl 809a23fd118Syl u64 rmac_err_cfg; 810a23fd118Syl #define XGE_HAL_RMAC_ERR_FCS BIT(0) 811a23fd118Syl #define XGE_HAL_RMAC_ERR_FCS_ACCEPT BIT(1) 812a23fd118Syl #define XGE_HAL_RMAC_ERR_TOO_LONG BIT(1) 813a23fd118Syl #define XGE_HAL_RMAC_ERR_TOO_LONG_ACCEPT BIT(1) 814a23fd118Syl #define XGE_HAL_RMAC_ERR_RUNT BIT(2) 815a23fd118Syl #define XGE_HAL_RMAC_ERR_RUNT_ACCEPT BIT(2) 816a23fd118Syl #define XGE_HAL_RMAC_ERR_LEN_MISMATCH BIT(3) 817a23fd118Syl #define XGE_HAL_RMAC_ERR_LEN_MISMATCH_ACCEPT BIT(3) 818a23fd118Syl 819a23fd118Syl u64 rmac_cfg_key; 820a23fd118Syl #define XGE_HAL_RMAC_CFG_KEY(val) vBIT(val,0,16) 821a23fd118Syl 822da14cebeSEric Cheng #define XGE_HAL_MAX_MAC_ADDRESSES 256 823da14cebeSEric Cheng #define XGE_HAL_MAC_MC_ALL_MC_ADDR_OFFSET 255 8248347601bSyl #define XGE_HAL_MAX_MAC_ADDRESSES_HERC 256 8258347601bSyl #define XGE_HAL_MAC_MC_ALL_MC_ADDR_OFFSET_HERC 255 8268347601bSyl 827a23fd118Syl u64 rmac_addr_cmd_mem; 828a23fd118Syl #define XGE_HAL_RMAC_ADDR_CMD_MEM_WE BIT(7) 829a23fd118Syl #define XGE_HAL_RMAC_ADDR_CMD_MEM_RD 0 830a23fd118Syl #define XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_NEW_CMD BIT(15) 831a23fd118Syl #define XGE_HAL_RMAC_ADDR_CMD_MEM_STROBE_CMD_EXECUTING BIT(15) 832a23fd118Syl #define XGE_HAL_RMAC_ADDR_CMD_MEM_OFFSET(n) vBIT(n,26,6) 833a23fd118Syl 834a23fd118Syl u64 rmac_addr_data0_mem; 835a23fd118Syl #define XGE_HAL_RMAC_ADDR_DATA0_MEM_ADDR(n) vBIT(n,0,48) 836a23fd118Syl #define XGE_HAL_RMAC_ADDR_DATA0_MEM_USER BIT(48) 837a23fd118Syl 838a23fd118Syl u64 rmac_addr_data1_mem; 839a23fd118Syl #define XGE_HAL_RMAC_ADDR_DATA1_MEM_MASK(n) vBIT(n,0,48) 840a23fd118Syl 841a23fd118Syl u8 unused16[0x8]; 842a23fd118Syl 843a23fd118Syl /* 844a23fd118Syl u64 rmac_addr_cfg; 845a23fd118Syl #define XGE_HAL_RMAC_ADDR_UCASTn_EN(n) mBIT(0)_n(n) 846a23fd118Syl #define XGE_HAL_RMAC_ADDR_MCASTn_EN(n) mBIT(0)_n(n) 847a23fd118Syl #define XGE_HAL_RMAC_ADDR_BCAST_EN vBIT(0)_48 848a23fd118Syl #define XGE_HAL_RMAC_ADDR_ALL_ADDR_EN vBIT(0)_49 849a23fd118Syl */ 850a23fd118Syl u64 tmac_ipg_cfg; 851a23fd118Syl 852a23fd118Syl u64 rmac_pause_cfg; 853a23fd118Syl #define XGE_HAL_RMAC_PAUSE_GEN_EN BIT(0) 854a23fd118Syl #define XGE_HAL_RMAC_PAUSE_RCV_EN BIT(1) 855a23fd118Syl #define XGE_HAL_RMAC_PAUSE_HG_PTIME_DEF vBIT(0xFFFF,16,16) 856a23fd118Syl #define XGE_HAL_RMAC_PAUSE_HG_PTIME(val) vBIT(val,16,16) 857a23fd118Syl 858a23fd118Syl u64 rmac_red_cfg; 859a23fd118Syl 860a23fd118Syl u64 rmac_red_rate_q0q3; 861a23fd118Syl u64 rmac_red_rate_q4q7; 862a23fd118Syl 863a23fd118Syl u64 mac_link_util; 864a23fd118Syl #define XGE_HAL_MAC_TX_LINK_UTIL vBIT(0xFE,1,7) 865a23fd118Syl #define XGE_HAL_MAC_TX_LINK_UTIL_DISABLE vBIT(0xF, 8,4) 866a23fd118Syl #define XGE_HAL_MAC_TX_LINK_UTIL_VAL( n ) vBIT(n,8,4) 867a23fd118Syl #define XGE_HAL_MAC_RX_LINK_UTIL vBIT(0xFE,33,7) 868a23fd118Syl #define XGE_HAL_MAC_RX_LINK_UTIL_DISABLE vBIT(0xF,40,4) 869a23fd118Syl #define XGE_HAL_MAC_RX_LINK_UTIL_VAL( n ) vBIT(n,40,4) 870a23fd118Syl 871a23fd118Syl #define XGE_HAL_MAC_LINK_UTIL_DISABLE (XGE_HAL_MAC_TX_LINK_UTIL_DISABLE | \ 872a23fd118Syl XGE_HAL_MAC_RX_LINK_UTIL_DISABLE) 873a23fd118Syl 874a23fd118Syl u64 rmac_invalid_ipg; 875a23fd118Syl 876a23fd118Syl /* rx traffic steering */ 877a23fd118Syl #define XGE_HAL_MAC_RTS_FRM_LEN_SET(len) vBIT(len,2,14) 878a23fd118Syl u64 rts_frm_len_n[8]; 879a23fd118Syl 880a23fd118Syl u64 rts_qos_steering; 881a23fd118Syl 882a23fd118Syl #define XGE_HAL_MAX_DIX_MAP 4 883a23fd118Syl u64 rts_dix_map_n[XGE_HAL_MAX_DIX_MAP]; 884a23fd118Syl #define XGE_HAL_RTS_DIX_MAP_ETYPE(val) vBIT(val,0,16) 885a23fd118Syl #define XGE_HAL_RTS_DIX_MAP_SCW(val) BIT(val,21) 886a23fd118Syl 887a23fd118Syl u64 rts_q_alternates; 888a23fd118Syl u64 rts_default_q; 889a23fd118Syl #define XGE_HAL_RTS_DEFAULT_Q(n) vBIT(n,5,3) 890a23fd118Syl 891a23fd118Syl u64 rts_ctrl; 892a23fd118Syl #define XGE_HAL_RTS_CTRL_IGNORE_SNAP_OUI BIT(2) 893a23fd118Syl #define XGE_HAL_RTS_CTRL_IGNORE_LLC_CTRL BIT(3) 894a23fd118Syl #define XGE_HAL_RTS_CTRL_ENHANCED_MODE BIT(7) 895a23fd118Syl 896a23fd118Syl u64 rts_pn_cam_ctrl; 897a23fd118Syl #define XGE_HAL_RTS_PN_CAM_CTRL_WE BIT(7) 898a23fd118Syl #define XGE_HAL_RTS_PN_CAM_CTRL_STROBE_NEW_CMD BIT(15) 899a23fd118Syl #define XGE_HAL_RTS_PN_CAM_CTRL_STROBE_BEING_EXECUTED BIT(15) 900a23fd118Syl #define XGE_HAL_RTS_PN_CAM_CTRL_OFFSET(n) vBIT(n,24,8) 901a23fd118Syl u64 rts_pn_cam_data; 902a23fd118Syl #define XGE_HAL_RTS_PN_CAM_DATA_TCP_SELECT BIT(7) 903a23fd118Syl #define XGE_HAL_RTS_PN_CAM_DATA_PORT(val) vBIT(val,8,16) 904a23fd118Syl #define XGE_HAL_RTS_PN_CAM_DATA_SCW(val) vBIT(val,24,8) 905a23fd118Syl 906a23fd118Syl u64 rts_ds_mem_ctrl; 907a23fd118Syl #define XGE_HAL_RTS_DS_MEM_CTRL_WE BIT(7) 908a23fd118Syl #define XGE_HAL_RTS_DS_MEM_CTRL_STROBE_NEW_CMD BIT(15) 909a23fd118Syl #define XGE_HAL_RTS_DS_MEM_CTRL_STROBE_CMD_BEING_EXECUTED BIT(15) 910a23fd118Syl #define XGE_HAL_RTS_DS_MEM_CTRL_OFFSET(n) vBIT(n,26,6) 911a23fd118Syl u64 rts_ds_mem_data; 912a23fd118Syl #define XGE_HAL_RTS_DS_MEM_DATA(n) vBIT(n,0,8) 913a23fd118Syl 9148347601bSyl u8 unused16_1[0x308 - 0x220]; 915*55fea89dSDan Cross 9168347601bSyl u64 rts_vid_mem_ctrl; 9178347601bSyl u64 rts_vid_mem_data; 9188347601bSyl u64 rts_p0_p3_map; 9198347601bSyl u64 rts_p4_p7_map; 9208347601bSyl u64 rts_p8_p11_map; 9218347601bSyl u64 rts_p12_p15_map; 922a23fd118Syl 923a23fd118Syl u64 rts_mac_cfg; 924a23fd118Syl #define XGE_HAL_RTS_MAC_SECT0_EN BIT(0) 925a23fd118Syl #define XGE_HAL_RTS_MAC_SECT1_EN BIT(1) 926a23fd118Syl #define XGE_HAL_RTS_MAC_SECT2_EN BIT(2) 927a23fd118Syl #define XGE_HAL_RTS_MAC_SECT3_EN BIT(3) 928a23fd118Syl #define XGE_HAL_RTS_MAC_SECT4_EN BIT(4) 929a23fd118Syl #define XGE_HAL_RTS_MAC_SECT5_EN BIT(5) 930a23fd118Syl #define XGE_HAL_RTS_MAC_SECT6_EN BIT(6) 931a23fd118Syl #define XGE_HAL_RTS_MAC_SECT7_EN BIT(7) 932a23fd118Syl 9338347601bSyl u8 unused16_2[0x380 - 0x340]; 934a23fd118Syl 935a23fd118Syl u64 rts_rth_cfg; 936a23fd118Syl #define XGE_HAL_RTS_RTH_EN BIT(3) 937a23fd118Syl #define XGE_HAL_RTS_RTH_BUCKET_SIZE(n) vBIT(n,4,4) 938a23fd118Syl #define XGE_HAL_RTS_RTH_ALG_SEL_MS BIT(11) 939a23fd118Syl #define XGE_HAL_RTS_RTH_TCP_IPV4_EN BIT(15) 940a23fd118Syl #define XGE_HAL_RTS_RTH_UDP_IPV4_EN BIT(19) 941a23fd118Syl #define XGE_HAL_RTS_RTH_IPV4_EN BIT(23) 942a23fd118Syl #define XGE_HAL_RTS_RTH_TCP_IPV6_EN BIT(27) 943a23fd118Syl #define XGE_HAL_RTS_RTH_UDP_IPV6_EN BIT(31) 944a23fd118Syl #define XGE_HAL_RTS_RTH_IPV6_EN BIT(35) 945a23fd118Syl #define XGE_HAL_RTS_RTH_TCP_IPV6_EX_EN BIT(39) 946a23fd118Syl #define XGE_HAL_RTS_RTH_UDP_IPV6_EX_EN BIT(43) 947a23fd118Syl #define XGE_HAL_RTS_RTH_IPV6_EX_EN BIT(47) 948a23fd118Syl 949a23fd118Syl u64 rts_rth_map_mem_ctrl; 950a23fd118Syl #define XGE_HAL_RTS_RTH_MAP_MEM_CTRL_WE BIT(7) 951a23fd118Syl #define XGE_HAL_RTS_RTH_MAP_MEM_CTRL_STROBE BIT(15) 952a23fd118Syl #define XGE_HAL_RTS_RTH_MAP_MEM_CTRL_OFFSET(n) vBIT(n,24,8) 953a23fd118Syl 954a23fd118Syl u64 rts_rth_map_mem_data; 955a23fd118Syl #define XGE_HAL_RTS_RTH_MAP_MEM_DATA_ENTRY_EN BIT(3) 956a23fd118Syl #define XGE_HAL_RTS_RTH_MAP_MEM_DATA(n) vBIT(n,5,3) 957a23fd118Syl 958a23fd118Syl u64 rts_rth_spdm_mem_ctrl; 959a23fd118Syl #define XGE_HAL_RTS_RTH_SPDM_MEM_CTRL_STROBE BIT(15) 960a23fd118Syl #define XGE_HAL_RTS_RTH_SPDM_MEM_CTRL_LINE_SEL(n) vBIT(n,21,3) 961a23fd118Syl #define XGE_HAL_RTS_RTH_SPDM_MEM_CTRL_OFFSET(n) vBIT(n,24,8) 962a23fd118Syl 963a23fd118Syl u64 rts_rth_spdm_mem_data; 964a23fd118Syl 965a23fd118Syl u64 rts_rth_jhash_cfg; 966a23fd118Syl #define XGE_HAL_RTS_RTH_JHASH_GOLDEN(n) vBIT(n,0,32) 967a23fd118Syl #define XGE_HAL_RTS_RTH_JHASH_INIT_VAL(n) vBIT(n,32,32) 968a23fd118Syl 969a23fd118Syl u64 rts_rth_hash_mask[5]; /* rth mask's 0...4 */ 970a23fd118Syl u64 rts_rth_hash_mask_5; 971a23fd118Syl #define XGE_HAL_RTH_HASH_MASK_5(n) vBIT(n,0,32) 972a23fd118Syl 973a23fd118Syl u64 rts_rth_status; 974a23fd118Syl #define XGE_HAL_RTH_STATUS_SPDM_USE_L4 BIT(3) 975a23fd118Syl 9768347601bSyl u8 unused17[0x400 - 0x3E8]; 977*55fea89dSDan Cross 9788347601bSyl u64 rmac_red_fine_q0q3; 979*55fea89dSDan Cross u64 rmac_red_fine_q4q7; 9808347601bSyl u64 rmac_pthresh_cross; 9818347601bSyl u64 rmac_rthresh_cross; 9828347601bSyl u64 rmac_pnum_range[32]; 9838347601bSyl 9848347601bSyl u64 rmac_mp_crc_0; 9858347601bSyl u64 rmac_mp_mask_a_0; 9868347601bSyl u64 rmac_mp_mask_b_0; 987*55fea89dSDan Cross 9888347601bSyl u64 rmac_mp_crc_1; 9898347601bSyl u64 rmac_mp_mask_a_1; 9908347601bSyl u64 rmac_mp_mask_b_1; 991*55fea89dSDan Cross 9928347601bSyl u64 rmac_mp_crc_2; 9938347601bSyl u64 rmac_mp_mask_a_2; 9948347601bSyl u64 rmac_mp_mask_b_2; 995*55fea89dSDan Cross 9968347601bSyl u64 rmac_mp_crc_3; 9978347601bSyl u64 rmac_mp_mask_a_3; 9988347601bSyl u64 rmac_mp_mask_b_3; 999*55fea89dSDan Cross 10008347601bSyl u64 rmac_mp_crc_4; 10018347601bSyl u64 rmac_mp_mask_a_4; 10028347601bSyl u64 rmac_mp_mask_b_4; 1003*55fea89dSDan Cross 10048347601bSyl u64 rmac_mp_crc_5; 10058347601bSyl u64 rmac_mp_mask_a_5; 10068347601bSyl u64 rmac_mp_mask_b_5; 1007*55fea89dSDan Cross 10088347601bSyl u64 rmac_mp_crc_6; 10098347601bSyl u64 rmac_mp_mask_a_6; 10108347601bSyl u64 rmac_mp_mask_b_6; 10118347601bSyl 10128347601bSyl u64 rmac_mp_crc_7; 10138347601bSyl u64 rmac_mp_mask_a_7; 10148347601bSyl u64 rmac_mp_mask_b_7; 10158347601bSyl 10168347601bSyl u64 mac_ctrl; 10178347601bSyl u64 activity_control; 1018*55fea89dSDan Cross 10198347601bSyl u8 unused17_2[0x700 - 0x5F0]; 1020a23fd118Syl 1021a23fd118Syl u64 mac_debug_ctrl; 1022a23fd118Syl #define XGE_HAL_MAC_DBG_ACTIVITY_VALUE 0x411040400000000ULL 1023a23fd118Syl 1024a23fd118Syl u8 unused18[0x2800 - 0x2708]; 1025a23fd118Syl 1026a23fd118Syl /* memory controller registers */ 1027a23fd118Syl u64 mc_int_status; 1028a23fd118Syl #define XGE_HAL_MC_INT_STATUS_MC_INT BIT(0) 1029a23fd118Syl u64 mc_int_mask; 1030a23fd118Syl #define XGE_HAL_MC_INT_MASK_MC_INT BIT(0) 1031a23fd118Syl 1032a23fd118Syl u64 mc_err_reg; 1033a23fd118Syl #define XGE_HAL_MC_ERR_REG_ITQ_ECC_SG_ERR_L BIT(2) /* non-Xena */ 1034a23fd118Syl #define XGE_HAL_MC_ERR_REG_ITQ_ECC_SG_ERR_U BIT(3) /* non-Xena */ 1035a23fd118Syl #define XGE_HAL_MC_ERR_REG_RLD_ECC_SG_ERR_L BIT(4) /* non-Xena */ 1036a23fd118Syl #define XGE_HAL_MC_ERR_REG_RLD_ECC_SG_ERR_U BIT(5) /* non-Xena */ 1037a23fd118Syl #define XGE_HAL_MC_ERR_REG_ETQ_ECC_SG_ERR_L BIT(6) 1038a23fd118Syl #define XGE_HAL_MC_ERR_REG_ETQ_ECC_SG_ERR_U BIT(7) 1039a23fd118Syl #define XGE_HAL_MC_ERR_REG_ITQ_ECC_DB_ERR_L BIT(10) /* non-Xena */ 1040a23fd118Syl #define XGE_HAL_MC_ERR_REG_ITQ_ECC_DB_ERR_U BIT(11) /* non-Xena */ 1041a23fd118Syl #define XGE_HAL_MC_ERR_REG_RLD_ECC_DB_ERR_L BIT(12) /* non-Xena */ 1042a23fd118Syl #define XGE_HAL_MC_ERR_REG_RLD_ECC_DB_ERR_U BIT(13) /* non-Xena */ 1043a23fd118Syl #define XGE_HAL_MC_ERR_REG_ETQ_ECC_DB_ERR_L BIT(14) 1044a23fd118Syl #define XGE_HAL_MC_ERR_REG_ETQ_ECC_DB_ERR_U BIT(15) 1045a23fd118Syl #define XGE_HAL_MC_ERR_REG_MIRI_ECC_SG_ERR_0 BIT(17) 1046a23fd118Syl #define XGE_HAL_MC_ERR_REG_MIRI_ECC_DB_ERR_0 BIT(18) /* Xena: reset */ 1047a23fd118Syl #define XGE_HAL_MC_ERR_REG_MIRI_ECC_SG_ERR_1 BIT(19) 1048a23fd118Syl #define XGE_HAL_MC_ERR_REG_MIRI_ECC_DB_ERR_1 BIT(20) /* Xena: reset */ 1049a23fd118Syl #define XGE_HAL_MC_ERR_REG_MIRI_CRI_ERR_0 BIT(22) 1050a23fd118Syl #define XGE_HAL_MC_ERR_REG_MIRI_CRI_ERR_1 BIT(23) 1051a23fd118Syl #define XGE_HAL_MC_ERR_REG_SM_ERR BIT(31) 1052a23fd118Syl #define XGE_HAL_MC_ERR_REG_PL_LOCK_N BIT(39) 1053a23fd118Syl 1054a23fd118Syl u64 mc_err_mask; 1055a23fd118Syl u64 mc_err_alarm; 1056a23fd118Syl 1057a23fd118Syl u8 unused19[0x100 - 0x28]; 1058a23fd118Syl 1059a23fd118Syl /* MC configuration */ 1060a23fd118Syl u64 rx_queue_cfg; 1061a23fd118Syl #define XGE_HAL_RX_QUEUE_CFG_Q0_SZ(n) vBIT(n,0,8) 1062a23fd118Syl #define XGE_HAL_RX_QUEUE_CFG_Q1_SZ(n) vBIT(n,8,8) 1063a23fd118Syl #define XGE_HAL_RX_QUEUE_CFG_Q2_SZ(n) vBIT(n,16,8) 1064a23fd118Syl #define XGE_HAL_RX_QUEUE_CFG_Q3_SZ(n) vBIT(n,24,8) 1065a23fd118Syl #define XGE_HAL_RX_QUEUE_CFG_Q4_SZ(n) vBIT(n,32,8) 1066a23fd118Syl #define XGE_HAL_RX_QUEUE_CFG_Q5_SZ(n) vBIT(n,40,8) 1067a23fd118Syl #define XGE_HAL_RX_QUEUE_CFG_Q6_SZ(n) vBIT(n,48,8) 1068a23fd118Syl #define XGE_HAL_RX_QUEUE_CFG_Q7_SZ(n) vBIT(n,56,8) 1069a23fd118Syl 1070a23fd118Syl u64 mc_rldram_mrs; 1071a23fd118Syl #define XGE_HAL_MC_RLDRAM_QUEUE_SIZE_ENABLE BIT(39) 1072a23fd118Syl #define XGE_HAL_MC_RLDRAM_MRS_ENABLE BIT(47) 1073a23fd118Syl 1074a23fd118Syl u64 mc_rldram_interleave; 1075a23fd118Syl 1076a23fd118Syl u64 mc_pause_thresh_q0q3; 1077a23fd118Syl u64 mc_pause_thresh_q4q7; 1078a23fd118Syl 1079a23fd118Syl u64 mc_red_thresh_q[8]; 1080a23fd118Syl 1081a23fd118Syl u8 unused20[0x200 - 0x168]; 1082a23fd118Syl u64 mc_rldram_ref_per; 1083a23fd118Syl u8 unused21[0x220 - 0x208]; 1084a23fd118Syl u64 mc_rldram_test_ctrl; 1085a23fd118Syl #define XGE_HAL_MC_RLDRAM_TEST_MODE BIT(47) 1086a23fd118Syl #define XGE_HAL_MC_RLDRAM_TEST_WRITE BIT(7) 1087a23fd118Syl #define XGE_HAL_MC_RLDRAM_TEST_GO BIT(15) 1088a23fd118Syl #define XGE_HAL_MC_RLDRAM_TEST_DONE BIT(23) 1089a23fd118Syl #define XGE_HAL_MC_RLDRAM_TEST_PASS BIT(31) 1090a23fd118Syl 1091a23fd118Syl u8 unused22[0x240 - 0x228]; 1092a23fd118Syl u64 mc_rldram_test_add; 1093a23fd118Syl u8 unused23[0x260 - 0x248]; 1094a23fd118Syl u64 mc_rldram_test_d0; 1095a23fd118Syl u8 unused24[0x280 - 0x268]; 1096a23fd118Syl u64 mc_rldram_test_d1; 1097a23fd118Syl u8 unused25[0x300 - 0x288]; 1098a23fd118Syl u64 mc_rldram_test_d2; 10998347601bSyl u8 unused26_1[0x2C00 - 0x2B08]; 11008347601bSyl u64 mc_rldram_test_read_d0; 11018347601bSyl u8 unused26_2[0x20 - 0x8]; 11028347601bSyl u64 mc_rldram_test_read_d1; 11038347601bSyl u8 unused26_3[0x40 - 0x28]; 11048347601bSyl u64 mc_rldram_test_read_d2; 11058347601bSyl u8 unused26_4[0x60 - 0x48]; 11068347601bSyl u64 mc_rldram_test_add_bkg; 11078347601bSyl u8 unused26_5[0x80 - 0x68]; 11088347601bSyl u64 mc_rldram_test_d0_bkg; 1109*55fea89dSDan Cross u8 unused26_6[0xD00 - 0xC88]; 11108347601bSyl u64 mc_rldram_test_d1_bkg; 11118347601bSyl u8 unused26_7[0x20 - 0x8]; 11128347601bSyl u64 mc_rldram_test_d2_bkg; 11138347601bSyl u8 unused26_8[0x40 - 0x28]; 11148347601bSyl u64 mc_rldram_test_read_d0_bkg; 11158347601bSyl u8 unused26_9[0x60 - 0x48]; 11168347601bSyl u64 mc_rldram_test_read_d1_bkg; 11178347601bSyl u8 unused26_10[0x80 - 0x68]; 11188347601bSyl u64 mc_rldram_test_read_d2_bkg; 11198347601bSyl u8 unused26_11[0xE00 - 0xD88]; 11208347601bSyl u64 mc_rldram_generation; 11218347601bSyl u8 unused26_12[0x20 - 0x8]; 11228347601bSyl u64 mc_driver; 11238347601bSyl u8 unused26_13[0x40 - 0x28]; 1124a23fd118Syl u64 mc_rldram_ref_per_herc; 1125a23fd118Syl #define XGE_HAL_MC_RLDRAM_SET_REF_PERIOD(n) vBIT(n, 0, 16) 11268347601bSyl u8 unused26_14[0x660 - 0x648]; 1127a23fd118Syl u64 mc_rldram_mrs_herc; 1128a23fd118Syl #define XGE_HAL_MC_RLDRAM_MRS(n) vBIT(n, 14, 17) 11298347601bSyl u8 unused26_15[0x700 - 0x668]; 1130a23fd118Syl u64 mc_debug_ctrl; 1131a23fd118Syl 1132a23fd118Syl u8 unused27[0x3000 - 0x2f08]; 1133a23fd118Syl 1134a23fd118Syl /* XGXG */ 1135a23fd118Syl /* XGXS control registers */ 1136a23fd118Syl 1137a23fd118Syl u64 xgxs_int_status; 1138a23fd118Syl #define XGE_HAL_XGXS_INT_STATUS_TXGXS BIT(0) 1139a23fd118Syl #define XGE_HAL_XGXS_INT_STATUS_RXGXS BIT(1) 1140a23fd118Syl u64 xgxs_int_mask; 1141a23fd118Syl #define XGE_HAL_XGXS_INT_MASK_TXGXS BIT(0) 1142a23fd118Syl #define XGE_HAL_XGXS_INT_MASK_RXGXS BIT(1) 1143a23fd118Syl 1144a23fd118Syl u64 xgxs_txgxs_err_reg; 11457eced415Sxw #define XGE_HAL_TXGXS_ECC_SG_ERR BIT(7) 11467eced415Sxw #define XGE_HAL_TXGXS_ECC_DB_ERR BIT(15) 11477eced415Sxw #define XGE_HAL_TXGXS_ESTORE_UFLOW BIT(31) 11487eced415Sxw #define XGE_HAL_TXGXS_TX_SM_ERR BIT(39) 1149a23fd118Syl u64 xgxs_txgxs_err_mask; 1150a23fd118Syl u64 xgxs_txgxs_err_alarm; 1151a23fd118Syl 1152a23fd118Syl u64 xgxs_rxgxs_err_reg; 11537eced415Sxw #define XGE_HAL_RXGXS_ESTORE_OFLOW BIT(7) 11547eced415Sxw #define XGE_HAL_RXGXS_RX_SM_ERR BIT(39) 1155a23fd118Syl u64 xgxs_rxgxs_err_mask; 1156a23fd118Syl u64 xgxs_rxgxs_err_alarm; 1157a23fd118Syl 11588347601bSyl u64 spi_err_reg; 11598347601bSyl u64 spi_err_mask; 11608347601bSyl u64 spi_err_alarm; 1161a23fd118Syl 11627eced415Sxw u8 unused28[0x100 - 0x58]; 11637eced415Sxw 1164a23fd118Syl u64 xgxs_cfg; 1165a23fd118Syl u64 xgxs_status; 1166a23fd118Syl 1167a23fd118Syl u64 xgxs_cfg_key; 11688347601bSyl u64 xgxs_efifo_cfg; /* CHANGED */ 11698347601bSyl u64 rxgxs_ber_0; /* CHANGED */ 11708347601bSyl u64 rxgxs_ber_1; /* CHANGED */ 1171*55fea89dSDan Cross 11728347601bSyl u64 spi_control; 11738347601bSyl u64 spi_data; 11748347601bSyl u64 spi_write_protect; 1175*55fea89dSDan Cross 11768347601bSyl u8 unused29[0x80 - 0x48]; 1177*55fea89dSDan Cross 11788347601bSyl u64 xgxs_cfg_1; 1179a23fd118Syl } xge_hal_pci_bar0_t; 1180a23fd118Syl 1181a23fd118Syl /* Using this strcture to calculate offsets */ 1182a23fd118Syl typedef struct xge_hal_pci_config_le_t { 1183a23fd118Syl u16 vendor_id; // 0x00 1184a23fd118Syl u16 device_id; // 0x02 1185a23fd118Syl 1186a23fd118Syl u16 command; // 0x04 1187a23fd118Syl u16 status; // 0x06 1188a23fd118Syl 1189a23fd118Syl u8 revision; // 0x08 1190a23fd118Syl u8 pciClass[3]; // 0x09 1191a23fd118Syl 1192a23fd118Syl u8 cache_line_size; // 0x0c 1193a23fd118Syl u8 latency_timer; // 0x0d 1194a23fd118Syl u8 header_type; // 0x0e 1195a23fd118Syl u8 bist; // 0x0f 1196a23fd118Syl 1197a23fd118Syl u32 base_addr0_lo; // 0x10 1198a23fd118Syl u32 base_addr0_hi; // 0x14 1199a23fd118Syl 1200a23fd118Syl u32 base_addr1_lo; // 0x18 1201a23fd118Syl u32 base_addr1_hi; // 0x1C 1202a23fd118Syl 1203a23fd118Syl u32 not_Implemented1; // 0x20 1204a23fd118Syl u32 not_Implemented2; // 0x24 1205a23fd118Syl 1206a23fd118Syl u32 cardbus_cis_pointer; // 0x28 1207a23fd118Syl 1208a23fd118Syl u16 subsystem_vendor_id; // 0x2c 1209a23fd118Syl u16 subsystem_id; // 0x2e 1210a23fd118Syl 1211a23fd118Syl u32 rom_base; // 0x30 1212a23fd118Syl u8 capabilities_pointer; // 0x34 1213a23fd118Syl u8 rsvd_35[3]; // 0x35 1214a23fd118Syl u32 rsvd_38; // 0x38 1215a23fd118Syl 1216a23fd118Syl u8 interrupt_line; // 0x3c 1217a23fd118Syl u8 interrupt_pin; // 0x3d 1218a23fd118Syl u8 min_grant; // 0x3e 1219a23fd118Syl u8 max_latency; // 0x3f 1220a23fd118Syl 1221a23fd118Syl u8 msi_cap_id; // 0x40 1222a23fd118Syl u8 msi_next_ptr; // 0x41 1223a23fd118Syl u16 msi_control; // 0x42 1224a23fd118Syl u32 msi_lower_address; // 0x44 1225a23fd118Syl u32 msi_higher_address; // 0x48 1226a23fd118Syl u16 msi_data; // 0x4c 1227a23fd118Syl u16 msi_unused; // 0x4e 1228a23fd118Syl 1229a23fd118Syl u8 vpd_cap_id; // 0x50 1230a23fd118Syl u8 vpd_next_cap; // 0x51 1231a23fd118Syl u16 vpd_addr; // 0x52 1232a23fd118Syl u32 vpd_data; // 0x54 1233a23fd118Syl 1234a23fd118Syl u8 rsvd_b0[8]; // 0x58 1235a23fd118Syl 1236a23fd118Syl u8 pcix_cap; // 0x60 1237a23fd118Syl u8 pcix_next_cap; // 0x61 1238a23fd118Syl u16 pcix_command; // 0x62 1239a23fd118Syl 1240a23fd118Syl u32 pcix_status; // 0x64 1241a23fd118Syl 1242a23fd118Syl u8 rsvd_b1[XGE_HAL_PCI_XFRAME_CONFIG_SPACE_SIZE-0x68]; 1243a23fd118Syl } xge_hal_pci_config_le_t; // 0x100 1244a23fd118Syl 1245a23fd118Syl typedef struct xge_hal_pci_config_t { 1246a23fd118Syl #ifdef XGE_OS_HOST_BIG_ENDIAN 1247a23fd118Syl u16 device_id; // 0x02 1248a23fd118Syl u16 vendor_id; // 0x00 1249a23fd118Syl 1250a23fd118Syl u16 status; // 0x06 1251a23fd118Syl u16 command; // 0x04 1252a23fd118Syl 1253a23fd118Syl u8 pciClass[3]; // 0x09 1254a23fd118Syl u8 revision; // 0x08 1255a23fd118Syl 1256a23fd118Syl u8 bist; // 0x0f 1257a23fd118Syl u8 header_type; // 0x0e 1258a23fd118Syl u8 latency_timer; // 0x0d 1259a23fd118Syl u8 cache_line_size; // 0x0c 1260a23fd118Syl 1261a23fd118Syl u32 base_addr0_lo; // 0x10 1262a23fd118Syl u32 base_addr0_hi; // 0x14 1263a23fd118Syl 1264a23fd118Syl u32 base_addr1_lo; // 0x18 1265a23fd118Syl u32 base_addr1_hi; // 0x1C 1266a23fd118Syl 1267a23fd118Syl u32 not_Implemented1; // 0x20 1268a23fd118Syl u32 not_Implemented2; // 0x24 1269a23fd118Syl 1270a23fd118Syl u32 cardbus_cis_pointer; // 0x28 1271a23fd118Syl 1272a23fd118Syl u16 subsystem_id; // 0x2e 1273a23fd118Syl u16 subsystem_vendor_id; // 0x2c 1274a23fd118Syl 1275a23fd118Syl u32 rom_base; // 0x30 1276a23fd118Syl u8 rsvd_35[3]; // 0x35 1277a23fd118Syl u8 capabilities_pointer; // 0x34 1278a23fd118Syl u32 rsvd_38; // 0x38 1279a23fd118Syl 1280a23fd118Syl u8 max_latency; // 0x3f 1281a23fd118Syl u8 min_grant; // 0x3e 1282a23fd118Syl u8 interrupt_pin; // 0x3d 1283a23fd118Syl u8 interrupt_line; // 0x3c 1284a23fd118Syl 1285a23fd118Syl u16 msi_control; // 0x42 1286a23fd118Syl u8 msi_next_ptr; // 0x41 1287a23fd118Syl u8 msi_cap_id; // 0x40 1288a23fd118Syl u32 msi_lower_address; // 0x44 1289a23fd118Syl u32 msi_higher_address; // 0x48 1290a23fd118Syl u16 msi_unused; // 0x4e 1291a23fd118Syl u16 msi_data; // 0x4c 1292a23fd118Syl 1293a23fd118Syl u16 vpd_addr; // 0x52 1294a23fd118Syl u8 vpd_next_cap; // 0x51 1295a23fd118Syl u8 vpd_cap_id; // 0x50 1296a23fd118Syl u32 vpd_data; // 0x54 1297a23fd118Syl 1298a23fd118Syl u8 rsvd_b0[8]; // 0x58 1299a23fd118Syl 1300a23fd118Syl u16 pcix_command; // 0x62 1301a23fd118Syl u8 pcix_next_cap; // 0x61 1302a23fd118Syl u8 pcix_cap; // 0x60 1303a23fd118Syl 1304a23fd118Syl u32 pcix_status; // 0x64 1305a23fd118Syl #else 1306a23fd118Syl u16 vendor_id; // 0x00 1307a23fd118Syl u16 device_id; // 0x02 1308a23fd118Syl 1309a23fd118Syl u16 command; // 0x04 1310a23fd118Syl u16 status; // 0x06 1311a23fd118Syl 1312a23fd118Syl u8 revision; // 0x08 1313a23fd118Syl u8 pciClass[3]; // 0x09 1314a23fd118Syl 1315a23fd118Syl u8 cache_line_size; // 0x0c 1316a23fd118Syl u8 latency_timer; // 0x0d 1317a23fd118Syl u8 header_type; // 0x0e 1318a23fd118Syl u8 bist; // 0x0f 1319a23fd118Syl 1320a23fd118Syl u32 base_addr0_lo; // 0x10 1321a23fd118Syl u32 base_addr0_hi; // 0x14 1322a23fd118Syl 1323a23fd118Syl u32 base_addr1_lo; // 0x18 1324a23fd118Syl u32 base_addr1_hi; // 0x1C 1325a23fd118Syl 1326a23fd118Syl u32 not_Implemented1; // 0x20 1327a23fd118Syl u32 not_Implemented2; // 0x24 1328a23fd118Syl 1329a23fd118Syl u32 cardbus_cis_pointer; // 0x28 1330a23fd118Syl 1331a23fd118Syl u16 subsystem_vendor_id; // 0x2c 1332a23fd118Syl u16 subsystem_id; // 0x2e 1333a23fd118Syl 1334a23fd118Syl u32 rom_base; // 0x30 1335a23fd118Syl u8 capabilities_pointer; // 0x34 1336a23fd118Syl u8 rsvd_35[3]; // 0x35 1337a23fd118Syl u32 rsvd_38; // 0x38 1338a23fd118Syl 1339a23fd118Syl u8 interrupt_line; // 0x3c 1340a23fd118Syl u8 interrupt_pin; // 0x3d 1341a23fd118Syl u8 min_grant; // 0x3e 1342a23fd118Syl u8 max_latency; // 0x3f 1343a23fd118Syl 1344a23fd118Syl u8 msi_cap_id; // 0x40 1345a23fd118Syl u8 msi_next_ptr; // 0x41 1346a23fd118Syl u16 msi_control; // 0x42 1347a23fd118Syl u32 msi_lower_address; // 0x44 1348a23fd118Syl u32 msi_higher_address; // 0x48 1349a23fd118Syl u16 msi_data; // 0x4c 1350a23fd118Syl u16 msi_unused; // 0x4e 1351a23fd118Syl 1352a23fd118Syl u8 vpd_cap_id; // 0x50 1353a23fd118Syl u8 vpd_next_cap; // 0x51 1354a23fd118Syl u16 vpd_addr; // 0x52 1355a23fd118Syl u32 vpd_data; // 0x54 1356a23fd118Syl 1357a23fd118Syl u8 rsvd_b0[8]; // 0x58 1358a23fd118Syl 1359a23fd118Syl u8 pcix_cap; // 0x60 1360a23fd118Syl u8 pcix_next_cap; // 0x61 1361a23fd118Syl u16 pcix_command; // 0x62 1362a23fd118Syl 1363a23fd118Syl u32 pcix_status; // 0x64 1364a23fd118Syl 1365a23fd118Syl #endif 1366a23fd118Syl u8 rsvd_b1[XGE_HAL_PCI_XFRAME_CONFIG_SPACE_SIZE-0x68]; 1367a23fd118Syl } xge_hal_pci_config_t; // 0x100 1368a23fd118Syl 1369a23fd118Syl #define XGE_HAL_REG_SPACE sizeof(xge_hal_pci_bar0_t) 1370a23fd118Syl #define XGE_HAL_EEPROM_SIZE (0x01 << 11) 1371a23fd118Syl 13727eced415Sxw __EXTERN_END_DECLS 13737eced415Sxw 1374a23fd118Syl #endif /* XGE_HAL_REGS_H */ 1375