1*d0ae6124SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 2aa43c215SJeff Kirsher /* 3aa43c215SJeff Kirsher * Copyright (C) 2003 - 2009 NetXen, Inc. 4aa43c215SJeff Kirsher * Copyright (C) 2009 - QLogic Corporation. 5aa43c215SJeff Kirsher * All rights reserved. 6aa43c215SJeff Kirsher */ 7aa43c215SJeff Kirsher 8aa43c215SJeff Kirsher #ifndef __NETXEN_NIC_HDR_H_ 9aa43c215SJeff Kirsher #define __NETXEN_NIC_HDR_H_ 10aa43c215SJeff Kirsher 11aa43c215SJeff Kirsher #include <linux/kernel.h> 12aa43c215SJeff Kirsher #include <linux/types.h> 13aa43c215SJeff Kirsher 14aa43c215SJeff Kirsher /* 15aa43c215SJeff Kirsher * The basic unit of access when reading/writing control registers. 16aa43c215SJeff Kirsher */ 17aa43c215SJeff Kirsher 18aa43c215SJeff Kirsher typedef __le32 netxen_crbword_t; /* single word in CRB space */ 19aa43c215SJeff Kirsher 20aa43c215SJeff Kirsher enum { 21aa43c215SJeff Kirsher NETXEN_HW_H0_CH_HUB_ADR = 0x05, 22aa43c215SJeff Kirsher NETXEN_HW_H1_CH_HUB_ADR = 0x0E, 23aa43c215SJeff Kirsher NETXEN_HW_H2_CH_HUB_ADR = 0x03, 24aa43c215SJeff Kirsher NETXEN_HW_H3_CH_HUB_ADR = 0x01, 25aa43c215SJeff Kirsher NETXEN_HW_H4_CH_HUB_ADR = 0x06, 26aa43c215SJeff Kirsher NETXEN_HW_H5_CH_HUB_ADR = 0x07, 27aa43c215SJeff Kirsher NETXEN_HW_H6_CH_HUB_ADR = 0x08 28aa43c215SJeff Kirsher }; 29aa43c215SJeff Kirsher 30aa43c215SJeff Kirsher /* Hub 0 */ 31aa43c215SJeff Kirsher enum { 32aa43c215SJeff Kirsher NETXEN_HW_MN_CRB_AGT_ADR = 0x15, 33aa43c215SJeff Kirsher NETXEN_HW_MS_CRB_AGT_ADR = 0x25 34aa43c215SJeff Kirsher }; 35aa43c215SJeff Kirsher 36aa43c215SJeff Kirsher /* Hub 1 */ 37aa43c215SJeff Kirsher enum { 38aa43c215SJeff Kirsher NETXEN_HW_PS_CRB_AGT_ADR = 0x73, 39aa43c215SJeff Kirsher NETXEN_HW_SS_CRB_AGT_ADR = 0x20, 40aa43c215SJeff Kirsher NETXEN_HW_RPMX3_CRB_AGT_ADR = 0x0b, 41aa43c215SJeff Kirsher NETXEN_HW_QMS_CRB_AGT_ADR = 0x00, 42aa43c215SJeff Kirsher NETXEN_HW_SQGS0_CRB_AGT_ADR = 0x01, 43aa43c215SJeff Kirsher NETXEN_HW_SQGS1_CRB_AGT_ADR = 0x02, 44aa43c215SJeff Kirsher NETXEN_HW_SQGS2_CRB_AGT_ADR = 0x03, 45aa43c215SJeff Kirsher NETXEN_HW_SQGS3_CRB_AGT_ADR = 0x04, 46aa43c215SJeff Kirsher NETXEN_HW_C2C0_CRB_AGT_ADR = 0x58, 47aa43c215SJeff Kirsher NETXEN_HW_C2C1_CRB_AGT_ADR = 0x59, 48aa43c215SJeff Kirsher NETXEN_HW_C2C2_CRB_AGT_ADR = 0x5a, 49aa43c215SJeff Kirsher NETXEN_HW_RPMX2_CRB_AGT_ADR = 0x0a, 50aa43c215SJeff Kirsher NETXEN_HW_RPMX4_CRB_AGT_ADR = 0x0c, 51aa43c215SJeff Kirsher NETXEN_HW_RPMX7_CRB_AGT_ADR = 0x0f, 52aa43c215SJeff Kirsher NETXEN_HW_RPMX9_CRB_AGT_ADR = 0x12, 53aa43c215SJeff Kirsher NETXEN_HW_SMB_CRB_AGT_ADR = 0x18 54aa43c215SJeff Kirsher }; 55aa43c215SJeff Kirsher 56aa43c215SJeff Kirsher /* Hub 2 */ 57aa43c215SJeff Kirsher enum { 58aa43c215SJeff Kirsher NETXEN_HW_NIU_CRB_AGT_ADR = 0x31, 59aa43c215SJeff Kirsher NETXEN_HW_I2C0_CRB_AGT_ADR = 0x19, 60aa43c215SJeff Kirsher NETXEN_HW_I2C1_CRB_AGT_ADR = 0x29, 61aa43c215SJeff Kirsher 62aa43c215SJeff Kirsher NETXEN_HW_SN_CRB_AGT_ADR = 0x10, 63aa43c215SJeff Kirsher NETXEN_HW_I2Q_CRB_AGT_ADR = 0x20, 64aa43c215SJeff Kirsher NETXEN_HW_LPC_CRB_AGT_ADR = 0x22, 65aa43c215SJeff Kirsher NETXEN_HW_ROMUSB_CRB_AGT_ADR = 0x21, 66aa43c215SJeff Kirsher NETXEN_HW_QM_CRB_AGT_ADR = 0x66, 67aa43c215SJeff Kirsher NETXEN_HW_SQG0_CRB_AGT_ADR = 0x60, 68aa43c215SJeff Kirsher NETXEN_HW_SQG1_CRB_AGT_ADR = 0x61, 69aa43c215SJeff Kirsher NETXEN_HW_SQG2_CRB_AGT_ADR = 0x62, 70aa43c215SJeff Kirsher NETXEN_HW_SQG3_CRB_AGT_ADR = 0x63, 71aa43c215SJeff Kirsher NETXEN_HW_RPMX1_CRB_AGT_ADR = 0x09, 72aa43c215SJeff Kirsher NETXEN_HW_RPMX5_CRB_AGT_ADR = 0x0d, 73aa43c215SJeff Kirsher NETXEN_HW_RPMX6_CRB_AGT_ADR = 0x0e, 74aa43c215SJeff Kirsher NETXEN_HW_RPMX8_CRB_AGT_ADR = 0x11 75aa43c215SJeff Kirsher }; 76aa43c215SJeff Kirsher 77aa43c215SJeff Kirsher /* Hub 3 */ 78aa43c215SJeff Kirsher enum { 79aa43c215SJeff Kirsher NETXEN_HW_PH_CRB_AGT_ADR = 0x1A, 80aa43c215SJeff Kirsher NETXEN_HW_SRE_CRB_AGT_ADR = 0x50, 81aa43c215SJeff Kirsher NETXEN_HW_EG_CRB_AGT_ADR = 0x51, 82aa43c215SJeff Kirsher NETXEN_HW_RPMX0_CRB_AGT_ADR = 0x08 83aa43c215SJeff Kirsher }; 84aa43c215SJeff Kirsher 85aa43c215SJeff Kirsher /* Hub 4 */ 86aa43c215SJeff Kirsher enum { 87aa43c215SJeff Kirsher NETXEN_HW_PEGN0_CRB_AGT_ADR = 0x40, 88aa43c215SJeff Kirsher NETXEN_HW_PEGN1_CRB_AGT_ADR, 89aa43c215SJeff Kirsher NETXEN_HW_PEGN2_CRB_AGT_ADR, 90aa43c215SJeff Kirsher NETXEN_HW_PEGN3_CRB_AGT_ADR, 91aa43c215SJeff Kirsher NETXEN_HW_PEGNI_CRB_AGT_ADR, 92aa43c215SJeff Kirsher NETXEN_HW_PEGND_CRB_AGT_ADR, 93aa43c215SJeff Kirsher NETXEN_HW_PEGNC_CRB_AGT_ADR, 94aa43c215SJeff Kirsher NETXEN_HW_PEGR0_CRB_AGT_ADR, 95aa43c215SJeff Kirsher NETXEN_HW_PEGR1_CRB_AGT_ADR, 96aa43c215SJeff Kirsher NETXEN_HW_PEGR2_CRB_AGT_ADR, 97aa43c215SJeff Kirsher NETXEN_HW_PEGR3_CRB_AGT_ADR, 98aa43c215SJeff Kirsher NETXEN_HW_PEGN4_CRB_AGT_ADR 99aa43c215SJeff Kirsher }; 100aa43c215SJeff Kirsher 101aa43c215SJeff Kirsher /* Hub 5 */ 102aa43c215SJeff Kirsher enum { 103aa43c215SJeff Kirsher NETXEN_HW_PEGS0_CRB_AGT_ADR = 0x40, 104aa43c215SJeff Kirsher NETXEN_HW_PEGS1_CRB_AGT_ADR, 105aa43c215SJeff Kirsher NETXEN_HW_PEGS2_CRB_AGT_ADR, 106aa43c215SJeff Kirsher NETXEN_HW_PEGS3_CRB_AGT_ADR, 107aa43c215SJeff Kirsher NETXEN_HW_PEGSI_CRB_AGT_ADR, 108aa43c215SJeff Kirsher NETXEN_HW_PEGSD_CRB_AGT_ADR, 109aa43c215SJeff Kirsher NETXEN_HW_PEGSC_CRB_AGT_ADR 110aa43c215SJeff Kirsher }; 111aa43c215SJeff Kirsher 112aa43c215SJeff Kirsher /* Hub 6 */ 113aa43c215SJeff Kirsher enum { 114aa43c215SJeff Kirsher NETXEN_HW_CAS0_CRB_AGT_ADR = 0x46, 115aa43c215SJeff Kirsher NETXEN_HW_CAS1_CRB_AGT_ADR = 0x47, 116aa43c215SJeff Kirsher NETXEN_HW_CAS2_CRB_AGT_ADR = 0x48, 117aa43c215SJeff Kirsher NETXEN_HW_CAS3_CRB_AGT_ADR = 0x49, 118aa43c215SJeff Kirsher NETXEN_HW_NCM_CRB_AGT_ADR = 0x16, 119aa43c215SJeff Kirsher NETXEN_HW_TMR_CRB_AGT_ADR = 0x17, 120aa43c215SJeff Kirsher NETXEN_HW_XDMA_CRB_AGT_ADR = 0x05, 121aa43c215SJeff Kirsher NETXEN_HW_OCM0_CRB_AGT_ADR = 0x06, 122aa43c215SJeff Kirsher NETXEN_HW_OCM1_CRB_AGT_ADR = 0x07 123aa43c215SJeff Kirsher }; 124aa43c215SJeff Kirsher 125aa43c215SJeff Kirsher /* Floaters - non existent modules */ 126aa43c215SJeff Kirsher #define NETXEN_HW_EFC_RPMX0_CRB_AGT_ADR 0x67 127aa43c215SJeff Kirsher 128aa43c215SJeff Kirsher /* This field defines PCI/X adr [25:20] of agents on the CRB */ 129aa43c215SJeff Kirsher enum { 130aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PH = 0, 131aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PS, 132aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_MN, 133aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_MS, 134aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGR1, 135aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_SRE, 136aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_NIU, 137aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_QMN, 138aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_SQN0, 139aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_SQN1, 140aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_SQN2, 141aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_SQN3, 142aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_QMS, 143aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_SQS0, 144aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_SQS1, 145aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_SQS2, 146aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_SQS3, 147aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGN0, 148aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGN1, 149aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGN2, 150aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGN3, 151aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGND, 152aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGNI, 153aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGS0, 154aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGS1, 155aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGS2, 156aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGS3, 157aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGSD, 158aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGSI, 159aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_SN, 160aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGR2, 161aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_EG, 162aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PH2, 163aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PS2, 164aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_CAM, 165aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_CAS0, 166aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_CAS1, 167aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_CAS2, 168aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_C2C0, 169aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_C2C1, 170aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_TIMR, 171aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGR3, 172aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_RPMX1, 173aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_RPMX2, 174aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_RPMX3, 175aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_RPMX4, 176aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_RPMX5, 177aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_RPMX6, 178aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_RPMX7, 179aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_XDMA, 180aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_I2Q, 181aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_ROMUSB, 182aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_CAS3, 183aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_RPMX0, 184aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_RPMX8, 185aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_RPMX9, 186aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_OCM0, 187aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_OCM1, 188aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_SMB, 189aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_I2C0, 190aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_I2C1, 191aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_LPC, 192aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGNC, 193aa43c215SJeff Kirsher NETXEN_HW_PX_MAP_CRB_PGR0 194aa43c215SJeff Kirsher }; 195aa43c215SJeff Kirsher 196aa43c215SJeff Kirsher /* This field defines CRB adr [31:20] of the agents */ 197aa43c215SJeff Kirsher 198aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_MN \ 199aa43c215SJeff Kirsher ((NETXEN_HW_H0_CH_HUB_ADR << 7) | NETXEN_HW_MN_CRB_AGT_ADR) 200aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PH \ 201aa43c215SJeff Kirsher ((NETXEN_HW_H0_CH_HUB_ADR << 7) | NETXEN_HW_PH_CRB_AGT_ADR) 202aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_MS \ 203aa43c215SJeff Kirsher ((NETXEN_HW_H0_CH_HUB_ADR << 7) | NETXEN_HW_MS_CRB_AGT_ADR) 204aa43c215SJeff Kirsher 205aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PS \ 206aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_PS_CRB_AGT_ADR) 207aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SS \ 208aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_SS_CRB_AGT_ADR) 209aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_RPMX3 \ 210aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_RPMX3_CRB_AGT_ADR) 211aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_QMS \ 212aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_QMS_CRB_AGT_ADR) 213aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SQS0 \ 214aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_SQGS0_CRB_AGT_ADR) 215aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SQS1 \ 216aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_SQGS1_CRB_AGT_ADR) 217aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SQS2 \ 218aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_SQGS2_CRB_AGT_ADR) 219aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SQS3 \ 220aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_SQGS3_CRB_AGT_ADR) 221aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_C2C0 \ 222aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_C2C0_CRB_AGT_ADR) 223aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_C2C1 \ 224aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_C2C1_CRB_AGT_ADR) 225aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_RPMX2 \ 226aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_RPMX2_CRB_AGT_ADR) 227aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_RPMX4 \ 228aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_RPMX4_CRB_AGT_ADR) 229aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_RPMX7 \ 230aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_RPMX7_CRB_AGT_ADR) 231aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_RPMX9 \ 232aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_RPMX9_CRB_AGT_ADR) 233aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SMB \ 234aa43c215SJeff Kirsher ((NETXEN_HW_H1_CH_HUB_ADR << 7) | NETXEN_HW_SMB_CRB_AGT_ADR) 235aa43c215SJeff Kirsher 236aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_NIU \ 237aa43c215SJeff Kirsher ((NETXEN_HW_H2_CH_HUB_ADR << 7) | NETXEN_HW_NIU_CRB_AGT_ADR) 238aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_I2C0 \ 239aa43c215SJeff Kirsher ((NETXEN_HW_H2_CH_HUB_ADR << 7) | NETXEN_HW_I2C0_CRB_AGT_ADR) 240aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_I2C1 \ 241aa43c215SJeff Kirsher ((NETXEN_HW_H2_CH_HUB_ADR << 7) | NETXEN_HW_I2C1_CRB_AGT_ADR) 242aa43c215SJeff Kirsher 243aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SRE \ 244aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_SRE_CRB_AGT_ADR) 245aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_EG \ 246aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_EG_CRB_AGT_ADR) 247aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_RPMX0 \ 248aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_RPMX0_CRB_AGT_ADR) 249aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_QMN \ 250aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_QM_CRB_AGT_ADR) 251aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SQN0 \ 252aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_SQG0_CRB_AGT_ADR) 253aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SQN1 \ 254aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_SQG1_CRB_AGT_ADR) 255aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SQN2 \ 256aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_SQG2_CRB_AGT_ADR) 257aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SQN3 \ 258aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_SQG3_CRB_AGT_ADR) 259aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_RPMX1 \ 260aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_RPMX1_CRB_AGT_ADR) 261aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_RPMX5 \ 262aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_RPMX5_CRB_AGT_ADR) 263aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_RPMX6 \ 264aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_RPMX6_CRB_AGT_ADR) 265aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_RPMX8 \ 266aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_RPMX8_CRB_AGT_ADR) 267aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_CAS0 \ 268aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_CAS0_CRB_AGT_ADR) 269aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_CAS1 \ 270aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_CAS1_CRB_AGT_ADR) 271aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_CAS2 \ 272aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_CAS2_CRB_AGT_ADR) 273aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_CAS3 \ 274aa43c215SJeff Kirsher ((NETXEN_HW_H3_CH_HUB_ADR << 7) | NETXEN_HW_CAS3_CRB_AGT_ADR) 275aa43c215SJeff Kirsher 276aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGNI \ 277aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGNI_CRB_AGT_ADR) 278aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGND \ 279aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGND_CRB_AGT_ADR) 280aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGN0 \ 281aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGN0_CRB_AGT_ADR) 282aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGN1 \ 283aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGN1_CRB_AGT_ADR) 284aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGN2 \ 285aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGN2_CRB_AGT_ADR) 286aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGN3 \ 287aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGN3_CRB_AGT_ADR) 288aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGN4 \ 289aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGN4_CRB_AGT_ADR) 290aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGNC \ 291aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGNC_CRB_AGT_ADR) 292aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGR0 \ 293aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGR0_CRB_AGT_ADR) 294aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGR1 \ 295aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGR1_CRB_AGT_ADR) 296aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGR2 \ 297aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGR2_CRB_AGT_ADR) 298aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGR3 \ 299aa43c215SJeff Kirsher ((NETXEN_HW_H4_CH_HUB_ADR << 7) | NETXEN_HW_PEGR3_CRB_AGT_ADR) 300aa43c215SJeff Kirsher 301aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGSI \ 302aa43c215SJeff Kirsher ((NETXEN_HW_H5_CH_HUB_ADR << 7) | NETXEN_HW_PEGSI_CRB_AGT_ADR) 303aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGSD \ 304aa43c215SJeff Kirsher ((NETXEN_HW_H5_CH_HUB_ADR << 7) | NETXEN_HW_PEGSD_CRB_AGT_ADR) 305aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGS0 \ 306aa43c215SJeff Kirsher ((NETXEN_HW_H5_CH_HUB_ADR << 7) | NETXEN_HW_PEGS0_CRB_AGT_ADR) 307aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGS1 \ 308aa43c215SJeff Kirsher ((NETXEN_HW_H5_CH_HUB_ADR << 7) | NETXEN_HW_PEGS1_CRB_AGT_ADR) 309aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGS2 \ 310aa43c215SJeff Kirsher ((NETXEN_HW_H5_CH_HUB_ADR << 7) | NETXEN_HW_PEGS2_CRB_AGT_ADR) 311aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGS3 \ 312aa43c215SJeff Kirsher ((NETXEN_HW_H5_CH_HUB_ADR << 7) | NETXEN_HW_PEGS3_CRB_AGT_ADR) 313aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_PGSC \ 314aa43c215SJeff Kirsher ((NETXEN_HW_H5_CH_HUB_ADR << 7) | NETXEN_HW_PEGSC_CRB_AGT_ADR) 315aa43c215SJeff Kirsher 316aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_CAM \ 317aa43c215SJeff Kirsher ((NETXEN_HW_H6_CH_HUB_ADR << 7) | NETXEN_HW_NCM_CRB_AGT_ADR) 318aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_TIMR \ 319aa43c215SJeff Kirsher ((NETXEN_HW_H6_CH_HUB_ADR << 7) | NETXEN_HW_TMR_CRB_AGT_ADR) 320aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_XDMA \ 321aa43c215SJeff Kirsher ((NETXEN_HW_H6_CH_HUB_ADR << 7) | NETXEN_HW_XDMA_CRB_AGT_ADR) 322aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_SN \ 323aa43c215SJeff Kirsher ((NETXEN_HW_H6_CH_HUB_ADR << 7) | NETXEN_HW_SN_CRB_AGT_ADR) 324aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_I2Q \ 325aa43c215SJeff Kirsher ((NETXEN_HW_H6_CH_HUB_ADR << 7) | NETXEN_HW_I2Q_CRB_AGT_ADR) 326aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_ROMUSB \ 327aa43c215SJeff Kirsher ((NETXEN_HW_H6_CH_HUB_ADR << 7) | NETXEN_HW_ROMUSB_CRB_AGT_ADR) 328aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_OCM0 \ 329aa43c215SJeff Kirsher ((NETXEN_HW_H6_CH_HUB_ADR << 7) | NETXEN_HW_OCM0_CRB_AGT_ADR) 330aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_OCM1 \ 331aa43c215SJeff Kirsher ((NETXEN_HW_H6_CH_HUB_ADR << 7) | NETXEN_HW_OCM1_CRB_AGT_ADR) 332aa43c215SJeff Kirsher #define NETXEN_HW_CRB_HUB_AGT_ADR_LPC \ 333aa43c215SJeff Kirsher ((NETXEN_HW_H6_CH_HUB_ADR << 7) | NETXEN_HW_LPC_CRB_AGT_ADR) 334aa43c215SJeff Kirsher 335aa43c215SJeff Kirsher #define NETXEN_SRE_MISC (NETXEN_CRB_SRE + 0x0002c) 336aa43c215SJeff Kirsher #define NETXEN_SRE_INT_STATUS (NETXEN_CRB_SRE + 0x00034) 337aa43c215SJeff Kirsher #define NETXEN_SRE_PBI_ACTIVE_STATUS (NETXEN_CRB_SRE + 0x01014) 338aa43c215SJeff Kirsher #define NETXEN_SRE_L1RE_CTL (NETXEN_CRB_SRE + 0x03000) 339aa43c215SJeff Kirsher #define NETXEN_SRE_L2RE_CTL (NETXEN_CRB_SRE + 0x05000) 340aa43c215SJeff Kirsher #define NETXEN_SRE_BUF_CTL (NETXEN_CRB_SRE + 0x01000) 341aa43c215SJeff Kirsher 342aa43c215SJeff Kirsher #define NETXEN_DMA_BASE(U) (NETXEN_CRB_PCIX_MD + 0x20000 + ((U)<<16)) 343aa43c215SJeff Kirsher #define NETXEN_DMA_COMMAND(U) (NETXEN_DMA_BASE(U) + 0x00008) 344aa43c215SJeff Kirsher 345aa43c215SJeff Kirsher #define NETXEN_I2Q_CLR_PCI_HI (NETXEN_CRB_I2Q + 0x00034) 346aa43c215SJeff Kirsher 347aa43c215SJeff Kirsher #define PEG_NETWORK_BASE(N) (NETXEN_CRB_PEG_NET_0 + (((N)&3) << 20)) 348aa43c215SJeff Kirsher #define CRB_REG_EX_PC 0x3c 349aa43c215SJeff Kirsher 350aa43c215SJeff Kirsher #define ROMUSB_GLB (NETXEN_CRB_ROMUSB + 0x00000) 351aa43c215SJeff Kirsher #define ROMUSB_ROM (NETXEN_CRB_ROMUSB + 0x10000) 352aa43c215SJeff Kirsher 353aa43c215SJeff Kirsher #define NETXEN_ROMUSB_GLB_STATUS (ROMUSB_GLB + 0x0004) 354aa43c215SJeff Kirsher #define NETXEN_ROMUSB_GLB_SW_RESET (ROMUSB_GLB + 0x0008) 355aa43c215SJeff Kirsher #define NETXEN_ROMUSB_GLB_PAD_GPIO_I (ROMUSB_GLB + 0x000c) 356aa43c215SJeff Kirsher #define NETXEN_ROMUSB_GLB_CAS_RST (ROMUSB_GLB + 0x0038) 357aa43c215SJeff Kirsher #define NETXEN_ROMUSB_GLB_TEST_MUX_SEL (ROMUSB_GLB + 0x0044) 358aa43c215SJeff Kirsher #define NETXEN_ROMUSB_GLB_PEGTUNE_DONE (ROMUSB_GLB + 0x005c) 359aa43c215SJeff Kirsher #define NETXEN_ROMUSB_GLB_CHIP_CLK_CTRL (ROMUSB_GLB + 0x00A8) 360aa43c215SJeff Kirsher 361aa43c215SJeff Kirsher #define NETXEN_ROMUSB_GPIO(n) (ROMUSB_GLB + 0x60 + (4 * (n))) 362aa43c215SJeff Kirsher 363aa43c215SJeff Kirsher #define NETXEN_ROMUSB_ROM_INSTR_OPCODE (ROMUSB_ROM + 0x0004) 364aa43c215SJeff Kirsher #define NETXEN_ROMUSB_ROM_ADDRESS (ROMUSB_ROM + 0x0008) 365aa43c215SJeff Kirsher #define NETXEN_ROMUSB_ROM_WDATA (ROMUSB_ROM + 0x000c) 366aa43c215SJeff Kirsher #define NETXEN_ROMUSB_ROM_ABYTE_CNT (ROMUSB_ROM + 0x0010) 367aa43c215SJeff Kirsher #define NETXEN_ROMUSB_ROM_DUMMY_BYTE_CNT (ROMUSB_ROM + 0x0014) 368aa43c215SJeff Kirsher #define NETXEN_ROMUSB_ROM_RDATA (ROMUSB_ROM + 0x0018) 369aa43c215SJeff Kirsher 370aa43c215SJeff Kirsher /* Lock IDs for ROM lock */ 371aa43c215SJeff Kirsher #define ROM_LOCK_DRIVER 0x0d417340 372aa43c215SJeff Kirsher 373aa43c215SJeff Kirsher /****************************************************************************** 374aa43c215SJeff Kirsher * 375aa43c215SJeff Kirsher * Definitions specific to M25P flash 376aa43c215SJeff Kirsher * 377aa43c215SJeff Kirsher ******************************************************************************* 378aa43c215SJeff Kirsher * Instructions 379aa43c215SJeff Kirsher */ 380aa43c215SJeff Kirsher #define M25P_INSTR_WREN 0x06 381aa43c215SJeff Kirsher #define M25P_INSTR_WRDI 0x04 382aa43c215SJeff Kirsher #define M25P_INSTR_RDID 0x9f 383aa43c215SJeff Kirsher #define M25P_INSTR_RDSR 0x05 384aa43c215SJeff Kirsher #define M25P_INSTR_WRSR 0x01 385aa43c215SJeff Kirsher #define M25P_INSTR_READ 0x03 386aa43c215SJeff Kirsher #define M25P_INSTR_FAST_READ 0x0b 387aa43c215SJeff Kirsher #define M25P_INSTR_PP 0x02 388aa43c215SJeff Kirsher #define M25P_INSTR_SE 0xd8 389aa43c215SJeff Kirsher #define M25P_INSTR_BE 0xc7 390aa43c215SJeff Kirsher #define M25P_INSTR_DP 0xb9 391aa43c215SJeff Kirsher #define M25P_INSTR_RES 0xab 392aa43c215SJeff Kirsher 393aa43c215SJeff Kirsher /* all are 1MB windows */ 394aa43c215SJeff Kirsher 395aa43c215SJeff Kirsher #define NETXEN_PCI_CRB_WINDOWSIZE 0x00100000 396aa43c215SJeff Kirsher #define NETXEN_PCI_CRB_WINDOW(A) \ 397aa43c215SJeff Kirsher (NETXEN_PCI_CRBSPACE + (A)*NETXEN_PCI_CRB_WINDOWSIZE) 398aa43c215SJeff Kirsher 399aa43c215SJeff Kirsher #define NETXEN_CRB_NIU NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_NIU) 400aa43c215SJeff Kirsher #define NETXEN_CRB_SRE NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_SRE) 401aa43c215SJeff Kirsher #define NETXEN_CRB_ROMUSB \ 402aa43c215SJeff Kirsher NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_ROMUSB) 403aa43c215SJeff Kirsher #define NETXEN_CRB_I2Q NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_I2Q) 404aa43c215SJeff Kirsher #define NETXEN_CRB_I2C0 NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_I2C0) 405aa43c215SJeff Kirsher #define NETXEN_CRB_SMB NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_SMB) 406aa43c215SJeff Kirsher #define NETXEN_CRB_MAX NETXEN_PCI_CRB_WINDOW(64) 407aa43c215SJeff Kirsher 408aa43c215SJeff Kirsher #define NETXEN_CRB_PCIX_HOST NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_PH) 409aa43c215SJeff Kirsher #define NETXEN_CRB_PCIX_HOST2 NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_PH2) 410aa43c215SJeff Kirsher #define NETXEN_CRB_PEG_NET_0 NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_PGN0) 411aa43c215SJeff Kirsher #define NETXEN_CRB_PEG_NET_1 NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_PGN1) 412aa43c215SJeff Kirsher #define NETXEN_CRB_PEG_NET_2 NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_PGN2) 413aa43c215SJeff Kirsher #define NETXEN_CRB_PEG_NET_3 NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_PGN3) 414aa43c215SJeff Kirsher #define NETXEN_CRB_PEG_NET_4 NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_SQS2) 415aa43c215SJeff Kirsher #define NETXEN_CRB_PEG_NET_D NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_PGND) 416aa43c215SJeff Kirsher #define NETXEN_CRB_PEG_NET_I NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_PGNI) 417aa43c215SJeff Kirsher #define NETXEN_CRB_DDR_NET NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_MN) 418aa43c215SJeff Kirsher #define NETXEN_CRB_QDR_NET NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_SN) 419aa43c215SJeff Kirsher 420aa43c215SJeff Kirsher #define NETXEN_CRB_PCIX_MD NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_PS) 421aa43c215SJeff Kirsher #define NETXEN_CRB_PCIE NETXEN_CRB_PCIX_MD 422aa43c215SJeff Kirsher 423aa43c215SJeff Kirsher #define ISR_INT_VECTOR (NETXEN_PCIX_PS_REG(PCIX_INT_VECTOR)) 424aa43c215SJeff Kirsher #define ISR_INT_MASK (NETXEN_PCIX_PS_REG(PCIX_INT_MASK)) 425aa43c215SJeff Kirsher #define ISR_INT_MASK_SLOW (NETXEN_PCIX_PS_REG(PCIX_INT_MASK)) 426aa43c215SJeff Kirsher #define ISR_INT_TARGET_STATUS (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS)) 427aa43c215SJeff Kirsher #define ISR_INT_TARGET_MASK (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK)) 428aa43c215SJeff Kirsher #define ISR_INT_TARGET_STATUS_F1 (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS_F1)) 429aa43c215SJeff Kirsher #define ISR_INT_TARGET_MASK_F1 (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK_F1)) 430aa43c215SJeff Kirsher #define ISR_INT_TARGET_STATUS_F2 (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS_F2)) 431aa43c215SJeff Kirsher #define ISR_INT_TARGET_MASK_F2 (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK_F2)) 432aa43c215SJeff Kirsher #define ISR_INT_TARGET_STATUS_F3 (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS_F3)) 433aa43c215SJeff Kirsher #define ISR_INT_TARGET_MASK_F3 (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK_F3)) 434aa43c215SJeff Kirsher #define ISR_INT_TARGET_STATUS_F4 (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS_F4)) 435aa43c215SJeff Kirsher #define ISR_INT_TARGET_MASK_F4 (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK_F4)) 436aa43c215SJeff Kirsher #define ISR_INT_TARGET_STATUS_F5 (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS_F5)) 437aa43c215SJeff Kirsher #define ISR_INT_TARGET_MASK_F5 (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK_F5)) 438aa43c215SJeff Kirsher #define ISR_INT_TARGET_STATUS_F6 (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS_F6)) 439aa43c215SJeff Kirsher #define ISR_INT_TARGET_MASK_F6 (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK_F6)) 440aa43c215SJeff Kirsher #define ISR_INT_TARGET_STATUS_F7 (NETXEN_PCIX_PS_REG(PCIX_TARGET_STATUS_F7)) 441aa43c215SJeff Kirsher #define ISR_INT_TARGET_MASK_F7 (NETXEN_PCIX_PS_REG(PCIX_TARGET_MASK_F7)) 442aa43c215SJeff Kirsher 443aa43c215SJeff Kirsher #define NETXEN_PCI_MAPSIZE 128 444aa43c215SJeff Kirsher #define NETXEN_PCI_DDR_NET (0x00000000UL) 445aa43c215SJeff Kirsher #define NETXEN_PCI_QDR_NET (0x04000000UL) 446aa43c215SJeff Kirsher #define NETXEN_PCI_DIRECT_CRB (0x04400000UL) 447aa43c215SJeff Kirsher #define NETXEN_PCI_CAMQM (0x04800000UL) 448aa43c215SJeff Kirsher #define NETXEN_PCI_CAMQM_MAX (0x04ffffffUL) 449aa43c215SJeff Kirsher #define NETXEN_PCI_OCM0 (0x05000000UL) 450aa43c215SJeff Kirsher #define NETXEN_PCI_OCM0_MAX (0x050fffffUL) 451aa43c215SJeff Kirsher #define NETXEN_PCI_OCM1 (0x05100000UL) 452aa43c215SJeff Kirsher #define NETXEN_PCI_OCM1_MAX (0x051fffffUL) 453aa43c215SJeff Kirsher #define NETXEN_PCI_CRBSPACE (0x06000000UL) 454aa43c215SJeff Kirsher #define NETXEN_PCI_128MB_SIZE (0x08000000UL) 455aa43c215SJeff Kirsher #define NETXEN_PCI_32MB_SIZE (0x02000000UL) 456aa43c215SJeff Kirsher #define NETXEN_PCI_2MB_SIZE (0x00200000UL) 457aa43c215SJeff Kirsher 458aa43c215SJeff Kirsher #define NETXEN_PCI_MN_2M (0) 459aa43c215SJeff Kirsher #define NETXEN_PCI_MS_2M (0x80000) 460aa43c215SJeff Kirsher #define NETXEN_PCI_OCM0_2M (0x000c0000UL) 461aa43c215SJeff Kirsher #define NETXEN_PCI_CAMQM_2M_BASE (0x000ff800UL) 462aa43c215SJeff Kirsher #define NETXEN_PCI_CAMQM_2M_END (0x04800800UL) 463aa43c215SJeff Kirsher 464aa43c215SJeff Kirsher #define NETXEN_CRB_CAM NETXEN_PCI_CRB_WINDOW(NETXEN_HW_PX_MAP_CRB_CAM) 465aa43c215SJeff Kirsher 466aa43c215SJeff Kirsher #define NETXEN_ADDR_DDR_NET (0x0000000000000000ULL) 467aa43c215SJeff Kirsher #define NETXEN_ADDR_DDR_NET_MAX (0x000000000fffffffULL) 468aa43c215SJeff Kirsher #define NETXEN_ADDR_OCM0 (0x0000000200000000ULL) 469aa43c215SJeff Kirsher #define NETXEN_ADDR_OCM0_MAX (0x00000002000fffffULL) 470aa43c215SJeff Kirsher #define NETXEN_ADDR_OCM1 (0x0000000200400000ULL) 471aa43c215SJeff Kirsher #define NETXEN_ADDR_OCM1_MAX (0x00000002004fffffULL) 472aa43c215SJeff Kirsher #define NETXEN_ADDR_QDR_NET (0x0000000300000000ULL) 473aa43c215SJeff Kirsher #define NETXEN_ADDR_QDR_NET_MAX_P2 (0x00000003003fffffULL) 474aa43c215SJeff Kirsher #define NETXEN_ADDR_QDR_NET_MAX_P3 (0x0000000303ffffffULL) 475aa43c215SJeff Kirsher 476aa43c215SJeff Kirsher /* 477aa43c215SJeff Kirsher * Register offsets for MN 478aa43c215SJeff Kirsher */ 479aa43c215SJeff Kirsher #define NETXEN_MIU_CONTROL (0x000) 480aa43c215SJeff Kirsher #define NETXEN_MIU_MN_CONTROL (NETXEN_CRB_DDR_NET+NETXEN_MIU_CONTROL) 481aa43c215SJeff Kirsher 482aa43c215SJeff Kirsher /* 200ms delay in each loop */ 483aa43c215SJeff Kirsher #define NETXEN_NIU_PHY_WAITLEN 200000 484aa43c215SJeff Kirsher /* 10 seconds before we give up */ 485aa43c215SJeff Kirsher #define NETXEN_NIU_PHY_WAITMAX 50 486aa43c215SJeff Kirsher #define NETXEN_NIU_MAX_GBE_PORTS 4 487aa43c215SJeff Kirsher #define NETXEN_NIU_MAX_XG_PORTS 2 488aa43c215SJeff Kirsher 489aa43c215SJeff Kirsher #define NETXEN_NIU_MODE (NETXEN_CRB_NIU + 0x00000) 490aa43c215SJeff Kirsher 491aa43c215SJeff Kirsher #define NETXEN_NIU_XG_SINGLE_TERM (NETXEN_CRB_NIU + 0x00004) 492aa43c215SJeff Kirsher #define NETXEN_NIU_XG_DRIVE_HI (NETXEN_CRB_NIU + 0x00008) 493aa43c215SJeff Kirsher #define NETXEN_NIU_XG_DRIVE_LO (NETXEN_CRB_NIU + 0x0000c) 494aa43c215SJeff Kirsher #define NETXEN_NIU_XG_DTX (NETXEN_CRB_NIU + 0x00010) 495aa43c215SJeff Kirsher #define NETXEN_NIU_XG_DEQ (NETXEN_CRB_NIU + 0x00014) 496aa43c215SJeff Kirsher #define NETXEN_NIU_XG_WORD_ALIGN (NETXEN_CRB_NIU + 0x00018) 497aa43c215SJeff Kirsher #define NETXEN_NIU_XG_RESET (NETXEN_CRB_NIU + 0x0001c) 498aa43c215SJeff Kirsher #define NETXEN_NIU_XG_POWER_DOWN (NETXEN_CRB_NIU + 0x00020) 499aa43c215SJeff Kirsher #define NETXEN_NIU_XG_RESET_PLL (NETXEN_CRB_NIU + 0x00024) 500aa43c215SJeff Kirsher #define NETXEN_NIU_XG_SERDES_LOOPBACK (NETXEN_CRB_NIU + 0x00028) 501aa43c215SJeff Kirsher #define NETXEN_NIU_XG_DO_BYTE_ALIGN (NETXEN_CRB_NIU + 0x0002c) 502aa43c215SJeff Kirsher #define NETXEN_NIU_XG_TX_ENABLE (NETXEN_CRB_NIU + 0x00030) 503aa43c215SJeff Kirsher #define NETXEN_NIU_XG_RX_ENABLE (NETXEN_CRB_NIU + 0x00034) 504aa43c215SJeff Kirsher #define NETXEN_NIU_XG_STATUS (NETXEN_CRB_NIU + 0x00038) 505aa43c215SJeff Kirsher #define NETXEN_NIU_XG_PAUSE_THRESHOLD (NETXEN_CRB_NIU + 0x0003c) 506aa43c215SJeff Kirsher #define NETXEN_NIU_INT_MASK (NETXEN_CRB_NIU + 0x00040) 507aa43c215SJeff Kirsher #define NETXEN_NIU_ACTIVE_INT (NETXEN_CRB_NIU + 0x00044) 508aa43c215SJeff Kirsher #define NETXEN_NIU_MASKABLE_INT (NETXEN_CRB_NIU + 0x00048) 509aa43c215SJeff Kirsher 510aa43c215SJeff Kirsher #define NETXEN_NIU_STRAP_VALUE_SAVE_HIGHER (NETXEN_CRB_NIU + 0x0004c) 511aa43c215SJeff Kirsher 512aa43c215SJeff Kirsher #define NETXEN_NIU_GB_SERDES_RESET (NETXEN_CRB_NIU + 0x00050) 513aa43c215SJeff Kirsher #define NETXEN_NIU_GB0_GMII_MODE (NETXEN_CRB_NIU + 0x00054) 514aa43c215SJeff Kirsher #define NETXEN_NIU_GB0_MII_MODE (NETXEN_CRB_NIU + 0x00058) 515aa43c215SJeff Kirsher #define NETXEN_NIU_GB1_GMII_MODE (NETXEN_CRB_NIU + 0x0005c) 516aa43c215SJeff Kirsher #define NETXEN_NIU_GB1_MII_MODE (NETXEN_CRB_NIU + 0x00060) 517aa43c215SJeff Kirsher #define NETXEN_NIU_GB2_GMII_MODE (NETXEN_CRB_NIU + 0x00064) 518aa43c215SJeff Kirsher #define NETXEN_NIU_GB2_MII_MODE (NETXEN_CRB_NIU + 0x00068) 519aa43c215SJeff Kirsher #define NETXEN_NIU_GB3_GMII_MODE (NETXEN_CRB_NIU + 0x0006c) 520aa43c215SJeff Kirsher #define NETXEN_NIU_GB3_MII_MODE (NETXEN_CRB_NIU + 0x00070) 521aa43c215SJeff Kirsher #define NETXEN_NIU_REMOTE_LOOPBACK (NETXEN_CRB_NIU + 0x00074) 522aa43c215SJeff Kirsher #define NETXEN_NIU_GB0_HALF_DUPLEX (NETXEN_CRB_NIU + 0x00078) 523aa43c215SJeff Kirsher #define NETXEN_NIU_GB1_HALF_DUPLEX (NETXEN_CRB_NIU + 0x0007c) 524aa43c215SJeff Kirsher #define NETXEN_NIU_RESET_SYS_FIFOS (NETXEN_CRB_NIU + 0x00088) 525aa43c215SJeff Kirsher #define NETXEN_NIU_GB_CRC_DROP (NETXEN_CRB_NIU + 0x0008c) 526aa43c215SJeff Kirsher #define NETXEN_NIU_GB_DROP_WRONGADDR (NETXEN_CRB_NIU + 0x00090) 527aa43c215SJeff Kirsher #define NETXEN_NIU_TEST_MUX_CTL (NETXEN_CRB_NIU + 0x00094) 528aa43c215SJeff Kirsher #define NETXEN_NIU_XG_PAUSE_CTL (NETXEN_CRB_NIU + 0x00098) 529aa43c215SJeff Kirsher #define NETXEN_NIU_XG_PAUSE_LEVEL (NETXEN_CRB_NIU + 0x000dc) 530aa43c215SJeff Kirsher #define NETXEN_NIU_FRAME_COUNT_SELECT (NETXEN_CRB_NIU + 0x000ac) 531aa43c215SJeff Kirsher #define NETXEN_NIU_FRAME_COUNT (NETXEN_CRB_NIU + 0x000b0) 532aa43c215SJeff Kirsher #define NETXEN_NIU_XG_SEL (NETXEN_CRB_NIU + 0x00128) 533aa43c215SJeff Kirsher #define NETXEN_NIU_GB_PAUSE_CTL (NETXEN_CRB_NIU + 0x0030c) 534aa43c215SJeff Kirsher 535aa43c215SJeff Kirsher #define NETXEN_NIU_FULL_LEVEL_XG (NETXEN_CRB_NIU + 0x00450) 536aa43c215SJeff Kirsher 537aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_RESET (NETXEN_CRB_NIU + 0x0011c) 538aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_POWER_DOWN (NETXEN_CRB_NIU + 0x00120) 539aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_RESET_PLL (NETXEN_CRB_NIU + 0x00124) 540aa43c215SJeff Kirsher 541aa43c215SJeff Kirsher #define NETXEN_MAC_ADDR_CNTL_REG (NETXEN_CRB_NIU + 0x1000) 542aa43c215SJeff Kirsher 543aa43c215SJeff Kirsher #define NETXEN_MULTICAST_ADDR_HI_0 (NETXEN_CRB_NIU + 0x1010) 544aa43c215SJeff Kirsher #define NETXEN_MULTICAST_ADDR_HI_1 (NETXEN_CRB_NIU + 0x1014) 545aa43c215SJeff Kirsher #define NETXEN_MULTICAST_ADDR_HI_2 (NETXEN_CRB_NIU + 0x1018) 546aa43c215SJeff Kirsher #define NETXEN_MULTICAST_ADDR_HI_3 (NETXEN_CRB_NIU + 0x101c) 547aa43c215SJeff Kirsher 548aa43c215SJeff Kirsher #define NETXEN_UNICAST_ADDR_BASE (NETXEN_CRB_NIU + 0x1080) 549aa43c215SJeff Kirsher #define NETXEN_MULTICAST_ADDR_BASE (NETXEN_CRB_NIU + 0x1100) 550aa43c215SJeff Kirsher 551aa43c215SJeff Kirsher #define NETXEN_NIU_GB_MAC_CONFIG_0(I) \ 552aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30000 + (I)*0x10000) 553aa43c215SJeff Kirsher #define NETXEN_NIU_GB_MAC_CONFIG_1(I) \ 554aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30004 + (I)*0x10000) 555aa43c215SJeff Kirsher #define NETXEN_NIU_GB_MAC_IPG_IFG(I) \ 556aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30008 + (I)*0x10000) 557aa43c215SJeff Kirsher #define NETXEN_NIU_GB_HALF_DUPLEX_CTRL(I) \ 558aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x3000c + (I)*0x10000) 559aa43c215SJeff Kirsher #define NETXEN_NIU_GB_MAX_FRAME_SIZE(I) \ 560aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30010 + (I)*0x10000) 561aa43c215SJeff Kirsher #define NETXEN_NIU_GB_TEST_REG(I) \ 562aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x3001c + (I)*0x10000) 563aa43c215SJeff Kirsher #define NETXEN_NIU_GB_MII_MGMT_CONFIG(I) \ 564aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30020 + (I)*0x10000) 565aa43c215SJeff Kirsher #define NETXEN_NIU_GB_MII_MGMT_COMMAND(I) \ 566aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30024 + (I)*0x10000) 567aa43c215SJeff Kirsher #define NETXEN_NIU_GB_MII_MGMT_ADDR(I) \ 568aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30028 + (I)*0x10000) 569aa43c215SJeff Kirsher #define NETXEN_NIU_GB_MII_MGMT_CTRL(I) \ 570aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x3002c + (I)*0x10000) 571aa43c215SJeff Kirsher #define NETXEN_NIU_GB_MII_MGMT_STATUS(I) \ 572aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30030 + (I)*0x10000) 573aa43c215SJeff Kirsher #define NETXEN_NIU_GB_MII_MGMT_INDICATE(I) \ 574aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30034 + (I)*0x10000) 575aa43c215SJeff Kirsher #define NETXEN_NIU_GB_INTERFACE_CTRL(I) \ 576aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30038 + (I)*0x10000) 577aa43c215SJeff Kirsher #define NETXEN_NIU_GB_INTERFACE_STATUS(I) \ 578aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x3003c + (I)*0x10000) 579aa43c215SJeff Kirsher #define NETXEN_NIU_GB_STATION_ADDR_0(I) \ 580aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30040 + (I)*0x10000) 581aa43c215SJeff Kirsher #define NETXEN_NIU_GB_STATION_ADDR_1(I) \ 582aa43c215SJeff Kirsher (NETXEN_CRB_NIU + 0x30044 + (I)*0x10000) 583aa43c215SJeff Kirsher 584aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_CONFIG_0 (NETXEN_CRB_NIU + 0x70000) 585aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_CONFIG_1 (NETXEN_CRB_NIU + 0x70004) 586aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_IPG (NETXEN_CRB_NIU + 0x70008) 587aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_STATION_ADDR_0_HI (NETXEN_CRB_NIU + 0x7000c) 588aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_STATION_ADDR_0_1 (NETXEN_CRB_NIU + 0x70010) 589aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_STATION_ADDR_1_LO (NETXEN_CRB_NIU + 0x70014) 590aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_STATUS (NETXEN_CRB_NIU + 0x70018) 591aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_MAX_FRAME_SIZE (NETXEN_CRB_NIU + 0x7001c) 592aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_PAUSE_FRAME_VALUE (NETXEN_CRB_NIU + 0x70020) 593aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_TX_BYTE_CNT (NETXEN_CRB_NIU + 0x70024) 594aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_TX_FRAME_CNT (NETXEN_CRB_NIU + 0x70028) 595aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_RX_BYTE_CNT (NETXEN_CRB_NIU + 0x7002c) 596aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_RX_FRAME_CNT (NETXEN_CRB_NIU + 0x70030) 597aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_AGGR_ERROR_CNT (NETXEN_CRB_NIU + 0x70034) 598aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_MULTICAST_FRAME_CNT (NETXEN_CRB_NIU + 0x70038) 599aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_UNICAST_FRAME_CNT (NETXEN_CRB_NIU + 0x7003c) 600aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_CRC_ERROR_CNT (NETXEN_CRB_NIU + 0x70040) 601aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_OVERSIZE_FRAME_ERR (NETXEN_CRB_NIU + 0x70044) 602aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_UNDERSIZE_FRAME_ERR (NETXEN_CRB_NIU + 0x70048) 603aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_LOCAL_ERROR_CNT (NETXEN_CRB_NIU + 0x7004c) 604aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_REMOTE_ERROR_CNT (NETXEN_CRB_NIU + 0x70050) 605aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_CONTROL_CHAR_CNT (NETXEN_CRB_NIU + 0x70054) 606aa43c215SJeff Kirsher #define NETXEN_NIU_XGE_PAUSE_FRAME_CNT (NETXEN_CRB_NIU + 0x70058) 607aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_CONFIG_0 (NETXEN_CRB_NIU + 0x80000) 608aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_CONFIG_1 (NETXEN_CRB_NIU + 0x80004) 609aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_IPG (NETXEN_CRB_NIU + 0x80008) 610aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_STATION_ADDR_0_HI (NETXEN_CRB_NIU + 0x8000c) 611aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_STATION_ADDR_0_1 (NETXEN_CRB_NIU + 0x80010) 612aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_STATION_ADDR_1_LO (NETXEN_CRB_NIU + 0x80014) 613aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_STATUS (NETXEN_CRB_NIU + 0x80018) 614aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_MAX_FRAME_SIZE (NETXEN_CRB_NIU + 0x8001c) 615aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_PAUSE_FRAME_VALUE (NETXEN_CRB_NIU + 0x80020) 616aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_TX_BYTE_CNT (NETXEN_CRB_NIU + 0x80024) 617aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_TX_FRAME_CNT (NETXEN_CRB_NIU + 0x80028) 618aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_RX_BYTE_CNT (NETXEN_CRB_NIU + 0x8002c) 619aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_RX_FRAME_CNT (NETXEN_CRB_NIU + 0x80030) 620aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_AGGR_ERROR_CNT (NETXEN_CRB_NIU + 0x80034) 621aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_MULTICAST_FRAME_CNT (NETXEN_CRB_NIU + 0x80038) 622aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_UNICAST_FRAME_CNT (NETXEN_CRB_NIU + 0x8003c) 623aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_CRC_ERROR_CNT (NETXEN_CRB_NIU + 0x80040) 624aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_OVERSIZE_FRAME_ERR (NETXEN_CRB_NIU + 0x80044) 625aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_UNDERSIZE_FRAME_ERR (NETXEN_CRB_NIU + 0x80048) 626aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_LOCAL_ERROR_CNT (NETXEN_CRB_NIU + 0x8004c) 627aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_REMOTE_ERROR_CNT (NETXEN_CRB_NIU + 0x80050) 628aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_CONTROL_CHAR_CNT (NETXEN_CRB_NIU + 0x80054) 629aa43c215SJeff Kirsher #define NETXEN_NIU_XG1_PAUSE_FRAME_CNT (NETXEN_CRB_NIU + 0x80058) 630aa43c215SJeff Kirsher 631aa43c215SJeff Kirsher /* P3 802.3ap */ 632aa43c215SJeff Kirsher #define NETXEN_NIU_AP_MAC_CONFIG_0(I) (NETXEN_CRB_NIU+0xa0000+(I)*0x10000) 633aa43c215SJeff Kirsher #define NETXEN_NIU_AP_MAC_CONFIG_1(I) (NETXEN_CRB_NIU+0xa0004+(I)*0x10000) 634aa43c215SJeff Kirsher #define NETXEN_NIU_AP_MAC_IPG_IFG(I) (NETXEN_CRB_NIU+0xa0008+(I)*0x10000) 635aa43c215SJeff Kirsher #define NETXEN_NIU_AP_HALF_DUPLEX_CTRL(I) (NETXEN_CRB_NIU+0xa000c+(I)*0x10000) 636aa43c215SJeff Kirsher #define NETXEN_NIU_AP_MAX_FRAME_SIZE(I) (NETXEN_CRB_NIU+0xa0010+(I)*0x10000) 637aa43c215SJeff Kirsher #define NETXEN_NIU_AP_TEST_REG(I) (NETXEN_CRB_NIU+0xa001c+(I)*0x10000) 638aa43c215SJeff Kirsher #define NETXEN_NIU_AP_MII_MGMT_CONFIG(I) (NETXEN_CRB_NIU+0xa0020+(I)*0x10000) 639aa43c215SJeff Kirsher #define NETXEN_NIU_AP_MII_MGMT_COMMAND(I) (NETXEN_CRB_NIU+0xa0024+(I)*0x10000) 640aa43c215SJeff Kirsher #define NETXEN_NIU_AP_MII_MGMT_ADDR(I) (NETXEN_CRB_NIU+0xa0028+(I)*0x10000) 641aa43c215SJeff Kirsher #define NETXEN_NIU_AP_MII_MGMT_CTRL(I) (NETXEN_CRB_NIU+0xa002c+(I)*0x10000) 642aa43c215SJeff Kirsher #define NETXEN_NIU_AP_MII_MGMT_STATUS(I) (NETXEN_CRB_NIU+0xa0030+(I)*0x10000) 643aa43c215SJeff Kirsher #define NETXEN_NIU_AP_MII_MGMT_INDICATE(I) (NETXEN_CRB_NIU+0xa0034+(I)*0x10000) 644aa43c215SJeff Kirsher #define NETXEN_NIU_AP_INTERFACE_CTRL(I) (NETXEN_CRB_NIU+0xa0038+(I)*0x10000) 645aa43c215SJeff Kirsher #define NETXEN_NIU_AP_INTERFACE_STATUS(I) (NETXEN_CRB_NIU+0xa003c+(I)*0x10000) 646aa43c215SJeff Kirsher #define NETXEN_NIU_AP_STATION_ADDR_0(I) (NETXEN_CRB_NIU+0xa0040+(I)*0x10000) 647aa43c215SJeff Kirsher #define NETXEN_NIU_AP_STATION_ADDR_1(I) (NETXEN_CRB_NIU+0xa0044+(I)*0x10000) 648aa43c215SJeff Kirsher 649aa43c215SJeff Kirsher 650aa43c215SJeff Kirsher #define TEST_AGT_CTRL (0x00) 651aa43c215SJeff Kirsher 652aa43c215SJeff Kirsher #define TA_CTL_START 1 653aa43c215SJeff Kirsher #define TA_CTL_ENABLE 2 654aa43c215SJeff Kirsher #define TA_CTL_WRITE 4 655aa43c215SJeff Kirsher #define TA_CTL_BUSY 8 656aa43c215SJeff Kirsher 657aa43c215SJeff Kirsher /* 658aa43c215SJeff Kirsher * Register offsets for MN 659aa43c215SJeff Kirsher */ 660aa43c215SJeff Kirsher #define MIU_TEST_AGT_BASE (0x90) 661aa43c215SJeff Kirsher 662aa43c215SJeff Kirsher #define MIU_TEST_AGT_ADDR_LO (0x04) 663aa43c215SJeff Kirsher #define MIU_TEST_AGT_ADDR_HI (0x08) 664aa43c215SJeff Kirsher #define MIU_TEST_AGT_WRDATA_LO (0x10) 665aa43c215SJeff Kirsher #define MIU_TEST_AGT_WRDATA_HI (0x14) 666aa43c215SJeff Kirsher #define MIU_TEST_AGT_RDDATA_LO (0x18) 667aa43c215SJeff Kirsher #define MIU_TEST_AGT_RDDATA_HI (0x1c) 668aa43c215SJeff Kirsher 669aa43c215SJeff Kirsher #define MIU_TEST_AGT_ADDR_MASK 0xfffffff8 670aa43c215SJeff Kirsher #define MIU_TEST_AGT_UPPER_ADDR(off) (0) 671aa43c215SJeff Kirsher 672aa43c215SJeff Kirsher /* 673aa43c215SJeff Kirsher * Register offsets for MS 674aa43c215SJeff Kirsher */ 675aa43c215SJeff Kirsher #define SIU_TEST_AGT_BASE (0x60) 676aa43c215SJeff Kirsher 677aa43c215SJeff Kirsher #define SIU_TEST_AGT_ADDR_LO (0x04) 678aa43c215SJeff Kirsher #define SIU_TEST_AGT_ADDR_HI (0x18) 679aa43c215SJeff Kirsher #define SIU_TEST_AGT_WRDATA_LO (0x08) 680aa43c215SJeff Kirsher #define SIU_TEST_AGT_WRDATA_HI (0x0c) 681aa43c215SJeff Kirsher #define SIU_TEST_AGT_WRDATA(i) (0x08+(4*(i))) 682aa43c215SJeff Kirsher #define SIU_TEST_AGT_RDDATA_LO (0x10) 683aa43c215SJeff Kirsher #define SIU_TEST_AGT_RDDATA_HI (0x14) 684aa43c215SJeff Kirsher #define SIU_TEST_AGT_RDDATA(i) (0x10+(4*(i))) 685aa43c215SJeff Kirsher 686aa43c215SJeff Kirsher #define SIU_TEST_AGT_ADDR_MASK 0x3ffff8 687aa43c215SJeff Kirsher #define SIU_TEST_AGT_UPPER_ADDR(off) ((off)>>22) 688aa43c215SJeff Kirsher 689aa43c215SJeff Kirsher /* XG Link status */ 690aa43c215SJeff Kirsher #define XG_LINK_UP 0x10 691aa43c215SJeff Kirsher #define XG_LINK_DOWN 0x20 692aa43c215SJeff Kirsher 693aa43c215SJeff Kirsher #define XG_LINK_UP_P3 0x01 694aa43c215SJeff Kirsher #define XG_LINK_DOWN_P3 0x02 695aa43c215SJeff Kirsher #define XG_LINK_STATE_P3_MASK 0xf 696aa43c215SJeff Kirsher #define XG_LINK_STATE_P3(pcifn,val) \ 697aa43c215SJeff Kirsher (((val) >> ((pcifn) * 4)) & XG_LINK_STATE_P3_MASK) 698aa43c215SJeff Kirsher 699aa43c215SJeff Kirsher #define P3_LINK_SPEED_MHZ 100 700aa43c215SJeff Kirsher #define P3_LINK_SPEED_MASK 0xff 701aa43c215SJeff Kirsher #define P3_LINK_SPEED_REG(pcifn) \ 702aa43c215SJeff Kirsher (CRB_PF_LINK_SPEED_1 + (((pcifn) / 4) * 4)) 703aa43c215SJeff Kirsher #define P3_LINK_SPEED_VAL(pcifn, reg) \ 704aa43c215SJeff Kirsher (((reg) >> (8 * ((pcifn) & 0x3))) & P3_LINK_SPEED_MASK) 705aa43c215SJeff Kirsher 706aa43c215SJeff Kirsher #define NETXEN_CAM_RAM_BASE (NETXEN_CRB_CAM + 0x02000) 707aa43c215SJeff Kirsher #define NETXEN_CAM_RAM(reg) (NETXEN_CAM_RAM_BASE + (reg)) 708aa43c215SJeff Kirsher #define NETXEN_FW_VERSION_MAJOR (NETXEN_CAM_RAM(0x150)) 709aa43c215SJeff Kirsher #define NETXEN_FW_VERSION_MINOR (NETXEN_CAM_RAM(0x154)) 710aa43c215SJeff Kirsher #define NETXEN_FW_VERSION_SUB (NETXEN_CAM_RAM(0x158)) 711aa43c215SJeff Kirsher #define NETXEN_ROM_LOCK_ID (NETXEN_CAM_RAM(0x100)) 712aa43c215SJeff Kirsher #define NETXEN_PHY_LOCK_ID (NETXEN_CAM_RAM(0x120)) 713aa43c215SJeff Kirsher #define NETXEN_CRB_WIN_LOCK_ID (NETXEN_CAM_RAM(0x124)) 714aa43c215SJeff Kirsher 715aa43c215SJeff Kirsher #define NIC_CRB_BASE (NETXEN_CAM_RAM(0x200)) 716aa43c215SJeff Kirsher #define NIC_CRB_BASE_2 (NETXEN_CAM_RAM(0x700)) 717aa43c215SJeff Kirsher #define NETXEN_NIC_REG(X) (NIC_CRB_BASE+(X)) 718aa43c215SJeff Kirsher #define NETXEN_NIC_REG_2(X) (NIC_CRB_BASE_2+(X)) 719b37eb210SManish Chopra #define NETXEN_INTR_MODE_REG NETXEN_NIC_REG(0x44) 720b37eb210SManish Chopra #define NETXEN_MSI_MODE 0x1 721b37eb210SManish Chopra #define NETXEN_INTX_MODE 0x2 722aa43c215SJeff Kirsher 723aa43c215SJeff Kirsher #define NX_CDRP_CRB_OFFSET (NETXEN_NIC_REG(0x18)) 724aa43c215SJeff Kirsher #define NX_ARG1_CRB_OFFSET (NETXEN_NIC_REG(0x1c)) 725aa43c215SJeff Kirsher #define NX_ARG2_CRB_OFFSET (NETXEN_NIC_REG(0x20)) 726aa43c215SJeff Kirsher #define NX_ARG3_CRB_OFFSET (NETXEN_NIC_REG(0x24)) 727aa43c215SJeff Kirsher #define NX_SIGN_CRB_OFFSET (NETXEN_NIC_REG(0x28)) 728aa43c215SJeff Kirsher 729aa43c215SJeff Kirsher #define CRB_HOST_DUMMY_BUF_ADDR_HI (NETXEN_NIC_REG(0x3c)) 730aa43c215SJeff Kirsher #define CRB_HOST_DUMMY_BUF_ADDR_LO (NETXEN_NIC_REG(0x40)) 731aa43c215SJeff Kirsher 732aa43c215SJeff Kirsher #define CRB_CMDPEG_STATE (NETXEN_NIC_REG(0x50)) 733aa43c215SJeff Kirsher #define CRB_RCVPEG_STATE (NETXEN_NIC_REG(0x13c)) 734aa43c215SJeff Kirsher 735aa43c215SJeff Kirsher #define CRB_XG_STATE (NETXEN_NIC_REG(0x94)) 736aa43c215SJeff Kirsher #define CRB_XG_STATE_P3 (NETXEN_NIC_REG(0x98)) 737aa43c215SJeff Kirsher #define CRB_PF_LINK_SPEED_1 (NETXEN_NIC_REG(0xe8)) 738aa43c215SJeff Kirsher #define CRB_PF_LINK_SPEED_2 (NETXEN_NIC_REG(0xec)) 739aa43c215SJeff Kirsher 740aa43c215SJeff Kirsher #define CRB_MPORT_MODE (NETXEN_NIC_REG(0xc4)) 741aa43c215SJeff Kirsher #define CRB_DMA_SHIFT (NETXEN_NIC_REG(0xcc)) 742aa43c215SJeff Kirsher #define CRB_INT_VECTOR (NETXEN_NIC_REG(0xd4)) 743aa43c215SJeff Kirsher 744aa43c215SJeff Kirsher #define CRB_CMD_PRODUCER_OFFSET (NETXEN_NIC_REG(0x08)) 745aa43c215SJeff Kirsher #define CRB_CMD_CONSUMER_OFFSET (NETXEN_NIC_REG(0x0c)) 746aa43c215SJeff Kirsher #define CRB_CMD_PRODUCER_OFFSET_1 (NETXEN_NIC_REG(0x1ac)) 747aa43c215SJeff Kirsher #define CRB_CMD_CONSUMER_OFFSET_1 (NETXEN_NIC_REG(0x1b0)) 748aa43c215SJeff Kirsher #define CRB_CMD_PRODUCER_OFFSET_2 (NETXEN_NIC_REG(0x1b8)) 749aa43c215SJeff Kirsher #define CRB_CMD_CONSUMER_OFFSET_2 (NETXEN_NIC_REG(0x1bc)) 750aa43c215SJeff Kirsher #define CRB_CMD_PRODUCER_OFFSET_3 (NETXEN_NIC_REG(0x1d0)) 751aa43c215SJeff Kirsher #define CRB_CMD_CONSUMER_OFFSET_3 (NETXEN_NIC_REG(0x1d4)) 752aa43c215SJeff Kirsher #define CRB_TEMP_STATE (NETXEN_NIC_REG(0x1b4)) 753aa43c215SJeff Kirsher 754aa43c215SJeff Kirsher #define CRB_V2P_0 (NETXEN_NIC_REG(0x290)) 755aa43c215SJeff Kirsher #define CRB_V2P(port) (CRB_V2P_0+((port)*4)) 756aa43c215SJeff Kirsher #define CRB_DRIVER_VERSION (NETXEN_NIC_REG(0x2a0)) 757aa43c215SJeff Kirsher 758aa43c215SJeff Kirsher #define CRB_SW_INT_MASK_0 (NETXEN_NIC_REG(0x1d8)) 759aa43c215SJeff Kirsher #define CRB_SW_INT_MASK_1 (NETXEN_NIC_REG(0x1e0)) 760aa43c215SJeff Kirsher #define CRB_SW_INT_MASK_2 (NETXEN_NIC_REG(0x1e4)) 761aa43c215SJeff Kirsher #define CRB_SW_INT_MASK_3 (NETXEN_NIC_REG(0x1e8)) 762aa43c215SJeff Kirsher 763aa43c215SJeff Kirsher #define CRB_FW_CAPABILITIES_1 (NETXEN_CAM_RAM(0x128)) 76401da0c2bSRajesh Borundia #define CRB_FW_CAPABILITIES_2 (NETXEN_CAM_RAM(0x12c)) 765aa43c215SJeff Kirsher #define CRB_MAC_BLOCK_START (NETXEN_CAM_RAM(0x1c0)) 766aa43c215SJeff Kirsher 767aa43c215SJeff Kirsher /* 768aa43c215SJeff Kirsher * capabilities register, can be used to selectively enable/disable features 769aa43c215SJeff Kirsher * for backward compatibility 770aa43c215SJeff Kirsher */ 771aa43c215SJeff Kirsher #define CRB_NIC_CAPABILITIES_HOST NETXEN_NIC_REG(0x1a8) 772aa43c215SJeff Kirsher #define CRB_NIC_MSI_MODE_HOST NETXEN_NIC_REG(0x270) 773aa43c215SJeff Kirsher 774aa43c215SJeff Kirsher #define INTR_SCHEME_PERPORT 0x1 775aa43c215SJeff Kirsher #define MSI_MODE_MULTIFUNC 0x1 776aa43c215SJeff Kirsher 777aa43c215SJeff Kirsher /* used for ethtool tests */ 778aa43c215SJeff Kirsher #define CRB_SCRATCHPAD_TEST NETXEN_NIC_REG(0x280) 779aa43c215SJeff Kirsher 780aa43c215SJeff Kirsher /* 781aa43c215SJeff Kirsher * CrbPortPhanCntrHi/Lo is used to pass the address of HostPhantomIndex address 782aa43c215SJeff Kirsher * which can be read by the Phantom host to get producer/consumer indexes from 783aa43c215SJeff Kirsher * Phantom/Casper. If it is not HOST_SHARED_MEMORY, then the following 784aa43c215SJeff Kirsher * registers will be used for the addresses of the ring's shared memory 785aa43c215SJeff Kirsher * on the Phantom. 786aa43c215SJeff Kirsher */ 787aa43c215SJeff Kirsher 788aa43c215SJeff Kirsher #define nx_get_temp_val(x) ((x) >> 16) 789aa43c215SJeff Kirsher #define nx_get_temp_state(x) ((x) & 0xffff) 790aa43c215SJeff Kirsher #define nx_encode_temp(val, state) (((val) << 16) | (state)) 791aa43c215SJeff Kirsher 792aa43c215SJeff Kirsher /* 793aa43c215SJeff Kirsher * Temperature control. 794aa43c215SJeff Kirsher */ 795aa43c215SJeff Kirsher enum { 796aa43c215SJeff Kirsher NX_TEMP_NORMAL = 0x1, /* Normal operating range */ 797aa43c215SJeff Kirsher NX_TEMP_WARN, /* Sound alert, temperature getting high */ 798aa43c215SJeff Kirsher NX_TEMP_PANIC /* Fatal error, hardware has shut down. */ 799aa43c215SJeff Kirsher }; 800aa43c215SJeff Kirsher 801aa43c215SJeff Kirsher /* Lock IDs for PHY lock */ 802aa43c215SJeff Kirsher #define PHY_LOCK_DRIVER 0x44524956 803aa43c215SJeff Kirsher 804aa43c215SJeff Kirsher /* Used for PS PCI Memory access */ 805aa43c215SJeff Kirsher #define PCIX_PS_OP_ADDR_LO (0x10000) 806aa43c215SJeff Kirsher /* via CRB (PS side only) */ 807aa43c215SJeff Kirsher #define PCIX_PS_OP_ADDR_HI (0x10004) 808aa43c215SJeff Kirsher 809aa43c215SJeff Kirsher #define PCIX_INT_VECTOR (0x10100) 810aa43c215SJeff Kirsher #define PCIX_INT_MASK (0x10104) 811aa43c215SJeff Kirsher 812aa43c215SJeff Kirsher #define PCIX_CRB_WINDOW (0x10210) 813aa43c215SJeff Kirsher #define PCIX_CRB_WINDOW_F0 (0x10210) 814aa43c215SJeff Kirsher #define PCIX_CRB_WINDOW_F1 (0x10230) 815aa43c215SJeff Kirsher #define PCIX_CRB_WINDOW_F2 (0x10250) 816aa43c215SJeff Kirsher #define PCIX_CRB_WINDOW_F3 (0x10270) 817aa43c215SJeff Kirsher #define PCIX_CRB_WINDOW_F4 (0x102ac) 818aa43c215SJeff Kirsher #define PCIX_CRB_WINDOW_F5 (0x102bc) 819aa43c215SJeff Kirsher #define PCIX_CRB_WINDOW_F6 (0x102cc) 820aa43c215SJeff Kirsher #define PCIX_CRB_WINDOW_F7 (0x102dc) 821aa43c215SJeff Kirsher #define PCIE_CRB_WINDOW_REG(func) (((func) < 4) ? \ 822aa43c215SJeff Kirsher (PCIX_CRB_WINDOW_F0 + (0x20 * (func))) :\ 823aa43c215SJeff Kirsher (PCIX_CRB_WINDOW_F4 + (0x10 * ((func)-4)))) 824aa43c215SJeff Kirsher 825aa43c215SJeff Kirsher #define PCIX_MN_WINDOW (0x10200) 826aa43c215SJeff Kirsher #define PCIX_MN_WINDOW_F0 (0x10200) 827aa43c215SJeff Kirsher #define PCIX_MN_WINDOW_F1 (0x10220) 828aa43c215SJeff Kirsher #define PCIX_MN_WINDOW_F2 (0x10240) 829aa43c215SJeff Kirsher #define PCIX_MN_WINDOW_F3 (0x10260) 830aa43c215SJeff Kirsher #define PCIX_MN_WINDOW_F4 (0x102a0) 831aa43c215SJeff Kirsher #define PCIX_MN_WINDOW_F5 (0x102b0) 832aa43c215SJeff Kirsher #define PCIX_MN_WINDOW_F6 (0x102c0) 833aa43c215SJeff Kirsher #define PCIX_MN_WINDOW_F7 (0x102d0) 834aa43c215SJeff Kirsher #define PCIE_MN_WINDOW_REG(func) (((func) < 4) ? \ 835aa43c215SJeff Kirsher (PCIX_MN_WINDOW_F0 + (0x20 * (func))) :\ 836aa43c215SJeff Kirsher (PCIX_MN_WINDOW_F4 + (0x10 * ((func)-4)))) 837aa43c215SJeff Kirsher 838aa43c215SJeff Kirsher #define PCIX_SN_WINDOW (0x10208) 839aa43c215SJeff Kirsher #define PCIX_SN_WINDOW_F0 (0x10208) 840aa43c215SJeff Kirsher #define PCIX_SN_WINDOW_F1 (0x10228) 841aa43c215SJeff Kirsher #define PCIX_SN_WINDOW_F2 (0x10248) 842aa43c215SJeff Kirsher #define PCIX_SN_WINDOW_F3 (0x10268) 843aa43c215SJeff Kirsher #define PCIX_SN_WINDOW_F4 (0x102a8) 844aa43c215SJeff Kirsher #define PCIX_SN_WINDOW_F5 (0x102b8) 845aa43c215SJeff Kirsher #define PCIX_SN_WINDOW_F6 (0x102c8) 846aa43c215SJeff Kirsher #define PCIX_SN_WINDOW_F7 (0x102d8) 847aa43c215SJeff Kirsher #define PCIE_SN_WINDOW_REG(func) (((func) < 4) ? \ 848aa43c215SJeff Kirsher (PCIX_SN_WINDOW_F0 + (0x20 * (func))) :\ 849aa43c215SJeff Kirsher (PCIX_SN_WINDOW_F4 + (0x10 * ((func)-4)))) 850aa43c215SJeff Kirsher 851aa43c215SJeff Kirsher #define PCIX_OCM_WINDOW (0x10800) 852aa43c215SJeff Kirsher #define PCIX_OCM_WINDOW_REG(func) (PCIX_OCM_WINDOW + 0x20 * (func)) 853aa43c215SJeff Kirsher 854aa43c215SJeff Kirsher #define PCIX_TARGET_STATUS (0x10118) 855aa43c215SJeff Kirsher #define PCIX_TARGET_STATUS_F1 (0x10160) 856aa43c215SJeff Kirsher #define PCIX_TARGET_STATUS_F2 (0x10164) 857aa43c215SJeff Kirsher #define PCIX_TARGET_STATUS_F3 (0x10168) 858aa43c215SJeff Kirsher #define PCIX_TARGET_STATUS_F4 (0x10360) 859aa43c215SJeff Kirsher #define PCIX_TARGET_STATUS_F5 (0x10364) 860aa43c215SJeff Kirsher #define PCIX_TARGET_STATUS_F6 (0x10368) 861aa43c215SJeff Kirsher #define PCIX_TARGET_STATUS_F7 (0x1036c) 862aa43c215SJeff Kirsher 863aa43c215SJeff Kirsher #define PCIX_TARGET_MASK (0x10128) 864aa43c215SJeff Kirsher #define PCIX_TARGET_MASK_F1 (0x10170) 865aa43c215SJeff Kirsher #define PCIX_TARGET_MASK_F2 (0x10174) 866aa43c215SJeff Kirsher #define PCIX_TARGET_MASK_F3 (0x10178) 867aa43c215SJeff Kirsher #define PCIX_TARGET_MASK_F4 (0x10370) 868aa43c215SJeff Kirsher #define PCIX_TARGET_MASK_F5 (0x10374) 869aa43c215SJeff Kirsher #define PCIX_TARGET_MASK_F6 (0x10378) 870aa43c215SJeff Kirsher #define PCIX_TARGET_MASK_F7 (0x1037c) 871aa43c215SJeff Kirsher 872aa43c215SJeff Kirsher #define PCIX_MSI_F0 (0x13000) 873aa43c215SJeff Kirsher #define PCIX_MSI_F1 (0x13004) 874aa43c215SJeff Kirsher #define PCIX_MSI_F2 (0x13008) 875aa43c215SJeff Kirsher #define PCIX_MSI_F3 (0x1300c) 876aa43c215SJeff Kirsher #define PCIX_MSI_F4 (0x13010) 877aa43c215SJeff Kirsher #define PCIX_MSI_F5 (0x13014) 878aa43c215SJeff Kirsher #define PCIX_MSI_F6 (0x13018) 879aa43c215SJeff Kirsher #define PCIX_MSI_F7 (0x1301c) 880aa43c215SJeff Kirsher #define PCIX_MSI_F(i) (0x13000+((i)*4)) 881aa43c215SJeff Kirsher 882aa43c215SJeff Kirsher #define PCIX_PS_MEM_SPACE (0x90000) 883aa43c215SJeff Kirsher 884aa43c215SJeff Kirsher #define NETXEN_PCIX_PH_REG(reg) (NETXEN_CRB_PCIE + (reg)) 885aa43c215SJeff Kirsher #define NETXEN_PCIX_PS_REG(reg) (NETXEN_CRB_PCIX_MD + (reg)) 886aa43c215SJeff Kirsher 887aa43c215SJeff Kirsher #define NETXEN_PCIE_REG(reg) (NETXEN_CRB_PCIE + (reg)) 888aa43c215SJeff Kirsher 889aa43c215SJeff Kirsher #define PCIE_MAX_DMA_XFER_SIZE (0x1404c) 890aa43c215SJeff Kirsher 891aa43c215SJeff Kirsher #define PCIE_DCR 0x00d8 892aa43c215SJeff Kirsher 893aa43c215SJeff Kirsher #define PCIE_SEM0_LOCK (0x1c000) 894aa43c215SJeff Kirsher #define PCIE_SEM0_UNLOCK (0x1c004) 895aa43c215SJeff Kirsher #define PCIE_SEM1_LOCK (0x1c008) 896aa43c215SJeff Kirsher #define PCIE_SEM1_UNLOCK (0x1c00c) 897aa43c215SJeff Kirsher #define PCIE_SEM2_LOCK (0x1c010) /* Flash lock */ 898aa43c215SJeff Kirsher #define PCIE_SEM2_UNLOCK (0x1c014) /* Flash unlock */ 899aa43c215SJeff Kirsher #define PCIE_SEM3_LOCK (0x1c018) /* Phy lock */ 900aa43c215SJeff Kirsher #define PCIE_SEM3_UNLOCK (0x1c01c) /* Phy unlock */ 901aa43c215SJeff Kirsher #define PCIE_SEM4_LOCK (0x1c020) 902aa43c215SJeff Kirsher #define PCIE_SEM4_UNLOCK (0x1c024) 903aa43c215SJeff Kirsher #define PCIE_SEM5_LOCK (0x1c028) /* API lock */ 904aa43c215SJeff Kirsher #define PCIE_SEM5_UNLOCK (0x1c02c) /* API unlock */ 905aa43c215SJeff Kirsher #define PCIE_SEM6_LOCK (0x1c030) /* sw lock */ 906aa43c215SJeff Kirsher #define PCIE_SEM6_UNLOCK (0x1c034) /* sw unlock */ 907aa43c215SJeff Kirsher #define PCIE_SEM7_LOCK (0x1c038) /* crb win lock */ 908aa43c215SJeff Kirsher #define PCIE_SEM7_UNLOCK (0x1c03c) /* crbwin unlock*/ 909aa43c215SJeff Kirsher #define PCIE_SEM_LOCK(N) (PCIE_SEM0_LOCK + 8*(N)) 910aa43c215SJeff Kirsher #define PCIE_SEM_UNLOCK(N) (PCIE_SEM0_UNLOCK + 8*(N)) 911aa43c215SJeff Kirsher 912aa43c215SJeff Kirsher #define PCIE_SETUP_FUNCTION (0x12040) 913aa43c215SJeff Kirsher #define PCIE_SETUP_FUNCTION2 (0x12048) 914aa43c215SJeff Kirsher #define PCIE_MISCCFG_RC (0x1206c) 915aa43c215SJeff Kirsher #define PCIE_TGT_SPLIT_CHICKEN (0x12080) 916aa43c215SJeff Kirsher #define PCIE_CHICKEN3 (0x120c8) 917aa43c215SJeff Kirsher 918aa43c215SJeff Kirsher #define ISR_INT_STATE_REG (NETXEN_PCIX_PS_REG(PCIE_MISCCFG_RC)) 919aa43c215SJeff Kirsher #define PCIE_MAX_MASTER_SPLIT (0x14048) 920aa43c215SJeff Kirsher 921aa43c215SJeff Kirsher #define NETXEN_PORT_MODE_NONE 0 922aa43c215SJeff Kirsher #define NETXEN_PORT_MODE_XG 1 923aa43c215SJeff Kirsher #define NETXEN_PORT_MODE_GB 2 924aa43c215SJeff Kirsher #define NETXEN_PORT_MODE_802_3_AP 3 925aa43c215SJeff Kirsher #define NETXEN_PORT_MODE_AUTO_NEG 4 926aa43c215SJeff Kirsher #define NETXEN_PORT_MODE_AUTO_NEG_1G 5 927aa43c215SJeff Kirsher #define NETXEN_PORT_MODE_AUTO_NEG_XG 6 928aa43c215SJeff Kirsher #define NETXEN_PORT_MODE_ADDR (NETXEN_CAM_RAM(0x24)) 929aa43c215SJeff Kirsher #define NETXEN_WOL_PORT_MODE (NETXEN_CAM_RAM(0x198)) 930aa43c215SJeff Kirsher 931aa43c215SJeff Kirsher #define NETXEN_WOL_CONFIG_NV (NETXEN_CAM_RAM(0x184)) 932aa43c215SJeff Kirsher #define NETXEN_WOL_CONFIG (NETXEN_CAM_RAM(0x188)) 933aa43c215SJeff Kirsher 934aa43c215SJeff Kirsher #define NX_PEG_TUNE_MN_PRESENT 0x1 935aa43c215SJeff Kirsher #define NX_PEG_TUNE_CAPABILITY (NETXEN_CAM_RAM(0x02c)) 936aa43c215SJeff Kirsher 937aa43c215SJeff Kirsher #define NETXEN_DMA_WATCHDOG_CTRL (NETXEN_CAM_RAM(0x14)) 938aa43c215SJeff Kirsher #define NETXEN_PEG_ALIVE_COUNTER (NETXEN_CAM_RAM(0xb0)) 939aa43c215SJeff Kirsher #define NETXEN_PEG_HALT_STATUS1 (NETXEN_CAM_RAM(0xa8)) 940aa43c215SJeff Kirsher #define NETXEN_PEG_HALT_STATUS2 (NETXEN_CAM_RAM(0xac)) 941aa43c215SJeff Kirsher #define NX_CRB_DEV_REF_COUNT (NETXEN_CAM_RAM(0x138)) 942aa43c215SJeff Kirsher #define NX_CRB_DEV_STATE (NETXEN_CAM_RAM(0x140)) 9435e7856b3SShahed Shaikh #define NETXEN_ULA_KEY (NETXEN_CAM_RAM(0x178)) 944aa43c215SJeff Kirsher 945d612698bSSucheta Chakraborty /* MiniDIMM related macros */ 946d612698bSSucheta Chakraborty #define NETXEN_DIMM_CAPABILITY (NETXEN_CAM_RAM(0x258)) 947d612698bSSucheta Chakraborty #define NETXEN_DIMM_PRESENT 0x1 948d612698bSSucheta Chakraborty #define NETXEN_DIMM_MEMTYPE_DDR2_SDRAM 0x2 949d612698bSSucheta Chakraborty #define NETXEN_DIMM_SIZE 0x4 950d612698bSSucheta Chakraborty #define NETXEN_DIMM_MEMTYPE(VAL) ((VAL >> 3) & 0xf) 951d612698bSSucheta Chakraborty #define NETXEN_DIMM_NUMROWS(VAL) ((VAL >> 7) & 0xf) 952d612698bSSucheta Chakraborty #define NETXEN_DIMM_NUMCOLS(VAL) ((VAL >> 11) & 0xf) 953d612698bSSucheta Chakraborty #define NETXEN_DIMM_NUMRANKS(VAL) ((VAL >> 15) & 0x3) 954d612698bSSucheta Chakraborty #define NETXEN_DIMM_DATAWIDTH(VAL) ((VAL >> 18) & 0x3) 955d612698bSSucheta Chakraborty #define NETXEN_DIMM_NUMBANKS(VAL) ((VAL >> 21) & 0xf) 956d612698bSSucheta Chakraborty #define NETXEN_DIMM_TYPE(VAL) ((VAL >> 25) & 0x3f) 957d612698bSSucheta Chakraborty #define NETXEN_DIMM_VALID_FLAG 0x80000000 958d612698bSSucheta Chakraborty 959d612698bSSucheta Chakraborty #define NETXEN_DIMM_MEM_DDR2_SDRAM 0x8 960d612698bSSucheta Chakraborty 961d612698bSSucheta Chakraborty #define NETXEN_DIMM_STD_MEM_SIZE 512 962d612698bSSucheta Chakraborty 963d612698bSSucheta Chakraborty #define NETXEN_DIMM_TYPE_RDIMM 0x1 964d612698bSSucheta Chakraborty #define NETXEN_DIMM_TYPE_UDIMM 0x2 965d612698bSSucheta Chakraborty #define NETXEN_DIMM_TYPE_SO_DIMM 0x4 966d612698bSSucheta Chakraborty #define NETXEN_DIMM_TYPE_Micro_DIMM 0x8 967d612698bSSucheta Chakraborty #define NETXEN_DIMM_TYPE_Mini_RDIMM 0x10 968d612698bSSucheta Chakraborty #define NETXEN_DIMM_TYPE_Mini_UDIMM 0x20 969d612698bSSucheta Chakraborty 970aa43c215SJeff Kirsher /* Device State */ 971aa43c215SJeff Kirsher #define NX_DEV_COLD 1 972aa43c215SJeff Kirsher #define NX_DEV_INITALIZING 2 973aa43c215SJeff Kirsher #define NX_DEV_READY 3 974aa43c215SJeff Kirsher #define NX_DEV_NEED_RESET 4 975aa43c215SJeff Kirsher #define NX_DEV_NEED_QUISCENT 5 976aa43c215SJeff Kirsher #define NX_DEV_NEED_AER 6 977aa43c215SJeff Kirsher #define NX_DEV_FAILED 7 978aa43c215SJeff Kirsher 979aa43c215SJeff Kirsher #define NX_RCODE_DRIVER_INFO 0x20000000 980aa43c215SJeff Kirsher #define NX_RCODE_DRIVER_CAN_RELOAD 0x40000000 981aa43c215SJeff Kirsher #define NX_RCODE_FATAL_ERROR 0x80000000 982aa43c215SJeff Kirsher #define NX_FWERROR_PEGNUM(code) ((code) & 0xff) 983aa43c215SJeff Kirsher #define NX_FWERROR_CODE(code) ((code >> 8) & 0xfffff) 9845471aed0SSritej Velaga #define NX_FWERROR_PEGSTAT1(code) ((code >> 8) & 0x1fffff) 985aa43c215SJeff Kirsher 986aa43c215SJeff Kirsher #define FW_POLL_DELAY (2 * HZ) 987aa43c215SJeff Kirsher #define FW_FAIL_THRESH 3 988aa43c215SJeff Kirsher #define FW_POLL_THRESH 10 989aa43c215SJeff Kirsher 990aa43c215SJeff Kirsher #define ISR_MSI_INT_TRIGGER(FUNC) (NETXEN_PCIX_PS_REG(PCIX_MSI_F(FUNC))) 991aa43c215SJeff Kirsher #define ISR_LEGACY_INT_TRIGGERED(VAL) (((VAL) & 0x300) == 0x200) 992aa43c215SJeff Kirsher 993aa43c215SJeff Kirsher /* 994aa43c215SJeff Kirsher * PCI Interrupt Vector Values. 995aa43c215SJeff Kirsher */ 996aa43c215SJeff Kirsher #define PCIX_INT_VECTOR_BIT_F0 0x0080 997aa43c215SJeff Kirsher #define PCIX_INT_VECTOR_BIT_F1 0x0100 998aa43c215SJeff Kirsher #define PCIX_INT_VECTOR_BIT_F2 0x0200 999aa43c215SJeff Kirsher #define PCIX_INT_VECTOR_BIT_F3 0x0400 1000aa43c215SJeff Kirsher #define PCIX_INT_VECTOR_BIT_F4 0x0800 1001aa43c215SJeff Kirsher #define PCIX_INT_VECTOR_BIT_F5 0x1000 1002aa43c215SJeff Kirsher #define PCIX_INT_VECTOR_BIT_F6 0x2000 1003aa43c215SJeff Kirsher #define PCIX_INT_VECTOR_BIT_F7 0x4000 1004aa43c215SJeff Kirsher 1005aa43c215SJeff Kirsher struct netxen_legacy_intr_set { 1006aa43c215SJeff Kirsher uint32_t int_vec_bit; 1007aa43c215SJeff Kirsher uint32_t tgt_status_reg; 1008aa43c215SJeff Kirsher uint32_t tgt_mask_reg; 1009aa43c215SJeff Kirsher uint32_t pci_int_reg; 1010aa43c215SJeff Kirsher }; 1011aa43c215SJeff Kirsher 1012aa43c215SJeff Kirsher #define NX_LEGACY_INTR_CONFIG \ 1013aa43c215SJeff Kirsher { \ 1014aa43c215SJeff Kirsher { \ 1015aa43c215SJeff Kirsher .int_vec_bit = PCIX_INT_VECTOR_BIT_F0, \ 1016aa43c215SJeff Kirsher .tgt_status_reg = ISR_INT_TARGET_STATUS, \ 1017aa43c215SJeff Kirsher .tgt_mask_reg = ISR_INT_TARGET_MASK, \ 1018aa43c215SJeff Kirsher .pci_int_reg = ISR_MSI_INT_TRIGGER(0) }, \ 1019aa43c215SJeff Kirsher \ 1020aa43c215SJeff Kirsher { \ 1021aa43c215SJeff Kirsher .int_vec_bit = PCIX_INT_VECTOR_BIT_F1, \ 1022aa43c215SJeff Kirsher .tgt_status_reg = ISR_INT_TARGET_STATUS_F1, \ 1023aa43c215SJeff Kirsher .tgt_mask_reg = ISR_INT_TARGET_MASK_F1, \ 1024aa43c215SJeff Kirsher .pci_int_reg = ISR_MSI_INT_TRIGGER(1) }, \ 1025aa43c215SJeff Kirsher \ 1026aa43c215SJeff Kirsher { \ 1027aa43c215SJeff Kirsher .int_vec_bit = PCIX_INT_VECTOR_BIT_F2, \ 1028aa43c215SJeff Kirsher .tgt_status_reg = ISR_INT_TARGET_STATUS_F2, \ 1029aa43c215SJeff Kirsher .tgt_mask_reg = ISR_INT_TARGET_MASK_F2, \ 1030aa43c215SJeff Kirsher .pci_int_reg = ISR_MSI_INT_TRIGGER(2) }, \ 1031aa43c215SJeff Kirsher \ 1032aa43c215SJeff Kirsher { \ 1033aa43c215SJeff Kirsher .int_vec_bit = PCIX_INT_VECTOR_BIT_F3, \ 1034aa43c215SJeff Kirsher .tgt_status_reg = ISR_INT_TARGET_STATUS_F3, \ 1035aa43c215SJeff Kirsher .tgt_mask_reg = ISR_INT_TARGET_MASK_F3, \ 1036aa43c215SJeff Kirsher .pci_int_reg = ISR_MSI_INT_TRIGGER(3) }, \ 1037aa43c215SJeff Kirsher \ 1038aa43c215SJeff Kirsher { \ 1039aa43c215SJeff Kirsher .int_vec_bit = PCIX_INT_VECTOR_BIT_F4, \ 1040aa43c215SJeff Kirsher .tgt_status_reg = ISR_INT_TARGET_STATUS_F4, \ 1041aa43c215SJeff Kirsher .tgt_mask_reg = ISR_INT_TARGET_MASK_F4, \ 1042aa43c215SJeff Kirsher .pci_int_reg = ISR_MSI_INT_TRIGGER(4) }, \ 1043aa43c215SJeff Kirsher \ 1044aa43c215SJeff Kirsher { \ 1045aa43c215SJeff Kirsher .int_vec_bit = PCIX_INT_VECTOR_BIT_F5, \ 1046aa43c215SJeff Kirsher .tgt_status_reg = ISR_INT_TARGET_STATUS_F5, \ 1047aa43c215SJeff Kirsher .tgt_mask_reg = ISR_INT_TARGET_MASK_F5, \ 1048aa43c215SJeff Kirsher .pci_int_reg = ISR_MSI_INT_TRIGGER(5) }, \ 1049aa43c215SJeff Kirsher \ 1050aa43c215SJeff Kirsher { \ 1051aa43c215SJeff Kirsher .int_vec_bit = PCIX_INT_VECTOR_BIT_F6, \ 1052aa43c215SJeff Kirsher .tgt_status_reg = ISR_INT_TARGET_STATUS_F6, \ 1053aa43c215SJeff Kirsher .tgt_mask_reg = ISR_INT_TARGET_MASK_F6, \ 1054aa43c215SJeff Kirsher .pci_int_reg = ISR_MSI_INT_TRIGGER(6) }, \ 1055aa43c215SJeff Kirsher \ 1056aa43c215SJeff Kirsher { \ 1057aa43c215SJeff Kirsher .int_vec_bit = PCIX_INT_VECTOR_BIT_F7, \ 1058aa43c215SJeff Kirsher .tgt_status_reg = ISR_INT_TARGET_STATUS_F7, \ 1059aa43c215SJeff Kirsher .tgt_mask_reg = ISR_INT_TARGET_MASK_F7, \ 1060aa43c215SJeff Kirsher .pci_int_reg = ISR_MSI_INT_TRIGGER(7) }, \ 1061aa43c215SJeff Kirsher } 1062aa43c215SJeff Kirsher 1063aa43c215SJeff Kirsher #endif /* __NETXEN_NIC_HDR_H_ */ 1064