Skip to content
Snippets Groups Projects
netxen_nic_hdr.h 40.3 KiB
Newer Older
 * Copyright (C) 2003 - 2009 NetXen, Inc.
 * Copyright (C) 2009 - QLogic Corporation.
 * All rights reserved.
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 * MA  02111-1307, USA.
 * The full GNU General Public License is included in this distribution
 * in the file called "COPYING".
 */

#ifndef __NETXEN_NIC_HDR_H_
#define __NETXEN_NIC_HDR_H_

#include <linux/kernel.h>
#include <linux/types.h>

/*
 * The basic unit of access when reading/writing control registers.
 */

typedef __le32 netxen_crbword_t;	/* single word in CRB space */

enum {
	NETXEN_HW_H0_CH_HUB_ADR = 0x05,
	NETXEN_HW_H1_CH_HUB_ADR = 0x0E,
	NETXEN_HW_H2_CH_HUB_ADR = 0x03,
	NETXEN_HW_H3_CH_HUB_ADR = 0x01,
	NETXEN_HW_H4_CH_HUB_ADR = 0x06,
	NETXEN_HW_H5_CH_HUB_ADR = 0x07,
	NETXEN_HW_H6_CH_HUB_ADR = 0x08
};

/*  Hub 0 */
enum {
	NETXEN_HW_MN_CRB_AGT_ADR = 0x15,
	NETXEN_HW_MS_CRB_AGT_ADR = 0x25
};

/*  Hub 1 */
enum {
	NETXEN_HW_PS_CRB_AGT_ADR = 0x73,
	NETXEN_HW_SS_CRB_AGT_ADR = 0x20,
	NETXEN_HW_RPMX3_CRB_AGT_ADR = 0x0b,
	NETXEN_HW_QMS_CRB_AGT_ADR = 0x00,
	NETXEN_HW_SQGS0_CRB_AGT_ADR = 0x01,
	NETXEN_HW_SQGS1_CRB_AGT_ADR = 0x02,
	NETXEN_HW_SQGS2_CRB_AGT_ADR = 0x03,
	NETXEN_HW_SQGS3_CRB_AGT_ADR = 0x04,
	NETXEN_HW_C2C0_CRB_AGT_ADR = 0x58,
	NETXEN_HW_C2C1_CRB_AGT_ADR = 0x59,
	NETXEN_HW_C2C2_CRB_AGT_ADR = 0x5a,
	NETXEN_HW_RPMX2_CRB_AGT_ADR = 0x0a,
	NETXEN_HW_RPMX4_CRB_AGT_ADR = 0x0c,
	NETXEN_HW_RPMX7_CRB_AGT_ADR = 0x0f,
	NETXEN_HW_RPMX9_CRB_AGT_ADR = 0x12,
	NETXEN_HW_SMB_CRB_AGT_ADR = 0x18
};

/*  Hub 2 */
enum {
	NETXEN_HW_NIU_CRB_AGT_ADR = 0x31,
	NETXEN_HW_I2C0_CRB_AGT_ADR = 0x19,
	NETXEN_HW_I2C1_CRB_AGT_ADR = 0x29,

	NETXEN_HW_SN_CRB_AGT_ADR = 0x10,
	NETXEN_HW_I2Q_CRB_AGT_ADR = 0x20,
	NETXEN_HW_LPC_CRB_AGT_ADR = 0x22,
	NETXEN_HW_ROMUSB_CRB_AGT_ADR = 0x21,
	NETXEN_HW_QM_CRB_AGT_ADR = 0x66,
	NETXEN_HW_SQG0_CRB_AGT_ADR = 0x60,
	NETXEN_HW_SQG1_CRB_AGT_ADR = 0x61,
	NETXEN_HW_SQG2_CRB_AGT_ADR = 0x62,
	NETXEN_HW_SQG3_CRB_AGT_ADR = 0x63,
	NETXEN_HW_RPMX1_CRB_AGT_ADR = 0x09,
	NETXEN_HW_RPMX5_CRB_AGT_ADR = 0x0d,
	NETXEN_HW_RPMX6_CRB_AGT_ADR = 0x0e,
	NETXEN_HW_RPMX8_CRB_AGT_ADR = 0x11
};

/*  Hub 3 */
enum {
	NETXEN_HW_PH_CRB_AGT_ADR = 0x1A,
	NETXEN_HW_SRE_CRB_AGT_ADR = 0x50,
	NETXEN_HW_EG_CRB_AGT_ADR = 0x51,
	NETXEN_HW_RPMX0_CRB_AGT_ADR = 0x08
};

/*  Hub 4 */
enum {
	NETXEN_HW_PEGN0_CRB_AGT_ADR = 0x40,
	NETXEN_HW_PEGN1_CRB_AGT_ADR,
	NETXEN_HW_PEGN2_CRB_AGT_ADR,
	NETXEN_HW_PEGN3_CRB_AGT_ADR,
	NETXEN_HW_PEGNI_CRB_AGT_ADR,
	NETXEN_HW_PEGND_CRB_AGT_ADR,
	NETXEN_HW_PEGNC_CRB_AGT_ADR,
	NETXEN_HW_PEGR0_CRB_AGT_ADR,
	NETXEN_HW_PEGR1_CRB_AGT_ADR,
	NETXEN_HW_PEGR2_CRB_AGT_ADR,
	NETXEN_HW_PEGR3_CRB_AGT_ADR,
	NETXEN_HW_PEGN4_CRB_AGT_ADR
};

/*  Hub 5 */
enum {
	NETXEN_HW_PEGS0_CRB_AGT_ADR = 0x40,
	NETXEN_HW_PEGS1_CRB_AGT_ADR,
	NETXEN_HW_PEGS2_CRB_AGT_ADR,
	NETXEN_HW_PEGS3_CRB_AGT_ADR,
	NETXEN_HW_PEGSI_CRB_AGT_ADR,
	NETXEN_HW_PEGSD_CRB_AGT_ADR,
	NETXEN_HW_PEGSC_CRB_AGT_ADR
};

/*  Hub 6 */
enum {
	NETXEN_HW_CAS0_CRB_AGT_ADR = 0x46,
	NETXEN_HW_CAS1_CRB_AGT_ADR = 0x47,
	NETXEN_HW_CAS2_CRB_AGT_ADR = 0x48,
	NETXEN_HW_CAS3_CRB_AGT_ADR = 0x49,
	NETXEN_HW_NCM_CRB_AGT_ADR = 0x16,
	NETXEN_HW_TMR_CRB_AGT_ADR = 0x17,
	NETXEN_HW_XDMA_CRB_AGT_ADR = 0x05,
	NETXEN_HW_OCM0_CRB_AGT_ADR = 0x06,
	NETXEN_HW_OCM1_CRB_AGT_ADR = 0x07
};

/*  Floaters - non existent modules */
#define NETXEN_HW_EFC_RPMX0_CRB_AGT_ADR	0x67

/*  This field defines PCI/X adr [25:20] of agents on the CRB */
enum {
	NETXEN_HW_PX_MAP_CRB_PH = 0,
	NETXEN_HW_PX_MAP_CRB_PS,
	NETXEN_HW_PX_MAP_CRB_MN,
	NETXEN_HW_PX_MAP_CRB_MS,
	NETXEN_HW_PX_MAP_CRB_PGR1,
	NETXEN_HW_PX_MAP_CRB_SRE,
	NETXEN_HW_PX_MAP_CRB_NIU,
	NETXEN_HW_PX_MAP_CRB_QMN,
	NETXEN_HW_PX_MAP_CRB_SQN0,
	NETXEN_HW_PX_MAP_CRB_SQN1,
	NETXEN_HW_PX_MAP_CRB_SQN2,
	NETXEN_HW_PX_MAP_CRB_SQN3,
	NETXEN_HW_PX_MAP_CRB_QMS,
	NETXEN_HW_PX_MAP_CRB_SQS0,
	NETXEN_HW_PX_MAP_CRB_SQS1,
	NETXEN_HW_PX_MAP_CRB_SQS2,
	NETXEN_HW_PX_MAP_CRB_SQS3,
	NETXEN_HW_PX_MAP_CRB_PGN0,
	NETXEN_HW_PX_MAP_CRB_PGN1,
	NETXEN_HW_PX_MAP_CRB_PGN2,
	NETXEN_HW_PX_MAP_CRB_PGN3,
	NETXEN_HW_PX_MAP_CRB_PGND,
	NETXEN_HW_PX_MAP_CRB_PGNI,
	NETXEN_HW_PX_MAP_CRB_PGS0,
	NETXEN_HW_PX_MAP_CRB_PGS1,
	NETXEN_HW_PX_MAP_CRB_PGS2,
	NETXEN_HW_PX_MAP_CRB_PGS3,
	NETXEN_HW_PX_MAP_CRB_PGSD,
	NETXEN_HW_PX_MAP_CRB_PGSI,
	NETXEN_HW_PX_MAP_CRB_SN,
	NETXEN_HW_PX_MAP_CRB_PGR2,
	NETXEN_HW_PX_MAP_CRB_EG,
	NETXEN_HW_PX_MAP_CRB_PH2,
	NETXEN_HW_PX_MAP_CRB_PS2,
	NETXEN_HW_PX_MAP_CRB_CAM,
	NETXEN_HW_PX_MAP_CRB_CAS0,
	NETXEN_HW_PX_MAP_CRB_CAS1,
	NETXEN_HW_PX_MAP_CRB_CAS2,
	NETXEN_HW_PX_MAP_CRB_C2C0,
	NETXEN_HW_PX_MAP_CRB_C2C1,
	NETXEN_HW_PX_MAP_CRB_TIMR,
	NETXEN_HW_PX_MAP_CRB_PGR3,
	NETXEN_HW_PX_MAP_CRB_RPMX1,
	NETXEN_HW_PX_MAP_CRB_RPMX2,
	NETXEN_HW_PX_MAP_CRB_RPMX3,
	NETXEN_HW_PX_MAP_CRB_RPMX4,
	NETXEN_HW_PX_MAP_CRB_RPMX5,
	NETXEN_HW_PX_MAP_CRB_RPMX6,
	NETXEN_HW_PX_MAP_CRB_RPMX7,
	NETXEN_HW_PX_MAP_CRB_XDMA,
	NETXEN_HW_PX_MAP_CRB_I2Q,
	NETXEN_HW_PX_MAP_CRB_ROMUSB,
	NETXEN_HW_PX_MAP_CRB_CAS3,
Loading
Loading full blame...