111924SDaniel.Beauregard@Sun.COM /* 211924SDaniel.Beauregard@Sun.COM * CDDL HEADER START 311924SDaniel.Beauregard@Sun.COM * 411924SDaniel.Beauregard@Sun.COM * The contents of this file are subject to the terms of the 511924SDaniel.Beauregard@Sun.COM * Common Development and Distribution License (the "License"). 611924SDaniel.Beauregard@Sun.COM * You may not use this file except in compliance with the License. 711924SDaniel.Beauregard@Sun.COM * 811924SDaniel.Beauregard@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 911924SDaniel.Beauregard@Sun.COM * or http://www.opensolaris.org/os/licensing. 1011924SDaniel.Beauregard@Sun.COM * See the License for the specific language governing permissions 1111924SDaniel.Beauregard@Sun.COM * and limitations under the License. 1211924SDaniel.Beauregard@Sun.COM * 1311924SDaniel.Beauregard@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 1411924SDaniel.Beauregard@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1511924SDaniel.Beauregard@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 1611924SDaniel.Beauregard@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 1711924SDaniel.Beauregard@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 1811924SDaniel.Beauregard@Sun.COM * 1911924SDaniel.Beauregard@Sun.COM * CDDL HEADER END 2011924SDaniel.Beauregard@Sun.COM */ 2111924SDaniel.Beauregard@Sun.COM 2211924SDaniel.Beauregard@Sun.COM /* 2311924SDaniel.Beauregard@Sun.COM * Copyright 2010 QLogic Corporation. All rights reserved. 2411924SDaniel.Beauregard@Sun.COM * Use is subject to license terms. 2511924SDaniel.Beauregard@Sun.COM */ 2611924SDaniel.Beauregard@Sun.COM 2711924SDaniel.Beauregard@Sun.COM #ifndef _QL_NX_H 2811924SDaniel.Beauregard@Sun.COM #define _QL_NX_H 2911924SDaniel.Beauregard@Sun.COM 3011924SDaniel.Beauregard@Sun.COM /* 3111924SDaniel.Beauregard@Sun.COM * ISP2xxx Solaris Fibre Channel Adapter (FCA) driver header file. 3211924SDaniel.Beauregard@Sun.COM * 3311924SDaniel.Beauregard@Sun.COM * *********************************************************************** 3411924SDaniel.Beauregard@Sun.COM * * ** 3511924SDaniel.Beauregard@Sun.COM * * NOTICE ** 3611924SDaniel.Beauregard@Sun.COM * * COPYRIGHT (C) 1996-2010 QLOGIC CORPORATION ** 3711924SDaniel.Beauregard@Sun.COM * * ALL RIGHTS RESERVED ** 3811924SDaniel.Beauregard@Sun.COM * * ** 3911924SDaniel.Beauregard@Sun.COM * *********************************************************************** 4011924SDaniel.Beauregard@Sun.COM * 4111924SDaniel.Beauregard@Sun.COM */ 4211924SDaniel.Beauregard@Sun.COM 4311924SDaniel.Beauregard@Sun.COM #ifdef __cplusplus 4411924SDaniel.Beauregard@Sun.COM extern "C" { 4511924SDaniel.Beauregard@Sun.COM #endif 4611924SDaniel.Beauregard@Sun.COM 4711924SDaniel.Beauregard@Sun.COM #define NX_P3_A0 0x30 4811924SDaniel.Beauregard@Sun.COM #define NX_P3_A2 0x32 4911924SDaniel.Beauregard@Sun.COM #define NX_P3_B0 0x40 5011924SDaniel.Beauregard@Sun.COM #define NX_P3_B1 0x41 5111924SDaniel.Beauregard@Sun.COM #define NX_P3_B2 0x42 5211924SDaniel.Beauregard@Sun.COM #define NX_P3P_A0 0x50 53*12279SDaniel.Beauregard@Sun.COM #define NX_P3P_B0 0x54 5411924SDaniel.Beauregard@Sun.COM 5511924SDaniel.Beauregard@Sun.COM #define NX_IS_REVISION_P3(REVISION) (REVISION >= NX_P3_A0) 5611924SDaniel.Beauregard@Sun.COM #define NX_IS_REVISION_P3PLUS(REVISION) (REVISION >= NX_P3P_A0) 5711924SDaniel.Beauregard@Sun.COM 5811924SDaniel.Beauregard@Sun.COM /* 5911924SDaniel.Beauregard@Sun.COM * Following are the states of the Phantom. Phantom will set them and 6011924SDaniel.Beauregard@Sun.COM * Host will read to check if the fields are correct. 6111924SDaniel.Beauregard@Sun.COM */ 6211924SDaniel.Beauregard@Sun.COM #define PHAN_INITIALIZE_START 0xff00 6311924SDaniel.Beauregard@Sun.COM #define PHAN_INITIALIZE_FAILED 0xffff 6411924SDaniel.Beauregard@Sun.COM #define PHAN_INITIALIZE_COMPLETE 0xff01 6511924SDaniel.Beauregard@Sun.COM 6611924SDaniel.Beauregard@Sun.COM /* Host writes the following to notify that it has done the init-handshake */ 6711924SDaniel.Beauregard@Sun.COM #define PHAN_INITIALIZE_ACK 0xf00f 6811924SDaniel.Beauregard@Sun.COM #define PHAN_PEG_RCV_INITIALIZED 0xff01 6911924SDaniel.Beauregard@Sun.COM #define PHAN_PEG_RCV_START_INITIALIZE 0xff00 7011924SDaniel.Beauregard@Sun.COM 7111924SDaniel.Beauregard@Sun.COM /* CRB_RELATED */ 7211924SDaniel.Beauregard@Sun.COM #define NIC_CRB_BASE (UNM_CAM_RAM(0x200)) 7311924SDaniel.Beauregard@Sun.COM #define NIC_CRB_BASE_2 (UNM_CAM_RAM(0x700)) 7411924SDaniel.Beauregard@Sun.COM #define UNM_NIC_REG(X) (NIC_CRB_BASE + (X)) 7511924SDaniel.Beauregard@Sun.COM #define UNM_NIC_REG_2(X) (NIC_CRB_BASE_2 + (X)) 7611924SDaniel.Beauregard@Sun.COM 7711924SDaniel.Beauregard@Sun.COM #define CRB_CUT_THRU_PAGE_SIZE (UNM_CAM_RAM(0x170)) 7811924SDaniel.Beauregard@Sun.COM 7911924SDaniel.Beauregard@Sun.COM #define CRB_DEV_PARTITION_INFO (UNM_CAM_RAM(0x14c)) 8011924SDaniel.Beauregard@Sun.COM #define CRB_DEV_STATE (UNM_CAM_RAM(0x140)) 8111924SDaniel.Beauregard@Sun.COM #define CRB_DRV_IDC_VERSION (UNM_CAM_RAM(0x174)) 8211924SDaniel.Beauregard@Sun.COM #define CRB_DRV_ACTIVE (UNM_CAM_RAM(0x138)) 8311924SDaniel.Beauregard@Sun.COM #define CRB_DRV_STATE (UNM_CAM_RAM(0x144)) 8411924SDaniel.Beauregard@Sun.COM #define CRB_DRV_SCRATCH (UNM_CAM_RAM(0x148)) 85*12279SDaniel.Beauregard@Sun.COM #define CRB_FCOE_PORT_0_REQIN (UNM_CAM_RAM(0x1b8)) 86*12279SDaniel.Beauregard@Sun.COM #define CRB_FCOE_PORT_1_REQIN (UNM_CAM_RAM(0x1bc)) 8711924SDaniel.Beauregard@Sun.COM 8811924SDaniel.Beauregard@Sun.COM /* Every driver should use these Device State */ 8911924SDaniel.Beauregard@Sun.COM #define NX_DEV_COLD 1 9011924SDaniel.Beauregard@Sun.COM #define NX_DEV_INITIALIZING 2 9111924SDaniel.Beauregard@Sun.COM #define NX_DEV_READY 3 9211924SDaniel.Beauregard@Sun.COM #define NX_DEV_NEED_RESET 4 9311924SDaniel.Beauregard@Sun.COM #define NX_DEV_NEED_QUIESCENT 5 9411924SDaniel.Beauregard@Sun.COM #define NX_DEV_FAILED 6 9511924SDaniel.Beauregard@Sun.COM #define NX_DEV_QUIESCENT 7 9611924SDaniel.Beauregard@Sun.COM 9711924SDaniel.Beauregard@Sun.COM #define NX_IDC_VERSION 0x1 9811924SDaniel.Beauregard@Sun.COM 9911924SDaniel.Beauregard@Sun.COM #define CRB_CMD_PRODUCER_OFFSET (UNM_NIC_REG(0x08)) 10011924SDaniel.Beauregard@Sun.COM #define CRB_CMD_CONSUMER_OFFSET (UNM_NIC_REG(0x0c)) 10111924SDaniel.Beauregard@Sun.COM #define CRB_PAUSE_ADDR_LO (UNM_NIC_REG(0x10)) /* C0 EPG BUG */ 10211924SDaniel.Beauregard@Sun.COM #define CRB_PAUSE_ADDR_HI (UNM_NIC_REG(0x14)) 10311924SDaniel.Beauregard@Sun.COM #define NX_CDRP_CRB_OFFSET (UNM_NIC_REG(0x18)) 10411924SDaniel.Beauregard@Sun.COM #define NX_ARG1_CRB_OFFSET (UNM_NIC_REG(0x1c)) 10511924SDaniel.Beauregard@Sun.COM #define NX_ARG2_CRB_OFFSET (UNM_NIC_REG(0x20)) 10611924SDaniel.Beauregard@Sun.COM #define NX_ARG3_CRB_OFFSET (UNM_NIC_REG(0x24)) 10711924SDaniel.Beauregard@Sun.COM #define NX_SIGN_CRB_OFFSET (UNM_NIC_REG(0x28)) 10811924SDaniel.Beauregard@Sun.COM #define CRB_CMDPEG_CMDRING (UNM_NIC_REG(0x38)) 10911924SDaniel.Beauregard@Sun.COM #define CRB_HOST_DUMMY_BUF_ADDR_HI (UNM_NIC_REG(0x3c)) 11011924SDaniel.Beauregard@Sun.COM #define CRB_HOST_DUMMY_BUF_ADDR_LO (UNM_NIC_REG(0x40)) 11111924SDaniel.Beauregard@Sun.COM #define CRB_CMDPEG_STATE (UNM_NIC_REG(0x50)) 11211924SDaniel.Beauregard@Sun.COM #define BOOT_LOADER_DIMM_STATUS (UNM_NIC_REG(0x54)) 11311924SDaniel.Beauregard@Sun.COM #define CRB_GLOBAL_INT_COAL (UNM_NIC_REG(0x64)) /* intrt coalescing */ 11411924SDaniel.Beauregard@Sun.COM #define CRB_INT_COAL_MODE (UNM_NIC_REG(0x68)) 11511924SDaniel.Beauregard@Sun.COM #define CRB_MAX_RCV_BUFS (UNM_NIC_REG(0x6c)) 11611924SDaniel.Beauregard@Sun.COM #define CRB_TX_INT_THRESHOLD (UNM_NIC_REG(0x70)) 11711924SDaniel.Beauregard@Sun.COM #define CRB_RX_PKT_TIMER (UNM_NIC_REG(0x74)) 11811924SDaniel.Beauregard@Sun.COM #define CRB_TX_PKT_TIMER (UNM_NIC_REG(0x78)) 11911924SDaniel.Beauregard@Sun.COM #define CRB_RX_PKT_CNT (UNM_NIC_REG(0x7c)) 12011924SDaniel.Beauregard@Sun.COM #define CRB_RX_TMR_CNT (UNM_NIC_REG(0x80)) 12111924SDaniel.Beauregard@Sun.COM #define CRB_RCV_INTR_COUNT (UNM_NIC_REG(0x84)) 12211924SDaniel.Beauregard@Sun.COM #define CRB_XG_STATE (UNM_NIC_REG(0x94)) /* XG Link status */ 12311924SDaniel.Beauregard@Sun.COM #define CRB_XG_STATE_P3 (UNM_NIC_REG(0x98)) /* XG PF Link status */ 12411924SDaniel.Beauregard@Sun.COM #define CRB_TX_STATE (UNM_NIC_REG(0xac)) /* Debug -performance */ 12511924SDaniel.Beauregard@Sun.COM #define CRB_TX_COUNT (UNM_NIC_REG(0xb0)) 12611924SDaniel.Beauregard@Sun.COM #define CRB_RX_STATE (UNM_NIC_REG(0xb4)) 12711924SDaniel.Beauregard@Sun.COM #define CRB_RX_PERF_DEBUG_1 (UNM_NIC_REG(0xb8)) 12811924SDaniel.Beauregard@Sun.COM #define CRB_RX_LRO_CONTROL (UNM_NIC_REG(0xbc)) /* LRO On/OFF */ 12911924SDaniel.Beauregard@Sun.COM #define CRB_MPORT_MODE (UNM_NIC_REG(0xc4)) /* Multiport Mode */ 13011924SDaniel.Beauregard@Sun.COM #define CRB_DMA_SHIFT (UNM_NIC_REG(0xcc)) /* DMA mask extension */ 13111924SDaniel.Beauregard@Sun.COM #define CRB_INT_VECTOR (UNM_NIC_REG(0xd4)) 13211924SDaniel.Beauregard@Sun.COM #define CRB_PF_LINK_SPEED_1 (UNM_NIC_REG(0xe8)) 13311924SDaniel.Beauregard@Sun.COM #define CRB_PF_LINK_SPEED_2 (UNM_NIC_REG(0xec)) 13411924SDaniel.Beauregard@Sun.COM #define CRB_PF_MAX_LINK_SPEED_1 (UNM_NIC_REG(0xf0)) 13511924SDaniel.Beauregard@Sun.COM #define CRB_PF_MAX_LINK_SPEED_2 (UNM_NIC_REG(0xf4)) 13611924SDaniel.Beauregard@Sun.COM #define CRB_HOST_DUMMY_BUF (UNM_NIC_REG(0xfc)) 13711924SDaniel.Beauregard@Sun.COM 13811924SDaniel.Beauregard@Sun.COM /* used for ethtool tests */ 13911924SDaniel.Beauregard@Sun.COM #define CRB_SCRATCHPAD_TEST (UNM_NIC_REG(0x280)) 14011924SDaniel.Beauregard@Sun.COM 14111924SDaniel.Beauregard@Sun.COM #define CRB_RCVPEG_STATE (UNM_NIC_REG(0x13c)) 14211924SDaniel.Beauregard@Sun.COM 14311924SDaniel.Beauregard@Sun.COM #define UNM_PEG_HALT_STATUS1 (UNM_CAM_RAM(0xa8)) 14411924SDaniel.Beauregard@Sun.COM #define UNM_PEG_HALT_STATUS2 (UNM_CAM_RAM(0xac)) 14511924SDaniel.Beauregard@Sun.COM #define UNM_PEG_ALIVE_COUNTER (UNM_CAM_RAM(0x0b0)) 14611924SDaniel.Beauregard@Sun.COM #define UNM_FW_CAPABILITIES_1 (UNM_CAM_RAM(0x128)) 14711924SDaniel.Beauregard@Sun.COM 14811924SDaniel.Beauregard@Sun.COM /* 12 registers to store MAC addresses for 8 PCI functions */ 14911924SDaniel.Beauregard@Sun.COM #define CRB_MAC_BLOCK_START (UNM_CAM_RAM(0x1c0)) 15011924SDaniel.Beauregard@Sun.COM 15111924SDaniel.Beauregard@Sun.COM #define CRB_CMD_PRODUCER_OFFSET_1 (UNM_NIC_REG(0x1ac)) 15211924SDaniel.Beauregard@Sun.COM #define CRB_CMD_CONSUMER_OFFSET_1 (UNM_NIC_REG(0x1b0)) 15311924SDaniel.Beauregard@Sun.COM #define CRB_TEMP_STATE (UNM_NIC_REG(0x1b4)) 15411924SDaniel.Beauregard@Sun.COM #define CRB_CMD_PRODUCER_OFFSET_2 (UNM_NIC_REG(0x1b8)) 15511924SDaniel.Beauregard@Sun.COM #define CRB_CMD_CONSUMER_OFFSET_2 (UNM_NIC_REG(0x1bc)) 15611924SDaniel.Beauregard@Sun.COM 15711924SDaniel.Beauregard@Sun.COM #define CRB_CMD_PRODUCER_OFFSET_3 (UNM_NIC_REG(0x1d0)) 15811924SDaniel.Beauregard@Sun.COM #define CRB_CMD_CONSUMER_OFFSET_3 (UNM_NIC_REG(0x1d4)) 15911924SDaniel.Beauregard@Sun.COM /* sw int status/mask registers */ 16011924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_OFFSET_0 0x1d8 16111924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_OFFSET_1 0x1e0 16211924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_OFFSET_2 0x1e4 16311924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_OFFSET_3 0x1e8 16411924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_OFFSET_4 0x450 16511924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_OFFSET_5 0x454 16611924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_OFFSET_6 0x458 16711924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_OFFSET_7 0x45c 16811924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_0 (UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_0)) 16911924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_1 (UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_1)) 17011924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_2 (UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_2)) 17111924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_3 (UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_3)) 17211924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_4 (UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_4)) 17311924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_5 (UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_5)) 17411924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_6 (UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_6)) 17511924SDaniel.Beauregard@Sun.COM #define CRB_SW_INT_MASK_7 (UNM_NIC_REG(CRB_SW_INT_MASK_OFFSET_7)) 17611924SDaniel.Beauregard@Sun.COM 17711924SDaniel.Beauregard@Sun.COM #define CRB_NIC_DEBUG_STRUCT_BASE (UNM_NIC_REG(0x288)) 17811924SDaniel.Beauregard@Sun.COM 17911924SDaniel.Beauregard@Sun.COM #define CRB_NIC_CAPABILITIES_HOST (UNM_NIC_REG(0x1a8)) 18011924SDaniel.Beauregard@Sun.COM #define CRB_NIC_CAPABILITIES_FW (UNM_NIC_REG(0x1dc)) 18111924SDaniel.Beauregard@Sun.COM #define CRB_NIC_MSI_MODE_HOST (UNM_NIC_REG(0x270)) 18211924SDaniel.Beauregard@Sun.COM #define CRB_NIC_MSI_MODE_FW (UNM_NIC_REG(0x274)) 18311924SDaniel.Beauregard@Sun.COM 18411924SDaniel.Beauregard@Sun.COM #define INTR_SCHEME_PERPORT 0x1 18511924SDaniel.Beauregard@Sun.COM #define MSI_MODE_MULTIFUNC 0x1 18611924SDaniel.Beauregard@Sun.COM 18711924SDaniel.Beauregard@Sun.COM #define CRB_EPG_QUEUE_BUSY_COUNT (UNM_NIC_REG(0x200)) 18811924SDaniel.Beauregard@Sun.COM 18911924SDaniel.Beauregard@Sun.COM #define CRB_V2P_0 (UNM_NIC_REG(0x290)) 19011924SDaniel.Beauregard@Sun.COM #define CRB_V2P_1 (UNM_NIC_REG(0x294)) 19111924SDaniel.Beauregard@Sun.COM #define CRB_V2P_2 (UNM_NIC_REG(0x298)) 19211924SDaniel.Beauregard@Sun.COM #define CRB_V2P_3 (UNM_NIC_REG(0x29c)) 19311924SDaniel.Beauregard@Sun.COM #define CRB_V2P(port) (CRB_V2P_0 + ((port) * 4)) 19411924SDaniel.Beauregard@Sun.COM #define CRB_DRIVER_VERSION (UNM_NIC_REG(0x2a0)) 19511924SDaniel.Beauregard@Sun.COM 19611924SDaniel.Beauregard@Sun.COM #define CRB_CNT_DBG1 (UNM_NIC_REG(0x2a4)) 19711924SDaniel.Beauregard@Sun.COM #define CRB_CNT_DBG2 (UNM_NIC_REG(0x2a8)) 19811924SDaniel.Beauregard@Sun.COM #define CRB_CNT_DBG3 (UNM_NIC_REG(0x2ac)) 19911924SDaniel.Beauregard@Sun.COM 20011924SDaniel.Beauregard@Sun.COM /* ends here */ 20111924SDaniel.Beauregard@Sun.COM #define UNM_HW_H0_CH_HUB_ADR 0x05 20211924SDaniel.Beauregard@Sun.COM #define UNM_HW_H1_CH_HUB_ADR 0x0E 20311924SDaniel.Beauregard@Sun.COM #define UNM_HW_H2_CH_HUB_ADR 0x03 20411924SDaniel.Beauregard@Sun.COM #define UNM_HW_H3_CH_HUB_ADR 0x01 20511924SDaniel.Beauregard@Sun.COM #define UNM_HW_H4_CH_HUB_ADR 0x06 20611924SDaniel.Beauregard@Sun.COM #define UNM_HW_H5_CH_HUB_ADR 0x07 20711924SDaniel.Beauregard@Sun.COM #define UNM_HW_H6_CH_HUB_ADR 0x08 20811924SDaniel.Beauregard@Sun.COM /* 20911924SDaniel.Beauregard@Sun.COM * WARNING: pex_tgt_adr.v assumes if MSB of hub adr is set then it is an 21011924SDaniel.Beauregard@Sun.COM * ILLEGAL hub!!!!! 21111924SDaniel.Beauregard@Sun.COM */ 21211924SDaniel.Beauregard@Sun.COM 21311924SDaniel.Beauregard@Sun.COM /* Hub 0 */ 21411924SDaniel.Beauregard@Sun.COM #define UNM_HW_MN_CRB_AGT_ADR 0x15 21511924SDaniel.Beauregard@Sun.COM #define UNM_HW_MS_CRB_AGT_ADR 0x25 21611924SDaniel.Beauregard@Sun.COM 21711924SDaniel.Beauregard@Sun.COM /* Hub 1 */ 21811924SDaniel.Beauregard@Sun.COM #define UNM_HW_PS_CRB_AGT_ADR 0x73 21911924SDaniel.Beauregard@Sun.COM #define UNM_HW_SS_CRB_AGT_ADR 0x20 22011924SDaniel.Beauregard@Sun.COM #define UNM_HW_RPMX3_CRB_AGT_ADR 0x0b 22111924SDaniel.Beauregard@Sun.COM #define UNM_HW_QMS_CRB_AGT_ADR 0x00 22211924SDaniel.Beauregard@Sun.COM #define UNM_HW_SQGS0_CRB_AGT_ADR 0x01 22311924SDaniel.Beauregard@Sun.COM #define UNM_HW_SQGS1_CRB_AGT_ADR 0x02 22411924SDaniel.Beauregard@Sun.COM #define UNM_HW_SQGS2_CRB_AGT_ADR 0x03 22511924SDaniel.Beauregard@Sun.COM #define UNM_HW_SQGS3_CRB_AGT_ADR 0x04 22611924SDaniel.Beauregard@Sun.COM #define UNM_HW_C2C0_CRB_AGT_ADR 0x58 22711924SDaniel.Beauregard@Sun.COM #define UNM_HW_C2C1_CRB_AGT_ADR 0x59 22811924SDaniel.Beauregard@Sun.COM #define UNM_HW_C2C2_CRB_AGT_ADR 0x5a 22911924SDaniel.Beauregard@Sun.COM #define UNM_HW_RPMX2_CRB_AGT_ADR 0x0a 23011924SDaniel.Beauregard@Sun.COM #define UNM_HW_RPMX4_CRB_AGT_ADR 0x0c 23111924SDaniel.Beauregard@Sun.COM #define UNM_HW_RPMX7_CRB_AGT_ADR 0x0f 23211924SDaniel.Beauregard@Sun.COM #define UNM_HW_RPMX9_CRB_AGT_ADR 0x12 23311924SDaniel.Beauregard@Sun.COM #define UNM_HW_SMB_CRB_AGT_ADR 0x18 23411924SDaniel.Beauregard@Sun.COM 23511924SDaniel.Beauregard@Sun.COM /* Hub 2 */ 23611924SDaniel.Beauregard@Sun.COM #define UNM_HW_NIU_CRB_AGT_ADR 0x31 23711924SDaniel.Beauregard@Sun.COM #define UNM_HW_I2C0_CRB_AGT_ADR 0x19 23811924SDaniel.Beauregard@Sun.COM #define UNM_HW_I2C1_CRB_AGT_ADR 0x29 23911924SDaniel.Beauregard@Sun.COM 24011924SDaniel.Beauregard@Sun.COM #define UNM_HW_SN_CRB_AGT_ADR 0x10 24111924SDaniel.Beauregard@Sun.COM #define UNM_HW_I2Q_CRB_AGT_ADR 0x20 24211924SDaniel.Beauregard@Sun.COM #define UNM_HW_LPC_CRB_AGT_ADR 0x22 24311924SDaniel.Beauregard@Sun.COM #define UNM_HW_ROMUSB_CRB_AGT_ADR 0x21 24411924SDaniel.Beauregard@Sun.COM #define UNM_HW_QM_CRB_AGT_ADR 0x66 24511924SDaniel.Beauregard@Sun.COM #define UNM_HW_SQG0_CRB_AGT_ADR 0x60 24611924SDaniel.Beauregard@Sun.COM #define UNM_HW_SQG1_CRB_AGT_ADR 0x61 24711924SDaniel.Beauregard@Sun.COM #define UNM_HW_SQG2_CRB_AGT_ADR 0x62 24811924SDaniel.Beauregard@Sun.COM #define UNM_HW_SQG3_CRB_AGT_ADR 0x63 24911924SDaniel.Beauregard@Sun.COM #define UNM_HW_RPMX1_CRB_AGT_ADR 0x09 25011924SDaniel.Beauregard@Sun.COM #define UNM_HW_RPMX5_CRB_AGT_ADR 0x0d 25111924SDaniel.Beauregard@Sun.COM #define UNM_HW_RPMX6_CRB_AGT_ADR 0x0e 25211924SDaniel.Beauregard@Sun.COM #define UNM_HW_RPMX8_CRB_AGT_ADR 0x11 25311924SDaniel.Beauregard@Sun.COM 25411924SDaniel.Beauregard@Sun.COM /* Hub 3 */ 25511924SDaniel.Beauregard@Sun.COM #define UNM_HW_PH_CRB_AGT_ADR 0x1A 25611924SDaniel.Beauregard@Sun.COM #define UNM_HW_SRE_CRB_AGT_ADR 0x50 25711924SDaniel.Beauregard@Sun.COM #define UNM_HW_EG_CRB_AGT_ADR 0x51 25811924SDaniel.Beauregard@Sun.COM #define UNM_HW_RPMX0_CRB_AGT_ADR 0x08 25911924SDaniel.Beauregard@Sun.COM 26011924SDaniel.Beauregard@Sun.COM /* Hub 4 */ 26111924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGN0_CRB_AGT_ADR 0x40 26211924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGN1_CRB_AGT_ADR 0x41 26311924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGN2_CRB_AGT_ADR 0x42 26411924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGN3_CRB_AGT_ADR 0x43 26511924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGNI_CRB_AGT_ADR 0x44 26611924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGND_CRB_AGT_ADR 0x45 26711924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGNC_CRB_AGT_ADR 0x46 26811924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGR0_CRB_AGT_ADR 0x47 26911924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGR1_CRB_AGT_ADR 0x48 27011924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGR2_CRB_AGT_ADR 0x49 27111924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGR3_CRB_AGT_ADR 0x4a 27211924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGN4_CRB_AGT_ADR 0x4b 27311924SDaniel.Beauregard@Sun.COM 27411924SDaniel.Beauregard@Sun.COM /* Hub 5 */ 27511924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGS0_CRB_AGT_ADR 0x40 27611924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGS1_CRB_AGT_ADR 0x41 27711924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGS2_CRB_AGT_ADR 0x42 27811924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGS3_CRB_AGT_ADR 0x43 27911924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGSI_CRB_AGT_ADR 0x44 28011924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGSD_CRB_AGT_ADR 0x45 28111924SDaniel.Beauregard@Sun.COM #define UNM_HW_PEGSC_CRB_AGT_ADR 0x46 28211924SDaniel.Beauregard@Sun.COM 28311924SDaniel.Beauregard@Sun.COM /* Hub 6 */ 28411924SDaniel.Beauregard@Sun.COM #define UNM_HW_CAS0_CRB_AGT_ADR 0x46 28511924SDaniel.Beauregard@Sun.COM #define UNM_HW_CAS1_CRB_AGT_ADR 0x47 28611924SDaniel.Beauregard@Sun.COM #define UNM_HW_CAS2_CRB_AGT_ADR 0x48 28711924SDaniel.Beauregard@Sun.COM #define UNM_HW_CAS3_CRB_AGT_ADR 0x49 28811924SDaniel.Beauregard@Sun.COM #define UNM_HW_NCM_CRB_AGT_ADR 0x16 28911924SDaniel.Beauregard@Sun.COM #define UNM_HW_TMR_CRB_AGT_ADR 0x17 29011924SDaniel.Beauregard@Sun.COM #define UNM_HW_XDMA_CRB_AGT_ADR 0x05 29111924SDaniel.Beauregard@Sun.COM #define UNM_HW_OCM0_CRB_AGT_ADR 0x06 29211924SDaniel.Beauregard@Sun.COM #define UNM_HW_OCM1_CRB_AGT_ADR 0x07 29311924SDaniel.Beauregard@Sun.COM 29411924SDaniel.Beauregard@Sun.COM /* This field defines PCI/X adr [25:20] of agents on the CRB */ 29511924SDaniel.Beauregard@Sun.COM 29611924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PH 0 29711924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PS 1 29811924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_MN 2 29911924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_MS 3 30011924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_SRE 5 30111924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_NIU 6 30211924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_QMN 7 30311924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_SQN0 8 30411924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_SQN1 9 30511924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_SQN2 10 30611924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_SQN3 11 30711924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_QMS 12 30811924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_SQS0 13 30911924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_SQS1 14 31011924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_SQS2 15 31111924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_SQS3 16 31211924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGN0 17 31311924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGN1 18 31411924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGN2 19 31511924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGN3 20 31611924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGN4 (UNM_HW_PX_MAP_CRB_SQS2) 31711924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGND 21 31811924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGNI 22 31911924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGS0 23 32011924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGS1 24 32111924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGS2 25 32211924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGS3 26 32311924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGSD 27 32411924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGSI 28 32511924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_SN 29 32611924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_EG 31 32711924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PH2 32 32811924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PS2 33 32911924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_CAM 34 33011924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_CAS0 35 33111924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_CAS1 36 33211924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_CAS2 37 33311924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_C2C0 38 33411924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_C2C1 39 33511924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_TIMR 40 33611924SDaniel.Beauregard@Sun.COM /* 33711924SDaniel.Beauregard@Sun.COM * #define PX_MAP_CRB_SS 41 33811924SDaniel.Beauregard@Sun.COM */ 33911924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_RPMX1 42 34011924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_RPMX2 43 34111924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_RPMX3 44 34211924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_RPMX4 45 34311924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_RPMX5 46 34411924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_RPMX6 47 34511924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_RPMX7 48 34611924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_XDMA 49 34711924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_I2Q 50 34811924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_ROMUSB 51 34911924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_CAS3 52 35011924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_RPMX0 53 35111924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_RPMX8 54 35211924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_RPMX9 55 35311924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_OCM0 56 35411924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_OCM1 57 35511924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_SMB 58 35611924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_I2C0 59 35711924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_I2C1 60 35811924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_LPC 61 35911924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGNC 62 36011924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGR0 63 36111924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGR1 4 36211924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGR2 30 36311924SDaniel.Beauregard@Sun.COM #define UNM_HW_PX_MAP_CRB_PGR3 41 36411924SDaniel.Beauregard@Sun.COM 36511924SDaniel.Beauregard@Sun.COM /* This field defines CRB adr [31:20] of the agents */ 36611924SDaniel.Beauregard@Sun.COM 36711924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_MN ((UNM_HW_H0_CH_HUB_ADR << 7) | \ 36811924SDaniel.Beauregard@Sun.COM UNM_HW_MN_CRB_AGT_ADR) 36911924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PH ((UNM_HW_H0_CH_HUB_ADR << 7) | \ 37011924SDaniel.Beauregard@Sun.COM UNM_HW_PH_CRB_AGT_ADR) 37111924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_MS ((UNM_HW_H0_CH_HUB_ADR << 7) | \ 37211924SDaniel.Beauregard@Sun.COM UNM_HW_MS_CRB_AGT_ADR) 37311924SDaniel.Beauregard@Sun.COM 37411924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PS ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 37511924SDaniel.Beauregard@Sun.COM UNM_HW_PS_CRB_AGT_ADR) 37611924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SS ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 37711924SDaniel.Beauregard@Sun.COM UNM_HW_SS_CRB_AGT_ADR) 37811924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_RPMX3 ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 37911924SDaniel.Beauregard@Sun.COM UNM_HW_RPMX3_CRB_AGT_ADR) 38011924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_QMS ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 38111924SDaniel.Beauregard@Sun.COM UNM_HW_QMS_CRB_AGT_ADR) 38211924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SQS0 ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 38311924SDaniel.Beauregard@Sun.COM UNM_HW_SQGS0_CRB_AGT_ADR) 38411924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SQS1 ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 38511924SDaniel.Beauregard@Sun.COM UNM_HW_SQGS1_CRB_AGT_ADR) 38611924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SQS2 ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 38711924SDaniel.Beauregard@Sun.COM UNM_HW_SQGS2_CRB_AGT_ADR) 38811924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SQS3 ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 38911924SDaniel.Beauregard@Sun.COM UNM_HW_SQGS3_CRB_AGT_ADR) 39011924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_C2C0 ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 39111924SDaniel.Beauregard@Sun.COM UNM_HW_C2C0_CRB_AGT_ADR) 39211924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_C2C1 ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 39311924SDaniel.Beauregard@Sun.COM UNM_HW_C2C1_CRB_AGT_ADR) 39411924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_RPMX2 ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 39511924SDaniel.Beauregard@Sun.COM UNM_HW_RPMX2_CRB_AGT_ADR) 39611924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_RPMX4 ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 39711924SDaniel.Beauregard@Sun.COM UNM_HW_RPMX4_CRB_AGT_ADR) 39811924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_RPMX7 ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 39911924SDaniel.Beauregard@Sun.COM UNM_HW_RPMX7_CRB_AGT_ADR) 40011924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_RPMX9 ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 40111924SDaniel.Beauregard@Sun.COM UNM_HW_RPMX9_CRB_AGT_ADR) 40211924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SMB ((UNM_HW_H1_CH_HUB_ADR << 7) | \ 40311924SDaniel.Beauregard@Sun.COM UNM_HW_SMB_CRB_AGT_ADR) 40411924SDaniel.Beauregard@Sun.COM 40511924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_NIU ((UNM_HW_H2_CH_HUB_ADR << 7) | \ 40611924SDaniel.Beauregard@Sun.COM UNM_HW_NIU_CRB_AGT_ADR) 40711924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_I2C0 ((UNM_HW_H2_CH_HUB_ADR << 7) | \ 40811924SDaniel.Beauregard@Sun.COM UNM_HW_I2C0_CRB_AGT_ADR) 40911924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_I2C1 ((UNM_HW_H2_CH_HUB_ADR << 7) | \ 41011924SDaniel.Beauregard@Sun.COM UNM_HW_I2C1_CRB_AGT_ADR) 41111924SDaniel.Beauregard@Sun.COM 41211924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SRE ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 41311924SDaniel.Beauregard@Sun.COM UNM_HW_SRE_CRB_AGT_ADR) 41411924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_EG ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 41511924SDaniel.Beauregard@Sun.COM UNM_HW_EG_CRB_AGT_ADR) 41611924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_RPMX0 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 41711924SDaniel.Beauregard@Sun.COM UNM_HW_RPMX0_CRB_AGT_ADR) 41811924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_QMN ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 41911924SDaniel.Beauregard@Sun.COM UNM_HW_QM_CRB_AGT_ADR) 42011924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SQN0 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 42111924SDaniel.Beauregard@Sun.COM UNM_HW_SQG0_CRB_AGT_ADR) 42211924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SQN1 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 42311924SDaniel.Beauregard@Sun.COM UNM_HW_SQG1_CRB_AGT_ADR) 42411924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SQN2 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 42511924SDaniel.Beauregard@Sun.COM UNM_HW_SQG2_CRB_AGT_ADR) 42611924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SQN3 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 42711924SDaniel.Beauregard@Sun.COM UNM_HW_SQG3_CRB_AGT_ADR) 42811924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_RPMX1 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 42911924SDaniel.Beauregard@Sun.COM UNM_HW_RPMX1_CRB_AGT_ADR) 43011924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_RPMX5 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 43111924SDaniel.Beauregard@Sun.COM UNM_HW_RPMX5_CRB_AGT_ADR) 43211924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_RPMX6 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 43311924SDaniel.Beauregard@Sun.COM UNM_HW_RPMX6_CRB_AGT_ADR) 43411924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_RPMX8 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 43511924SDaniel.Beauregard@Sun.COM UNM_HW_RPMX8_CRB_AGT_ADR) 43611924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_CAS0 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 43711924SDaniel.Beauregard@Sun.COM UNM_HW_CAS0_CRB_AGT_ADR) 43811924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_CAS1 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 43911924SDaniel.Beauregard@Sun.COM UNM_HW_CAS1_CRB_AGT_ADR) 44011924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_CAS2 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 44111924SDaniel.Beauregard@Sun.COM UNM_HW_CAS2_CRB_AGT_ADR) 44211924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_CAS3 ((UNM_HW_H3_CH_HUB_ADR << 7) | \ 44311924SDaniel.Beauregard@Sun.COM UNM_HW_CAS3_CRB_AGT_ADR) 44411924SDaniel.Beauregard@Sun.COM 44511924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGNI ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 44611924SDaniel.Beauregard@Sun.COM UNM_HW_PEGNI_CRB_AGT_ADR) 44711924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGND ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 44811924SDaniel.Beauregard@Sun.COM UNM_HW_PEGND_CRB_AGT_ADR) 44911924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGN0 ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 45011924SDaniel.Beauregard@Sun.COM UNM_HW_PEGN0_CRB_AGT_ADR) 45111924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGN1 ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 45211924SDaniel.Beauregard@Sun.COM UNM_HW_PEGN1_CRB_AGT_ADR) 45311924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGN2 ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 45411924SDaniel.Beauregard@Sun.COM UNM_HW_PEGN2_CRB_AGT_ADR) 45511924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGN3 ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 45611924SDaniel.Beauregard@Sun.COM UNM_HW_PEGN3_CRB_AGT_ADR) 45711924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGN4 ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 45811924SDaniel.Beauregard@Sun.COM UNM_HW_PEGN4_CRB_AGT_ADR) 45911924SDaniel.Beauregard@Sun.COM 46011924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGNC ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 46111924SDaniel.Beauregard@Sun.COM UNM_HW_PEGNC_CRB_AGT_ADR) 46211924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGR0 ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 46311924SDaniel.Beauregard@Sun.COM UNM_HW_PEGR0_CRB_AGT_ADR) 46411924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGR1 ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 46511924SDaniel.Beauregard@Sun.COM UNM_HW_PEGR1_CRB_AGT_ADR) 46611924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGR2 ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 46711924SDaniel.Beauregard@Sun.COM UNM_HW_PEGR2_CRB_AGT_ADR) 46811924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGR3 ((UNM_HW_H4_CH_HUB_ADR << 7) | \ 46911924SDaniel.Beauregard@Sun.COM UNM_HW_PEGR3_CRB_AGT_ADR) 47011924SDaniel.Beauregard@Sun.COM 47111924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGSI ((UNM_HW_H5_CH_HUB_ADR << 7) | \ 47211924SDaniel.Beauregard@Sun.COM UNM_HW_PEGSI_CRB_AGT_ADR) 47311924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGSD ((UNM_HW_H5_CH_HUB_ADR << 7) | \ 47411924SDaniel.Beauregard@Sun.COM UNM_HW_PEGSD_CRB_AGT_ADR) 47511924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGS0 ((UNM_HW_H5_CH_HUB_ADR << 7) | \ 47611924SDaniel.Beauregard@Sun.COM UNM_HW_PEGS0_CRB_AGT_ADR) 47711924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGS1 ((UNM_HW_H5_CH_HUB_ADR << 7) | \ 47811924SDaniel.Beauregard@Sun.COM UNM_HW_PEGS1_CRB_AGT_ADR) 47911924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGS2 ((UNM_HW_H5_CH_HUB_ADR << 7) | \ 48011924SDaniel.Beauregard@Sun.COM UNM_HW_PEGS2_CRB_AGT_ADR) 48111924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGS3 ((UNM_HW_H5_CH_HUB_ADR << 7) | \ 48211924SDaniel.Beauregard@Sun.COM UNM_HW_PEGS3_CRB_AGT_ADR) 48311924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_PGSC ((UNM_HW_H5_CH_HUB_ADR << 7) | \ 48411924SDaniel.Beauregard@Sun.COM UNM_HW_PEGSC_CRB_AGT_ADR) 48511924SDaniel.Beauregard@Sun.COM 48611924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_CAM ((UNM_HW_H6_CH_HUB_ADR << 7) | \ 48711924SDaniel.Beauregard@Sun.COM UNM_HW_NCM_CRB_AGT_ADR) 48811924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_TIMR ((UNM_HW_H6_CH_HUB_ADR << 7) | \ 48911924SDaniel.Beauregard@Sun.COM UNM_HW_TMR_CRB_AGT_ADR) 49011924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_XDMA ((UNM_HW_H6_CH_HUB_ADR << 7) | \ 49111924SDaniel.Beauregard@Sun.COM UNM_HW_XDMA_CRB_AGT_ADR) 49211924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_SN ((UNM_HW_H6_CH_HUB_ADR << 7) | \ 49311924SDaniel.Beauregard@Sun.COM UNM_HW_SN_CRB_AGT_ADR) 49411924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_I2Q ((UNM_HW_H6_CH_HUB_ADR << 7) | \ 49511924SDaniel.Beauregard@Sun.COM UNM_HW_I2Q_CRB_AGT_ADR) 49611924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_ROMUSB ((UNM_HW_H6_CH_HUB_ADR << 7) | \ 49711924SDaniel.Beauregard@Sun.COM UNM_HW_ROMUSB_CRB_AGT_ADR) 49811924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_OCM0 ((UNM_HW_H6_CH_HUB_ADR << 7) | \ 49911924SDaniel.Beauregard@Sun.COM UNM_HW_OCM0_CRB_AGT_ADR) 50011924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_OCM1 ((UNM_HW_H6_CH_HUB_ADR << 7) | \ 50111924SDaniel.Beauregard@Sun.COM UNM_HW_OCM1_CRB_AGT_ADR) 50211924SDaniel.Beauregard@Sun.COM #define UNM_HW_CRB_HUB_AGT_ADR_LPC ((UNM_HW_H6_CH_HUB_ADR << 7) | \ 50311924SDaniel.Beauregard@Sun.COM UNM_HW_LPC_CRB_AGT_ADR) 50411924SDaniel.Beauregard@Sun.COM 50511924SDaniel.Beauregard@Sun.COM /* 50611924SDaniel.Beauregard@Sun.COM * ROM USB CRB space is divided into 4 regions depending on decode of 50711924SDaniel.Beauregard@Sun.COM * address bits [19:16] 50811924SDaniel.Beauregard@Sun.COM */ 50911924SDaniel.Beauregard@Sun.COM #define ROMUSB_GLB (UNM_CRB_ROMUSB + 0x00000) 51011924SDaniel.Beauregard@Sun.COM #define ROMUSB_ROM (UNM_CRB_ROMUSB + 0x10000) 51111924SDaniel.Beauregard@Sun.COM #define ROMUSB_USB (UNM_CRB_ROMUSB + 0x20000) 51211924SDaniel.Beauregard@Sun.COM #define ROMUSB_DIRECT_ROM (UNM_CRB_ROMUSB + 0x30000) 51311924SDaniel.Beauregard@Sun.COM #define ROMUSB_TAP (UNM_CRB_ROMUSB + 0x40000) 51411924SDaniel.Beauregard@Sun.COM 51511924SDaniel.Beauregard@Sun.COM /* ROMUSB GLB register definitions */ 51611924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_CONTROL (ROMUSB_GLB + 0x0000) 51711924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_STATUS (ROMUSB_GLB + 0x0004) 51811924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_SW_RESET (ROMUSB_GLB + 0x0008) 51911924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_PAD_GPIO_I (ROMUSB_GLB + 0x000c) 52011924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_RNG_PLL_CTL (ROMUSB_GLB + 0x0010) 52111924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_TEST_MUX_O (ROMUSB_GLB + 0x0014) 52211924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_PLL0_CTRL (ROMUSB_GLB + 0x0018) 52311924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_PLL1_CTRL (ROMUSB_GLB + 0x001c) 52411924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_PLL2_CTRL (ROMUSB_GLB + 0x0020) 52511924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_PLL3_CTRL (ROMUSB_GLB + 0x0024) 52611924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_PLL_LOCK (ROMUSB_GLB + 0x0028) 52711924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_EXTERN_INT (ROMUSB_GLB + 0x002c) 52811924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_PH_RST (ROMUSB_GLB + 0x0030) 52911924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_PS_RST (ROMUSB_GLB + 0x0034) 53011924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_CAS_RST (ROMUSB_GLB + 0x0038) 53111924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_MIU_RST (ROMUSB_GLB + 0x003c) 53211924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_CRB_RST (ROMUSB_GLB + 0x0040) 53311924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_TEST_MUX_SEL (ROMUSB_GLB + 0x0044) 53411924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_MN_COM_A2T (ROMUSB_GLB + 0x0050) 53511924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_MN_COM_A2T (ROMUSB_GLB + 0x0050) 53611924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_REV_ID (ROMUSB_GLB + 0x0054) 53711924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_PEGTUNE_DONE (ROMUSB_GLB + 0x005c) 53811924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_VENDOR_DEV_ID (ROMUSB_GLB + 0x0058) 53911924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GLB_CHIP_CLK_CTRL (ROMUSB_GLB + 0x00a8) 54011924SDaniel.Beauregard@Sun.COM 54111924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_GPIO(n) ((n) <= 15 ? (ROMUSB_GLB + 0x60 + (4 * (n))): \ 54211924SDaniel.Beauregard@Sun.COM ((n) <= 18) ? (ROMUSB_GLB + 0x70 + (4 * (n))) : \ 54311924SDaniel.Beauregard@Sun.COM (ROMUSB_GLB + 0x70 + (4 * (19)))) 54411924SDaniel.Beauregard@Sun.COM 54511924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_CONTROL (ROMUSB_ROM + 0x0000) 54611924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_INSTR_OPCODE (ROMUSB_ROM + 0x0004) 54711924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_ADDRESS (ROMUSB_ROM + 0x0008) 54811924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_WDATA (ROMUSB_ROM + 0x000c) 54911924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_ABYTE_CNT (ROMUSB_ROM + 0x0010) 55011924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_DUMMY_BYTE_CNT (ROMUSB_ROM + 0x0014) 55111924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_RDATA (ROMUSB_ROM + 0x0018) 55211924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_AGT_TAG (ROMUSB_ROM + 0x001c) 55311924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_TIME_PARM (ROMUSB_ROM + 0x0020) 55411924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_CLK_DIV (ROMUSB_ROM + 0x0024) 55511924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_MISS_INSTR (ROMUSB_ROM + 0x0028) 55611924SDaniel.Beauregard@Sun.COM 55711924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_WRSR_INSTR 0x01 55811924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_PP_INSTR 0x02 55911924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_READ_INSTR 0x03 56011924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_WRDI_INSTR 0x04 56111924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_RDSR_INSTR 0x05 56211924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_WREN_INSTR 0x06 56311924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_FAST_RD_INSTR 0x0B 56411924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_RES_INSTR 0xAB 56511924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_BE_INSTR 0xC7 56611924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_DP_INSTR 0xC9 56711924SDaniel.Beauregard@Sun.COM #define UNM_ROMUSB_ROM_SE_INSTR 0xD8 56811924SDaniel.Beauregard@Sun.COM 56911924SDaniel.Beauregard@Sun.COM /* Lock IDs for ROM lock */ 57011924SDaniel.Beauregard@Sun.COM #define ROM_LOCK_DRIVER 0x0d417340 57111924SDaniel.Beauregard@Sun.COM 57211924SDaniel.Beauregard@Sun.COM /* Lock IDs for PHY lock */ 57311924SDaniel.Beauregard@Sun.COM #define PHY_LOCK_DRIVER 0x44524956 57411924SDaniel.Beauregard@Sun.COM 57511924SDaniel.Beauregard@Sun.COM #define UNM_PCI_CRB_WINDOWSIZE 0x00100000 /* all are 1MB windows */ 57611924SDaniel.Beauregard@Sun.COM #define UNM_PCI_CRB_WINDOW(A) (UNM_PCI_CRBSPACE + (A)*UNM_PCI_CRB_WINDOWSIZE) 57711924SDaniel.Beauregard@Sun.COM #define UNM_CRB_C2C_0 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_C2C0)) 57811924SDaniel.Beauregard@Sun.COM #define UNM_CRB_C2C_1 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_C2C1)) 57911924SDaniel.Beauregard@Sun.COM #define UNM_CRB_C2C_2 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_C2C2)) 58011924SDaniel.Beauregard@Sun.COM #define UNM_CRB_CAM (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_CAM)) 58111924SDaniel.Beauregard@Sun.COM #define UNM_CRB_CASPER (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_CAS)) 58211924SDaniel.Beauregard@Sun.COM #define UNM_CRB_CASPER_0 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_CAS0)) 58311924SDaniel.Beauregard@Sun.COM #define UNM_CRB_CASPER_1 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_CAS1)) 58411924SDaniel.Beauregard@Sun.COM #define UNM_CRB_CASPER_2 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_CAS2)) 58511924SDaniel.Beauregard@Sun.COM #define UNM_CRB_DDR_MD (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_MS)) 58611924SDaniel.Beauregard@Sun.COM #define UNM_CRB_DDR_NET (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_MN)) 58711924SDaniel.Beauregard@Sun.COM #define UNM_CRB_EPG (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_EG)) 58811924SDaniel.Beauregard@Sun.COM #define UNM_CRB_I2Q (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_I2Q)) 58911924SDaniel.Beauregard@Sun.COM #define UNM_CRB_NIU (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_NIU)) 59011924SDaniel.Beauregard@Sun.COM /* HACK upon HACK upon HACK (for PCIE builds) */ 59111924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PCIX_HOST (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PH)) 59211924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PCIX_HOST2 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PH2)) 59311924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PCIX_MD (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PS)) 59411924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PCIE (UNM_CRB_PCIX_MD) 59511924SDaniel.Beauregard@Sun.COM /* window 1 pcie slot */ 59611924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PCIE2 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PS2)) 59711924SDaniel.Beauregard@Sun.COM 59811924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_MD_0 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGS0)) 59911924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_MD_1 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGS1)) 60011924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_MD_2 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGS2)) 60111924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_MD_3 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGS3)) 60211924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_MD_3 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGS3)) 60311924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_MD_D (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGSD)) 60411924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_MD_I (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGSI)) 60511924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_NET_0 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGN0)) 60611924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_NET_1 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGN1)) 60711924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_NET_2 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGN2)) 60811924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_NET_3 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGN3)) 60911924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_NET_4 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGN4)) 61011924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_NET_D (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGND)) 61111924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PEG_NET_I (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_PGNI)) 61211924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PQM_MD (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_QMS)) 61311924SDaniel.Beauregard@Sun.COM #define UNM_CRB_PQM_NET (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_QMN)) 61411924SDaniel.Beauregard@Sun.COM #define UNM_CRB_QDR_MD (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SS)) 61511924SDaniel.Beauregard@Sun.COM #define UNM_CRB_QDR_NET (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SN)) 61611924SDaniel.Beauregard@Sun.COM #define UNM_CRB_ROMUSB (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_ROMUSB)) 61711924SDaniel.Beauregard@Sun.COM #define UNM_CRB_RPMX_0 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_RPMX0)) 61811924SDaniel.Beauregard@Sun.COM #define UNM_CRB_RPMX_1 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_RPMX1)) 61911924SDaniel.Beauregard@Sun.COM #define UNM_CRB_RPMX_2 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_RPMX2)) 62011924SDaniel.Beauregard@Sun.COM #define UNM_CRB_RPMX_3 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_RPMX3)) 62111924SDaniel.Beauregard@Sun.COM #define UNM_CRB_RPMX_4 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_RPMX4)) 62211924SDaniel.Beauregard@Sun.COM #define UNM_CRB_RPMX_5 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_RPMX5)) 62311924SDaniel.Beauregard@Sun.COM #define UNM_CRB_RPMX_6 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_RPMX6)) 62411924SDaniel.Beauregard@Sun.COM #define UNM_CRB_RPMX_7 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_RPMX7)) 62511924SDaniel.Beauregard@Sun.COM #define UNM_CRB_SQM_MD_0 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SQS0)) 62611924SDaniel.Beauregard@Sun.COM #define UNM_CRB_SQM_MD_1 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SQS1)) 62711924SDaniel.Beauregard@Sun.COM #define UNM_CRB_SQM_MD_2 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SQS2)) 62811924SDaniel.Beauregard@Sun.COM #define UNM_CRB_SQM_MD_3 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SQS3)) 62911924SDaniel.Beauregard@Sun.COM #define UNM_CRB_SQM_NET_0 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SQN0)) 63011924SDaniel.Beauregard@Sun.COM #define UNM_CRB_SQM_NET_1 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SQN1)) 63111924SDaniel.Beauregard@Sun.COM #define UNM_CRB_SQM_NET_2 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SQN2)) 63211924SDaniel.Beauregard@Sun.COM #define UNM_CRB_SQM_NET_3 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SQN3)) 63311924SDaniel.Beauregard@Sun.COM #define UNM_CRB_SRE (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SRE)) 63411924SDaniel.Beauregard@Sun.COM #define UNM_CRB_TIMER (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_TIMR)) 63511924SDaniel.Beauregard@Sun.COM #define UNM_CRB_XDMA (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_XDMA)) 63611924SDaniel.Beauregard@Sun.COM #define UNM_CRB_I2C0 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_I2C0)) 63711924SDaniel.Beauregard@Sun.COM #define UNM_CRB_I2C1 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_I2C1)) 63811924SDaniel.Beauregard@Sun.COM #define UNM_CRB_OCM0 (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_OCM0)) 63911924SDaniel.Beauregard@Sun.COM #define UNM_CRB_SMB (UNM_PCI_CRB_WINDOW(UNM_HW_PX_MAP_CRB_SMB)) 64011924SDaniel.Beauregard@Sun.COM 64111924SDaniel.Beauregard@Sun.COM #define UNM_CRB_MAX (UNM_PCI_CRB_WINDOW(64)) 64211924SDaniel.Beauregard@Sun.COM 64311924SDaniel.Beauregard@Sun.COM /* 64411924SDaniel.Beauregard@Sun.COM * ====================== BASE ADDRESSES ON-CHIP ====================== 64511924SDaniel.Beauregard@Sun.COM * Base addresses of major components on-chip. 64611924SDaniel.Beauregard@Sun.COM * ====================== BASE ADDRESSES ON-CHIP ====================== 64711924SDaniel.Beauregard@Sun.COM */ 64811924SDaniel.Beauregard@Sun.COM #define UNM_ADDR_DDR_NET 0x0000000000000000 64911924SDaniel.Beauregard@Sun.COM #define UNM_ADDR_DDR_NET_MAX 0x000000000fffffff 65011924SDaniel.Beauregard@Sun.COM 65111924SDaniel.Beauregard@Sun.COM /* 65211924SDaniel.Beauregard@Sun.COM * Imbus address bit used to indicate a host address. This bit is 65311924SDaniel.Beauregard@Sun.COM * eliminated by the pcie bar and bar select before presentation 65411924SDaniel.Beauregard@Sun.COM * over pcie. 65511924SDaniel.Beauregard@Sun.COM */ 65611924SDaniel.Beauregard@Sun.COM /* host memory via IMBUS */ 65711924SDaniel.Beauregard@Sun.COM #define NX_P2_ADDR_PCIE 0x0000000800000000 65811924SDaniel.Beauregard@Sun.COM #define NX_P3_ADDR_PCIE 0x0000008000000000 65911924SDaniel.Beauregard@Sun.COM #define UNM_ADDR_PCIE_MAX 0x0000000FFFFFFFFF 66011924SDaniel.Beauregard@Sun.COM #define UNM_ADDR_OCM0 0x0000000200000000 66111924SDaniel.Beauregard@Sun.COM #define UNM_ADDR_OCM0_MAX 0x00000002000fffff 66211924SDaniel.Beauregard@Sun.COM #define UNM_ADDR_OCM1 0x0000000200400000 66311924SDaniel.Beauregard@Sun.COM #define UNM_ADDR_OCM1_MAX 0x00000002004fffff 66411924SDaniel.Beauregard@Sun.COM #define UNM_ADDR_QDR_NET 0x0000000300000000 66511924SDaniel.Beauregard@Sun.COM 66611924SDaniel.Beauregard@Sun.COM #define NX_P2_ADDR_QDR_NET_MAX 0x00000003001fffff 66711924SDaniel.Beauregard@Sun.COM #define NX_P3_ADDR_QDR_NET_MAX 0x0000000303ffffff 66811924SDaniel.Beauregard@Sun.COM /* 66911924SDaniel.Beauregard@Sun.COM * The ifdef at the bottom should go. All drivers should start using the above 67011924SDaniel.Beauregard@Sun.COM * 2 defines. 67111924SDaniel.Beauregard@Sun.COM */ 67211924SDaniel.Beauregard@Sun.COM #ifdef P3 67311924SDaniel.Beauregard@Sun.COM #define UNM_ADDR_QDR_NET_MAX (NX_P3_ADDR_QDR_NET_MAX) 67411924SDaniel.Beauregard@Sun.COM #else 67511924SDaniel.Beauregard@Sun.COM #define UNM_ADDR_QDR_NET_MAX (NX_P2_ADDR_QDR_NET_MAX) 67611924SDaniel.Beauregard@Sun.COM #endif 67711924SDaniel.Beauregard@Sun.COM 67811924SDaniel.Beauregard@Sun.COM #define D3_CRB_REG_FUN0 (UNM_PCIX_PS_REG(0x0084)) 67911924SDaniel.Beauregard@Sun.COM #define D3_CRB_REG_FUN1 (UNM_PCIX_PS_REG(0x1084)) 68011924SDaniel.Beauregard@Sun.COM #define D3_CRB_REG_FUN2 (UNM_PCIX_PS_REG(0x2084)) 68111924SDaniel.Beauregard@Sun.COM #define D3_CRB_REG_FUN3 (UNM_PCIX_PS_REG(0x3084)) 68211924SDaniel.Beauregard@Sun.COM 68311924SDaniel.Beauregard@Sun.COM 68411924SDaniel.Beauregard@Sun.COM #define ISR_I2Q_CLR_PCI_LO (UNM_PCIX_PS_REG(UNM_I2Q_CLR_PCI_LO)) 68511924SDaniel.Beauregard@Sun.COM #define ISR_I2Q_CLR_PCI_HI (UNM_PCIX_PS_REG(UNM_I2Q_CLR_PCI_HI)) 68611924SDaniel.Beauregard@Sun.COM #define UNM_PCI_ARCH_CRB_BASE (UNM_PCI_DIRECT_CRB) 68711924SDaniel.Beauregard@Sun.COM 68811924SDaniel.Beauregard@Sun.COM #define UNM_PCI_MAPSIZE 128 /* we're mapping 128MB of mem on PCI bus */ 68911924SDaniel.Beauregard@Sun.COM #define UNM_PCI_DDR_NET 0x00000000 69011924SDaniel.Beauregard@Sun.COM #define UNM_PCI_DDR_NET_MAX 0x01ffffff 69111924SDaniel.Beauregard@Sun.COM #define UNM_PCI_DDR_MD 0x02000000 69211924SDaniel.Beauregard@Sun.COM #define UNM_PCI_DDR_MD_MAX 0x03ffffff 69311924SDaniel.Beauregard@Sun.COM #define UNM_PCI_QDR_NET 0x04000000 69411924SDaniel.Beauregard@Sun.COM #define UNM_PCI_QDR_NET_MAX 0x043fffff 69511924SDaniel.Beauregard@Sun.COM #define UNM_PCI_DIRECT_CRB 0x04400000 69611924SDaniel.Beauregard@Sun.COM #define UNM_PCI_DIRECT_CRB_MAX 0x047fffff 69711924SDaniel.Beauregard@Sun.COM #define UNM_PCI_CAMQM 0x04800000 69811924SDaniel.Beauregard@Sun.COM #define UNM_PCI_CAMQM_MAX 0x04ffffff 69911924SDaniel.Beauregard@Sun.COM #define UNM_PCI_OCM0 0x05000000 70011924SDaniel.Beauregard@Sun.COM #define UNM_PCI_OCM0_MAX 0x050fffff 70111924SDaniel.Beauregard@Sun.COM #define UNM_PCI_OCM1 0x05100000 70211924SDaniel.Beauregard@Sun.COM #define UNM_PCI_OCM1_MAX 0x051fffff 70311924SDaniel.Beauregard@Sun.COM #define UNM_PCI_CRBSPACE 0x06000000 70411924SDaniel.Beauregard@Sun.COM #define UNM_PCI_CRBSPACE_MAX 0x07ffffff 70511924SDaniel.Beauregard@Sun.COM #define UNM_PCI_128MB_SIZE 0x08000000 70611924SDaniel.Beauregard@Sun.COM #define UNM_PCI_32MB_SIZE 0x02000000 70711924SDaniel.Beauregard@Sun.COM #define UNM_PCI_2MB_SIZE 0x00200000 70811924SDaniel.Beauregard@Sun.COM 70911924SDaniel.Beauregard@Sun.COM /* 71011924SDaniel.Beauregard@Sun.COM * Definitions relating to access/control of the Network Interface Unit 71111924SDaniel.Beauregard@Sun.COM * h/w block. 71211924SDaniel.Beauregard@Sun.COM */ 71311924SDaniel.Beauregard@Sun.COM /* 71411924SDaniel.Beauregard@Sun.COM * Configuration registers. 71511924SDaniel.Beauregard@Sun.COM */ 71611924SDaniel.Beauregard@Sun.COM #define UNM_NIU_MODE (UNM_CRB_NIU + 0x00000) 71711924SDaniel.Beauregard@Sun.COM 71811924SDaniel.Beauregard@Sun.COM /* 71911924SDaniel.Beauregard@Sun.COM * Register offsets for MN 72011924SDaniel.Beauregard@Sun.COM */ 72111924SDaniel.Beauregard@Sun.COM #define MIU_CONTROL (0x000) 72211924SDaniel.Beauregard@Sun.COM #define MIU_TAG (0x004) 72311924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_CTRL (0x090) 72411924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_ADDR_LO (0x094) 72511924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_ADDR_HI (0x098) 72611924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_WRDATA_LO (0x0a0) 72711924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_WRDATA_HI (0x0a4) 72811924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_WRDATA(i) (0x0a0 + (4 * (i))) 72911924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_RDDATA_LO (0x0a8) 73011924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_RDDATA_HI (0x0ac) 73111924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_WRDATA_UPPER_LO (0x0b0) 73211924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_WRDATA_UPPER_HI (0x0b4) 73311924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_RDDATA_UPPER_LO (0x0b8) 73411924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_RDDATA_UPPER_HI (0x0bc) 73511924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_RDDATA(i) (0x0a8 + (4 * (i))) 73611924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_ADDR_MASK 0xfffffff8 73711924SDaniel.Beauregard@Sun.COM #define MIU_TEST_AGT_UPPER_ADDR(off) (0) 73811924SDaniel.Beauregard@Sun.COM 73911924SDaniel.Beauregard@Sun.COM /* MIU_TEST_AGT_CTRL flags. work for SIU as well */ 74011924SDaniel.Beauregard@Sun.COM #define MIU_TA_CTL_START 1 74111924SDaniel.Beauregard@Sun.COM #define MIU_TA_CTL_ENABLE 2 74211924SDaniel.Beauregard@Sun.COM #define MIU_TA_CTL_WRITE 4 74311924SDaniel.Beauregard@Sun.COM #define MIU_TA_CTL_BUSY 8 74411924SDaniel.Beauregard@Sun.COM 74511924SDaniel.Beauregard@Sun.COM #define SIU_TEST_AGT_CTRL (0x060) 74611924SDaniel.Beauregard@Sun.COM #define SIU_TEST_AGT_ADDR_LO (0x064) 74711924SDaniel.Beauregard@Sun.COM #define SIU_TEST_AGT_ADDR_HI (0x078) 74811924SDaniel.Beauregard@Sun.COM #define SIU_TEST_AGT_WRDATA_LO (0x068) 74911924SDaniel.Beauregard@Sun.COM #define SIU_TEST_AGT_WRDATA_HI (0x06c) 75011924SDaniel.Beauregard@Sun.COM #define SIU_TEST_AGT_WRDATA(i) (0x068 + (4 * (i))) 75111924SDaniel.Beauregard@Sun.COM #define SIU_TEST_AGT_RDDATA_LO (0x070) 75211924SDaniel.Beauregard@Sun.COM #define SIU_TEST_AGT_RDDATA_HI (0x074) 75311924SDaniel.Beauregard@Sun.COM #define SIU_TEST_AGT_RDDATA(i) (0x070 + (4 * (i))) 75411924SDaniel.Beauregard@Sun.COM 75511924SDaniel.Beauregard@Sun.COM #define SIU_TEST_AGT_ADDR_MASK 0x3ffff8 75611924SDaniel.Beauregard@Sun.COM #define SIU_TEST_AGT_UPPER_ADDR(off) ((off) >> 22) 75711924SDaniel.Beauregard@Sun.COM #define XG_LINK_UP 0x10 75811924SDaniel.Beauregard@Sun.COM 75911924SDaniel.Beauregard@Sun.COM 76011924SDaniel.Beauregard@Sun.COM /* ====================== Configuration Constants ======================== */ 76111924SDaniel.Beauregard@Sun.COM #define UNM_NIU_PHY_WAITLEN 200000 /* 200ms delay in each loop */ 76211924SDaniel.Beauregard@Sun.COM #define UNM_NIU_PHY_WAITMAX 50 /* 10 seconds before we give up */ 76311924SDaniel.Beauregard@Sun.COM #define UNM_NIU_MAX_GBE_PORTS 4 76411924SDaniel.Beauregard@Sun.COM #define UNM_NIU_MAX_XG_PORTS 2 76511924SDaniel.Beauregard@Sun.COM #define MIN_CORE_CLK_SPEED 200 76611924SDaniel.Beauregard@Sun.COM #define MAX_CORE_CLK_SPEED 400 76711924SDaniel.Beauregard@Sun.COM #define ACCEPTABLE_CORE_CLK_RANGE(speed) ((speed >= MIN_CORE_CLK_SPEED) && \ 76811924SDaniel.Beauregard@Sun.COM (speed <= MAX_CORE_CLK_SPEED)) 76911924SDaniel.Beauregard@Sun.COM 77011924SDaniel.Beauregard@Sun.COM #define P2_TICKS_PER_SEC 2048 77111924SDaniel.Beauregard@Sun.COM #define P2_MIN_TICKS_PER_SEC (P2_TICKS_PER_SEC - 10) 77211924SDaniel.Beauregard@Sun.COM #define P2_MAX_TICKS_PER_SEC (P2_TICKS_PER_SEC + 10) 77311924SDaniel.Beauregard@Sun.COM #define CHECK_TICKS_PER_SEC(ticks) ((ticks >= P2_MIN_TICKS_PER_SEC) && \ 77411924SDaniel.Beauregard@Sun.COM (ticks <= P2_MAX_TICKS_PER_SEC)) 77511924SDaniel.Beauregard@Sun.COM 77611924SDaniel.Beauregard@Sun.COM /* CAM RAM */ 77711924SDaniel.Beauregard@Sun.COM #define UNM_CAM_RAM_BASE (UNM_CRB_CAM + 0x02000) 77811924SDaniel.Beauregard@Sun.COM #define UNM_CAM_RAM(reg) (UNM_CAM_RAM_BASE + (reg)) 77911924SDaniel.Beauregard@Sun.COM 78011924SDaniel.Beauregard@Sun.COM #define UNM_PORT_MODE_NONE 0 78111924SDaniel.Beauregard@Sun.COM #define UNM_PORT_MODE_XG 1 78211924SDaniel.Beauregard@Sun.COM #define UNM_PORT_MODE_GB 2 78311924SDaniel.Beauregard@Sun.COM #define UNM_PORT_MODE_802_3_AP 3 78411924SDaniel.Beauregard@Sun.COM #define UNM_PORT_MODE_AUTO_NEG 4 78511924SDaniel.Beauregard@Sun.COM #define UNM_PORT_MODE_AUTO_NEG_1G 5 78611924SDaniel.Beauregard@Sun.COM #define UNM_PORT_MODE_AUTO_NEG_XG 6 78711924SDaniel.Beauregard@Sun.COM #define UNM_PORT_MODE_ADDR (UNM_CAM_RAM(0x24)) 78811924SDaniel.Beauregard@Sun.COM #define UNM_FW_PORT_MODE_ADDR (UNM_CAM_RAM(0x28)) 78911924SDaniel.Beauregard@Sun.COM #define UNM_WOL_PORT_MODE (UNM_CAM_RAM(0x198)) 79011924SDaniel.Beauregard@Sun.COM #define UNM_RAM_COLD_BOOT (UNM_CAM_RAM(0x1fc)) 79111924SDaniel.Beauregard@Sun.COM #define UNM_BUS_DEV_NO (UNM_CAM_RAM(0x114)) 79211924SDaniel.Beauregard@Sun.COM 79311924SDaniel.Beauregard@Sun.COM #define NX_PEG_TUNE_MN_SPD_ZEROED 0x80000000 79411924SDaniel.Beauregard@Sun.COM #define NX_BOOT_LOADER_MN_OTHER 0x100 /* other problem with DIMM */ 79511924SDaniel.Beauregard@Sun.COM #define NX_BOOT_LOADER_MN_NOT_DDR2 0x80 /* not a DDR2 DIMM */ 79611924SDaniel.Beauregard@Sun.COM #define NX_BOOT_LOADER_MN_NO_ECC 0x40 /* ECC not supported */ 79711924SDaniel.Beauregard@Sun.COM #define NX_BOOT_LOADER_MN_WRONG_CAS 0x20 /* CL 5 not supported */ 79811924SDaniel.Beauregard@Sun.COM #define NX_BOOT_LOADER_MN_NOT_REG 0x10 /* not a registered DIMM */ 79911924SDaniel.Beauregard@Sun.COM #define NX_BOOT_LOADER_MN_ISSUE 0xff00ffff 80011924SDaniel.Beauregard@Sun.COM #define NX_PEG_TUNE_MN_PRESENT 0x1 80111924SDaniel.Beauregard@Sun.COM #define NX_PEG_TUNE_CAPABILITY (UNM_CAM_RAM(0x02c)) 80211924SDaniel.Beauregard@Sun.COM 80311924SDaniel.Beauregard@Sun.COM #define UNM_ROM_LOCK_ID (UNM_CAM_RAM(0x100)) 80411924SDaniel.Beauregard@Sun.COM #define UNM_I2C_ROM_LOCK_ID (UNM_CAM_RAM(0x104)) 80511924SDaniel.Beauregard@Sun.COM #define UNM_PHY_LOCK_ID (UNM_CAM_RAM(0x120)) 80611924SDaniel.Beauregard@Sun.COM #define UNM_CRB_WIN_LOCK_ID (UNM_CAM_RAM(0x124)) 80711924SDaniel.Beauregard@Sun.COM #define CAM_RAM_DMA_WATCHDOG_CTRL 0x14 /* See dma_watchdog_ctrl_t */ 80811924SDaniel.Beauregard@Sun.COM #define UNM_EFUSE_CHIP_ID_HIGH (UNM_CAM_RAM(0x18)) 80911924SDaniel.Beauregard@Sun.COM #define UNM_EFUSE_CHIP_ID_LOW (UNM_CAM_RAM(0x1c)) 81011924SDaniel.Beauregard@Sun.COM 81111924SDaniel.Beauregard@Sun.COM #define UNM_FW_VERSION_MAJOR (UNM_CAM_RAM(0x150)) 81211924SDaniel.Beauregard@Sun.COM #define UNM_FW_VERSION_MINOR (UNM_CAM_RAM(0x154)) 81311924SDaniel.Beauregard@Sun.COM #define UNM_FW_VERSION_SUB (UNM_CAM_RAM(0x158)) 81411924SDaniel.Beauregard@Sun.COM #define UNM_TCP_FW_VERSION_MAJOR_ADDR (UNM_CAM_RAM(0x15c)) 81511924SDaniel.Beauregard@Sun.COM #define UNM_TCP_FW_VERSION_MINOR_ADDR (UNM_CAM_RAM(0x160)) 81611924SDaniel.Beauregard@Sun.COM #define UNM_TCP_FW_VERSION_SUB_ADDR (UNM_CAM_RAM(0x164)) 81711924SDaniel.Beauregard@Sun.COM #define UNM_FW_VERSION_BUILD (UNM_CAM_RAM(0x168)) 81811924SDaniel.Beauregard@Sun.COM #define UNM_PCIE_REG(reg) (UNM_CRB_PCIE + (reg)) 81911924SDaniel.Beauregard@Sun.COM 82011924SDaniel.Beauregard@Sun.COM #define PCIE_DCR (0x00d8) 82111924SDaniel.Beauregard@Sun.COM #define PCIE_DB_DATA2 (0x10070) 82211924SDaniel.Beauregard@Sun.COM #define PCIE_DB_CTRL (0x100a0) 82311924SDaniel.Beauregard@Sun.COM #define PCIE_DB_ADDR (0x100a4) 82411924SDaniel.Beauregard@Sun.COM #define PCIE_DB_DATA (0x100a8) 82511924SDaniel.Beauregard@Sun.COM #define PCIE_IMBUS_CONTROL (0x101b8) 82611924SDaniel.Beauregard@Sun.COM #define PCIE_SETUP_FUNCTION (0x12040) 82711924SDaniel.Beauregard@Sun.COM #define PCIE_SETUP_FUNCTION2 (0x12048) 82811924SDaniel.Beauregard@Sun.COM #define PCIE_TGT_SPLIT_CHICKEN (0x12080) 82911924SDaniel.Beauregard@Sun.COM #define PCIE_CHICKEN3 (0x120c8) 83011924SDaniel.Beauregard@Sun.COM #define PCIE_MAX_MASTER_SPLIT (0x14048) 83111924SDaniel.Beauregard@Sun.COM #define PCIE_MAX_DMA_XFER_SIZE (0x1404c) 83211924SDaniel.Beauregard@Sun.COM #define UNM_WOL_WAKE (UNM_CAM_RAM(0x180)) 83311924SDaniel.Beauregard@Sun.COM #define UNM_WOL_CONFIG_NV (UNM_CAM_RAM(0x184)) 83411924SDaniel.Beauregard@Sun.COM #define UNM_WOL_CONFIG (UNM_CAM_RAM(0x188)) 83511924SDaniel.Beauregard@Sun.COM #define UNM_PRE_WOL_RX_ENABLE (UNM_CAM_RAM(0x18c)) 83611924SDaniel.Beauregard@Sun.COM #define UNM_FW_RESET (UNM_CAM_RAM(0x138)) 83711924SDaniel.Beauregard@Sun.COM /* 83811924SDaniel.Beauregard@Sun.COM * Following define address space withing PCIX CRB space to talk with 83911924SDaniel.Beauregard@Sun.COM * devices on the storage side PCI bus. 84011924SDaniel.Beauregard@Sun.COM */ 84111924SDaniel.Beauregard@Sun.COM #define PCIX_PS_MEM_SPACE (0x90000) 84211924SDaniel.Beauregard@Sun.COM 84311924SDaniel.Beauregard@Sun.COM #define UNM_PCIX_PH_REG(reg) (UNM_CRB_PCIE + (reg)) 84411924SDaniel.Beauregard@Sun.COM 84511924SDaniel.Beauregard@Sun.COM /* 84611924SDaniel.Beauregard@Sun.COM * Configuration registers. These are the same offsets on both host and 84711924SDaniel.Beauregard@Sun.COM * storage side PCI blocks. 84811924SDaniel.Beauregard@Sun.COM */ 84911924SDaniel.Beauregard@Sun.COM #define PCIX_PS_OP_ADDR_LO (0x10000) /* Used for PS PCI Memory access */ 85011924SDaniel.Beauregard@Sun.COM #define PCIX_PS_OP_ADDR_HI (0x10004) /* via CRB (PS side only) */ 85111924SDaniel.Beauregard@Sun.COM 85211924SDaniel.Beauregard@Sun.COM #define PCIX_MS_WINDOW (0x10204) /* UNUSED */ 85311924SDaniel.Beauregard@Sun.COM 85411924SDaniel.Beauregard@Sun.COM #define PCIX_CRB_WINDOW (0x10210) 85511924SDaniel.Beauregard@Sun.COM #define PCIX_CRB_WINDOW_F0 (0x10210) 85611924SDaniel.Beauregard@Sun.COM #define PCIX_CRB_WINDOW_F1 (0x10230) 85711924SDaniel.Beauregard@Sun.COM #define PCIX_CRB_WINDOW_F2 (0x10250) 85811924SDaniel.Beauregard@Sun.COM #define PCIX_CRB_WINDOW_F3 (0x10270) 85911924SDaniel.Beauregard@Sun.COM #define PCIX_CRB_WINDOW_F4 (0x102ac) 86011924SDaniel.Beauregard@Sun.COM #define PCIX_CRB_WINDOW_F5 (0x102bc) 86111924SDaniel.Beauregard@Sun.COM #define PCIX_CRB_WINDOW_F6 (0x102cc) 86211924SDaniel.Beauregard@Sun.COM #define PCIX_CRB_WINDOW_F7 (0x102dc) 86311924SDaniel.Beauregard@Sun.COM #define PCIE_CRB_WINDOW_REG(func) (((func) < 4) ? \ 86411924SDaniel.Beauregard@Sun.COM (PCIX_CRB_WINDOW_F0 + (0x20 * (func))) : \ 86511924SDaniel.Beauregard@Sun.COM (PCIX_CRB_WINDOW_F4 + (0x10 * ((func) - 4)))) 86611924SDaniel.Beauregard@Sun.COM 86711924SDaniel.Beauregard@Sun.COM #define PCIX_MN_WINDOW (0x10200) 86811924SDaniel.Beauregard@Sun.COM #define PCIX_MN_WINDOW_F0 (0x10200) 86911924SDaniel.Beauregard@Sun.COM #define PCIX_MN_WINDOW_F1 (0x10220) 87011924SDaniel.Beauregard@Sun.COM #define PCIX_MN_WINDOW_F2 (0x10240) 87111924SDaniel.Beauregard@Sun.COM #define PCIX_MN_WINDOW_F3 (0x10260) 87211924SDaniel.Beauregard@Sun.COM #define PCIX_MN_WINDOW_F4 (0x102a0) 87311924SDaniel.Beauregard@Sun.COM #define PCIX_MN_WINDOW_F5 (0x102b0) 87411924SDaniel.Beauregard@Sun.COM #define PCIX_MN_WINDOW_F6 (0x102c0) 87511924SDaniel.Beauregard@Sun.COM #define PCIX_MN_WINDOW_F7 (0x102d0) 87611924SDaniel.Beauregard@Sun.COM #define PCIE_MN_WINDOW_REG(func) (((func) < 4) ? \ 87711924SDaniel.Beauregard@Sun.COM (PCIX_MN_WINDOW_F0 + (0x20 * (func))) : \ 87811924SDaniel.Beauregard@Sun.COM (PCIX_MN_WINDOW_F4 + (0x10 * ((func) - 4)))) 87911924SDaniel.Beauregard@Sun.COM 88011924SDaniel.Beauregard@Sun.COM #define PCIX_SN_WINDOW (0x10208) 88111924SDaniel.Beauregard@Sun.COM #define PCIX_SN_WINDOW_F0 (0x10208) 88211924SDaniel.Beauregard@Sun.COM #define PCIX_SN_WINDOW_F1 (0x10228) 88311924SDaniel.Beauregard@Sun.COM #define PCIX_SN_WINDOW_F2 (0x10248) 88411924SDaniel.Beauregard@Sun.COM #define PCIX_SN_WINDOW_F3 (0x10268) 88511924SDaniel.Beauregard@Sun.COM #define PCIX_SN_WINDOW_F4 (0x102a8) 88611924SDaniel.Beauregard@Sun.COM #define PCIX_SN_WINDOW_F5 (0x102b8) 88711924SDaniel.Beauregard@Sun.COM #define PCIX_SN_WINDOW_F6 (0x102c8) 88811924SDaniel.Beauregard@Sun.COM #define PCIX_SN_WINDOW_F7 (0x102d8) 88911924SDaniel.Beauregard@Sun.COM #define PCIE_SN_WINDOW_REG(func) (((func) < 4) ? \ 89011924SDaniel.Beauregard@Sun.COM (PCIX_SN_WINDOW_F0 + (0x20 * (func))) : \ 89111924SDaniel.Beauregard@Sun.COM (PCIX_SN_WINDOW_F4 + (0x10 * ((func) - 4)))) 89211924SDaniel.Beauregard@Sun.COM 89311924SDaniel.Beauregard@Sun.COM #define UNM_PCIX_PS_REG(reg) (UNM_CRB_PCIX_MD + (reg)) 89411924SDaniel.Beauregard@Sun.COM #define UNM_PCIX_PS2_REG(reg) (UNM_CRB_PCIE2 + (reg)) 89511924SDaniel.Beauregard@Sun.COM #define MANAGEMENT_COMMAND_REG (UNM_CRB_PCIE + (4)) 89611924SDaniel.Beauregard@Sun.COM 89711924SDaniel.Beauregard@Sun.COM #define UNM_PH_INT_MASK (UNM_CRB_PCIE + PCIX_INT_MASK) 89811924SDaniel.Beauregard@Sun.COM 89911924SDaniel.Beauregard@Sun.COM /* 90011924SDaniel.Beauregard@Sun.COM * Definitions relating to access/control of the I2Q h/w block. 90111924SDaniel.Beauregard@Sun.COM */ 90211924SDaniel.Beauregard@Sun.COM /* 90311924SDaniel.Beauregard@Sun.COM * Configuration registers. 90411924SDaniel.Beauregard@Sun.COM */ 90511924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_CONFIG (UNM_CRB_I2Q + 0x00000) 90611924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_ENA_PCI_LO (UNM_CRB_I2Q + 0x00010) 90711924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_ENA_PCI_HI (UNM_CRB_I2Q + 0x00014) 90811924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_ENA_CASPER_LO (UNM_CRB_I2Q + 0x00018) 90911924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_ENA_CASPER_HI (UNM_CRB_I2Q + 0x0001c) 91011924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_ENA_QM_LO (UNM_CRB_I2Q + 0x00020) 91111924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_ENA_QM_HI (UNM_CRB_I2Q + 0x00024) 91211924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_CLR_PCI_LO (UNM_CRB_I2Q + 0x00030) 91311924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_CLR_PCI_HI (UNM_CRB_I2Q + 0x00034) 91411924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_CLR_CASPER_LO (UNM_CRB_I2Q + 0x00038) 91511924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_CLR_CASPER_HI (UNM_CRB_I2Q + 0x0003c) 91611924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_MSG_HDR_LO(I) (UNM_CRB_I2Q + 0x00100 + (I) * 0x8) 91711924SDaniel.Beauregard@Sun.COM #define UNM_I2Q_MSG_HDR_HI(I) (UNM_CRB_I2Q + 0x00104 + (I) * 0x8) 91811924SDaniel.Beauregard@Sun.COM 91911924SDaniel.Beauregard@Sun.COM #ifdef PCIX 92011924SDaniel.Beauregard@Sun.COM #define UNM_DMA_BASE(U) (UNM_CRB_PCIX_HOST + 0x20000 + ((U) << 16)) 92111924SDaniel.Beauregard@Sun.COM #else 92211924SDaniel.Beauregard@Sun.COM #define UNM_DMA_BASE(U) (UNM_CRB_PCIX_MD + 0x20000 + ((U) << 6)) 92311924SDaniel.Beauregard@Sun.COM #endif 92411924SDaniel.Beauregard@Sun.COM #define UNM_DMA_COMMAND(U) (UNM_DMA_BASE(U) + 0x00008) 92511924SDaniel.Beauregard@Sun.COM 92611924SDaniel.Beauregard@Sun.COM #define PCIE_SEM2_LOCK (0x1c010) /* Flash lock */ 92711924SDaniel.Beauregard@Sun.COM #define PCIE_SEM2_UNLOCK (0x1c014) /* Flash unlock */ 92811924SDaniel.Beauregard@Sun.COM #define PCIE_SEM3_LOCK (0x1c018) /* Phy lock */ 92911924SDaniel.Beauregard@Sun.COM #define PCIE_SEM3_UNLOCK (0x1c01c) /* Phy unlock */ 93011924SDaniel.Beauregard@Sun.COM #define PCIE_SEM4_LOCK (0x1c020) /* I2C lock */ 93111924SDaniel.Beauregard@Sun.COM #define PCIE_SEM4_UNLOCK (0x1c024) /* I2C unlock */ 93211924SDaniel.Beauregard@Sun.COM #define PCIE_SEM5_LOCK (0x1c028) /* API lock */ 93311924SDaniel.Beauregard@Sun.COM #define PCIE_SEM5_UNLOCK (0x1c02c) /* API unlock */ 93411924SDaniel.Beauregard@Sun.COM #define PCIE_SEM6_LOCK (0x1c030) /* sw lock */ 93511924SDaniel.Beauregard@Sun.COM #define PCIE_SEM6_UNLOCK (0x1c034) /* sw unlock */ 93611924SDaniel.Beauregard@Sun.COM #define PCIE_SEM7_LOCK (0x1c038) /* crb win lock */ 93711924SDaniel.Beauregard@Sun.COM #define PCIE_SEM7_UNLOCK (0x1c03c) /* crbwin unlock */ 93811924SDaniel.Beauregard@Sun.COM 93911924SDaniel.Beauregard@Sun.COM #define PCIE_PS_STRAP_RESET (0x18000) 94011924SDaniel.Beauregard@Sun.COM 94111924SDaniel.Beauregard@Sun.COM #define M25P_INSTR_WREN 0x06 94211924SDaniel.Beauregard@Sun.COM #define M25P_INSTR_RDSR 0x05 94311924SDaniel.Beauregard@Sun.COM #define M25P_INSTR_PP 0x02 94411924SDaniel.Beauregard@Sun.COM #define M25P_INSTR_SE 0xd8 94511924SDaniel.Beauregard@Sun.COM #define CAM_RAM_P2I_ENABLE 0xc 94611924SDaniel.Beauregard@Sun.COM #define CAM_RAM_P2D_ENABLE 0x8 94711924SDaniel.Beauregard@Sun.COM #define PCIX_IMBTAG (0x18004) 94811924SDaniel.Beauregard@Sun.COM 94911924SDaniel.Beauregard@Sun.COM #define CAM_RAM_PEG_ENABLES 0x4 95011924SDaniel.Beauregard@Sun.COM 95111924SDaniel.Beauregard@Sun.COM /* 95211924SDaniel.Beauregard@Sun.COM * The PCI VendorID and DeviceID for our board. 95311924SDaniel.Beauregard@Sun.COM */ 95411924SDaniel.Beauregard@Sun.COM #define PCI_VENDOR_ID_NX8021 0x4040 95511924SDaniel.Beauregard@Sun.COM #define PCI_DEVICE_ID_NX8021_FC 0x0101 95611924SDaniel.Beauregard@Sun.COM 95711924SDaniel.Beauregard@Sun.COM /* ISP 3031 related declarations */ 95811924SDaniel.Beauregard@Sun.COM 95911924SDaniel.Beauregard@Sun.COM #define NX_MSIX_MEM_REGION_THRESHOLD 0x2000000 96011924SDaniel.Beauregard@Sun.COM #define UNM_MSIX_TBL_SPACE 8192 96111924SDaniel.Beauregard@Sun.COM #define UNM_PCI_REG_MSIX_TBL 0x44 96211924SDaniel.Beauregard@Sun.COM #define NX_PCI_MSIX_CONTROL 0x40 96311924SDaniel.Beauregard@Sun.COM 96411924SDaniel.Beauregard@Sun.COM typedef struct { 96511924SDaniel.Beauregard@Sun.COM uint32_t valid; 96611924SDaniel.Beauregard@Sun.COM uint32_t start_128M; 96711924SDaniel.Beauregard@Sun.COM uint32_t end_128M; 96811924SDaniel.Beauregard@Sun.COM uint32_t start_2M; 96911924SDaniel.Beauregard@Sun.COM } crb_128M_2M_sub_block_map_t; 97011924SDaniel.Beauregard@Sun.COM 97111924SDaniel.Beauregard@Sun.COM typedef struct { 97211924SDaniel.Beauregard@Sun.COM crb_128M_2M_sub_block_map_t sub_block[16]; 97311924SDaniel.Beauregard@Sun.COM } crb_128M_2M_block_map_t; 97411924SDaniel.Beauregard@Sun.COM 97511924SDaniel.Beauregard@Sun.COM struct crb_addr_pair { 97611924SDaniel.Beauregard@Sun.COM uint32_t addr; 97711924SDaniel.Beauregard@Sun.COM uint32_t data; 97811924SDaniel.Beauregard@Sun.COM }; 97911924SDaniel.Beauregard@Sun.COM 98011924SDaniel.Beauregard@Sun.COM #define ADDR_ERROR ((unsigned long) 0xffffffff) 98111924SDaniel.Beauregard@Sun.COM #define MAX_CTL_CHECK 1000 98211924SDaniel.Beauregard@Sun.COM 98311924SDaniel.Beauregard@Sun.COM /* 98411924SDaniel.Beauregard@Sun.COM * ************************************************************************ 98511924SDaniel.Beauregard@Sun.COM * PCI related defines. 98611924SDaniel.Beauregard@Sun.COM * ************************************************************************ 98711924SDaniel.Beauregard@Sun.COM */ 98811924SDaniel.Beauregard@Sun.COM 98911924SDaniel.Beauregard@Sun.COM /* 99011924SDaniel.Beauregard@Sun.COM * Interrupt related defines. 99111924SDaniel.Beauregard@Sun.COM */ 99211924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_STATUS (0x10118) 99311924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_STATUS_F1 (0x10160) 99411924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_STATUS_F2 (0x10164) 99511924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_STATUS_F3 (0x10168) 99611924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_STATUS_F4 (0x10360) 99711924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_STATUS_F5 (0x10364) 99811924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_STATUS_F6 (0x10368) 99911924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_STATUS_F7 (0x1036c) 100011924SDaniel.Beauregard@Sun.COM 100111924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_MASK (0x10128) 100211924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_MASK_F1 (0x10170) 100311924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_MASK_F2 (0x10174) 100411924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_MASK_F3 (0x10178) 100511924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_MASK_F4 (0x10370) 100611924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_MASK_F5 (0x10374) 100711924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_MASK_F6 (0x10378) 100811924SDaniel.Beauregard@Sun.COM #define PCIX_TARGET_MASK_F7 (0x1037c) 100911924SDaniel.Beauregard@Sun.COM 101011924SDaniel.Beauregard@Sun.COM /* 101111924SDaniel.Beauregard@Sun.COM * Message Signaled Interrupts 101211924SDaniel.Beauregard@Sun.COM */ 101311924SDaniel.Beauregard@Sun.COM #define PCIX_MSI_F0 (0x13000) 101411924SDaniel.Beauregard@Sun.COM #define PCIX_MSI_F1 (0x13004) 101511924SDaniel.Beauregard@Sun.COM #define PCIX_MSI_F2 (0x13008) 101611924SDaniel.Beauregard@Sun.COM #define PCIX_MSI_F3 (0x1300c) 101711924SDaniel.Beauregard@Sun.COM #define PCIX_MSI_F4 (0x13010) 101811924SDaniel.Beauregard@Sun.COM #define PCIX_MSI_F5 (0x13014) 101911924SDaniel.Beauregard@Sun.COM #define PCIX_MSI_F6 (0x13018) 102011924SDaniel.Beauregard@Sun.COM #define PCIX_MSI_F7 (0x1301c) 102111924SDaniel.Beauregard@Sun.COM #define PCIX_MSI_F(FUNC) (0x13000 +((FUNC) * 4)) 102211924SDaniel.Beauregard@Sun.COM 102311924SDaniel.Beauregard@Sun.COM /* 102411924SDaniel.Beauregard@Sun.COM * 102511924SDaniel.Beauregard@Sun.COM */ 102611924SDaniel.Beauregard@Sun.COM #define PCIX_INT_VECTOR (0x10100) 102711924SDaniel.Beauregard@Sun.COM #define PCIX_INT_MASK (0x10104) 102811924SDaniel.Beauregard@Sun.COM 102911924SDaniel.Beauregard@Sun.COM /* 103011924SDaniel.Beauregard@Sun.COM * Interrupt state machine and other bits. 103111924SDaniel.Beauregard@Sun.COM */ 103211924SDaniel.Beauregard@Sun.COM #define PCIE_MISCCFG_RC (0x1206c) 103311924SDaniel.Beauregard@Sun.COM 103411924SDaniel.Beauregard@Sun.COM 103511924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_STATUS (UNM_PCIX_PS_REG(PCIX_TARGET_STATUS)) 103611924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_STATUS_F1 (UNM_PCIX_PS_REG(PCIX_TARGET_STATUS_F1)) 103711924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_STATUS_F2 (UNM_PCIX_PS_REG(PCIX_TARGET_STATUS_F2)) 103811924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_STATUS_F3 (UNM_PCIX_PS_REG(PCIX_TARGET_STATUS_F3)) 103911924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_STATUS_F4 (UNM_PCIX_PS_REG(PCIX_TARGET_STATUS_F4)) 104011924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_STATUS_F5 (UNM_PCIX_PS_REG(PCIX_TARGET_STATUS_F5)) 104111924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_STATUS_F6 (UNM_PCIX_PS_REG(PCIX_TARGET_STATUS_F6)) 104211924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_STATUS_F7 (UNM_PCIX_PS_REG(PCIX_TARGET_STATUS_F7)) 104311924SDaniel.Beauregard@Sun.COM 104411924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_MASK (UNM_PCIX_PS_REG(PCIX_TARGET_MASK)) 104511924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_MASK_F1 (UNM_PCIX_PS_REG(PCIX_TARGET_MASK_F1)) 104611924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_MASK_F2 (UNM_PCIX_PS_REG(PCIX_TARGET_MASK_F2)) 104711924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_MASK_F3 (UNM_PCIX_PS_REG(PCIX_TARGET_MASK_F3)) 104811924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_MASK_F4 (UNM_PCIX_PS_REG(PCIX_TARGET_MASK_F4)) 104911924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_MASK_F5 (UNM_PCIX_PS_REG(PCIX_TARGET_MASK_F5)) 105011924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_MASK_F6 (UNM_PCIX_PS_REG(PCIX_TARGET_MASK_F6)) 105111924SDaniel.Beauregard@Sun.COM #define ISR_INT_TARGET_MASK_F7 (UNM_PCIX_PS_REG(PCIX_TARGET_MASK_F7)) 105211924SDaniel.Beauregard@Sun.COM 105311924SDaniel.Beauregard@Sun.COM #define ISR_INT_VECTOR (UNM_PCIX_PS_REG(PCIX_INT_VECTOR)) 105411924SDaniel.Beauregard@Sun.COM #define ISR_INT_MASK (UNM_PCIX_PS_REG(PCIX_INT_MASK)) 105511924SDaniel.Beauregard@Sun.COM #define ISR_INT_STATE_REG (UNM_PCIX_PS_REG(PCIE_MISCCFG_RC)) 105611924SDaniel.Beauregard@Sun.COM 105711924SDaniel.Beauregard@Sun.COM #define ISR_MSI_INT_TRIGGER(FUNC) (UNM_PCIX_PS_REG(PCIX_MSI_F(FUNC))) 105811924SDaniel.Beauregard@Sun.COM 105911924SDaniel.Beauregard@Sun.COM 106011924SDaniel.Beauregard@Sun.COM #define ISR_IS_LEGACY_INTR_IDLE(VAL) (((VAL) & 0x300) == 0) 106111924SDaniel.Beauregard@Sun.COM #define ISR_IS_LEGACY_INTR_TRIGGERED(VAL) (((VAL) & 0x300) == 0x200) 106211924SDaniel.Beauregard@Sun.COM 106311924SDaniel.Beauregard@Sun.COM /* 106411924SDaniel.Beauregard@Sun.COM * PCI Interrupt Vector Values. 106511924SDaniel.Beauregard@Sun.COM */ 106611924SDaniel.Beauregard@Sun.COM #define PCIX_INT_VECTOR_BIT_F0 0x0080 106711924SDaniel.Beauregard@Sun.COM #define PCIX_INT_VECTOR_BIT_F1 0x0100 106811924SDaniel.Beauregard@Sun.COM #define PCIX_INT_VECTOR_BIT_F2 0x0200 106911924SDaniel.Beauregard@Sun.COM #define PCIX_INT_VECTOR_BIT_F3 0x0400 107011924SDaniel.Beauregard@Sun.COM #define PCIX_INT_VECTOR_BIT_F4 0x0800 107111924SDaniel.Beauregard@Sun.COM #define PCIX_INT_VECTOR_BIT_F5 0x1000 107211924SDaniel.Beauregard@Sun.COM #define PCIX_INT_VECTOR_BIT_F6 0x2000 107311924SDaniel.Beauregard@Sun.COM #define PCIX_INT_VECTOR_BIT_F7 0x4000 107411924SDaniel.Beauregard@Sun.COM 107511924SDaniel.Beauregard@Sun.COM #define NX_LEGACY_INTR_CONFIG \ 107611924SDaniel.Beauregard@Sun.COM { \ 107711924SDaniel.Beauregard@Sun.COM { \ 107811924SDaniel.Beauregard@Sun.COM .int_vec_bit = PCIX_INT_VECTOR_BIT_F0, \ 107911924SDaniel.Beauregard@Sun.COM .tgt_status_reg = ISR_INT_TARGET_STATUS, \ 108011924SDaniel.Beauregard@Sun.COM .tgt_mask_reg = ISR_INT_TARGET_MASK, \ 108111924SDaniel.Beauregard@Sun.COM .pci_int_reg = ISR_MSI_INT_TRIGGER(0) }, \ 108211924SDaniel.Beauregard@Sun.COM \ 108311924SDaniel.Beauregard@Sun.COM { \ 108411924SDaniel.Beauregard@Sun.COM .int_vec_bit = PCIX_INT_VECTOR_BIT_F1, \ 108511924SDaniel.Beauregard@Sun.COM .tgt_status_reg = ISR_INT_TARGET_STATUS_F1, \ 108611924SDaniel.Beauregard@Sun.COM .tgt_mask_reg = ISR_INT_TARGET_MASK_F1, \ 108711924SDaniel.Beauregard@Sun.COM .pci_int_reg = ISR_MSI_INT_TRIGGER(1) }, \ 108811924SDaniel.Beauregard@Sun.COM \ 108911924SDaniel.Beauregard@Sun.COM { \ 109011924SDaniel.Beauregard@Sun.COM .int_vec_bit = PCIX_INT_VECTOR_BIT_F2, \ 109111924SDaniel.Beauregard@Sun.COM .tgt_status_reg = ISR_INT_TARGET_STATUS_F2, \ 109211924SDaniel.Beauregard@Sun.COM .tgt_mask_reg = ISR_INT_TARGET_MASK_F2, \ 109311924SDaniel.Beauregard@Sun.COM .pci_int_reg = ISR_MSI_INT_TRIGGER(2) }, \ 109411924SDaniel.Beauregard@Sun.COM \ 109511924SDaniel.Beauregard@Sun.COM { \ 109611924SDaniel.Beauregard@Sun.COM .int_vec_bit = PCIX_INT_VECTOR_BIT_F3, \ 109711924SDaniel.Beauregard@Sun.COM .tgt_status_reg = ISR_INT_TARGET_STATUS_F3, \ 109811924SDaniel.Beauregard@Sun.COM .tgt_mask_reg = ISR_INT_TARGET_MASK_F3, \ 109911924SDaniel.Beauregard@Sun.COM .pci_int_reg = ISR_MSI_INT_TRIGGER(3) }, \ 110011924SDaniel.Beauregard@Sun.COM \ 110111924SDaniel.Beauregard@Sun.COM { \ 110211924SDaniel.Beauregard@Sun.COM .int_vec_bit = PCIX_INT_VECTOR_BIT_F4, \ 110311924SDaniel.Beauregard@Sun.COM .tgt_status_reg = ISR_INT_TARGET_STATUS_F4, \ 110411924SDaniel.Beauregard@Sun.COM .tgt_mask_reg = ISR_INT_TARGET_MASK_F4, \ 110511924SDaniel.Beauregard@Sun.COM .pci_int_reg = ISR_MSI_INT_TRIGGER(4) }, \ 110611924SDaniel.Beauregard@Sun.COM \ 110711924SDaniel.Beauregard@Sun.COM { \ 110811924SDaniel.Beauregard@Sun.COM .int_vec_bit = PCIX_INT_VECTOR_BIT_F5, \ 110911924SDaniel.Beauregard@Sun.COM .tgt_status_reg = ISR_INT_TARGET_STATUS_F5, \ 111011924SDaniel.Beauregard@Sun.COM .tgt_mask_reg = ISR_INT_TARGET_MASK_F5, \ 111111924SDaniel.Beauregard@Sun.COM .pci_int_reg = ISR_MSI_INT_TRIGGER(5) }, \ 111211924SDaniel.Beauregard@Sun.COM \ 111311924SDaniel.Beauregard@Sun.COM { \ 111411924SDaniel.Beauregard@Sun.COM .int_vec_bit = PCIX_INT_VECTOR_BIT_F6, \ 111511924SDaniel.Beauregard@Sun.COM .tgt_status_reg = ISR_INT_TARGET_STATUS_F6, \ 111611924SDaniel.Beauregard@Sun.COM .tgt_mask_reg = ISR_INT_TARGET_MASK_F6, \ 111711924SDaniel.Beauregard@Sun.COM .pci_int_reg = ISR_MSI_INT_TRIGGER(6) }, \ 111811924SDaniel.Beauregard@Sun.COM \ 111911924SDaniel.Beauregard@Sun.COM { \ 112011924SDaniel.Beauregard@Sun.COM .int_vec_bit = PCIX_INT_VECTOR_BIT_F7, \ 112111924SDaniel.Beauregard@Sun.COM .tgt_status_reg = ISR_INT_TARGET_STATUS_F7, \ 112211924SDaniel.Beauregard@Sun.COM .tgt_mask_reg = ISR_INT_TARGET_MASK_F7, \ 112311924SDaniel.Beauregard@Sun.COM .pci_int_reg = ISR_MSI_INT_TRIGGER(7) }, \ 112411924SDaniel.Beauregard@Sun.COM } 112511924SDaniel.Beauregard@Sun.COM 112611924SDaniel.Beauregard@Sun.COM #define BOOTLD_START 0x10000 112711924SDaniel.Beauregard@Sun.COM #define IMAGE_START 0x43000 112811924SDaniel.Beauregard@Sun.COM 112911924SDaniel.Beauregard@Sun.COM /* Magic number to let user know flash is programmed */ 113011924SDaniel.Beauregard@Sun.COM #define UNM_BDINFO_MAGIC 0x12345678 113111924SDaniel.Beauregard@Sun.COM #define FW_SIZE_OFFSET 0x3e840c 113211924SDaniel.Beauregard@Sun.COM 113311924SDaniel.Beauregard@Sun.COM #define PCI_CAP_ID_GEN 0x10 113411924SDaniel.Beauregard@Sun.COM #define PCI_CAP_ID_PCI_E 0x10 /* PCI Express supported */ 113511924SDaniel.Beauregard@Sun.COM #define PCI_CAP_ID_EXP 0x10 /* PCI Express */ 113611924SDaniel.Beauregard@Sun.COM #define PCI_EXP_LNKSTA 18 /* Link Status */ 113711924SDaniel.Beauregard@Sun.COM #define MAX_CRB_XFORM 60 113811924SDaniel.Beauregard@Sun.COM #define MTU_FUDGE_FACTOR 100 113911924SDaniel.Beauregard@Sun.COM 114011924SDaniel.Beauregard@Sun.COM #define crb_addr_transform(name) \ 114111924SDaniel.Beauregard@Sun.COM (crb_addr_xform[UNM_HW_PX_MAP_CRB_##name] = \ 114211924SDaniel.Beauregard@Sun.COM UNM_HW_CRB_HUB_AGT_ADR_##name << 20) 114311924SDaniel.Beauregard@Sun.COM 114411924SDaniel.Beauregard@Sun.COM #define MASK(n) ((1ULL << (n)) - 1) 114511924SDaniel.Beauregard@Sun.COM #define MN_WIN(addr) (((addr & 0x1fc0000) >> 1) | ((addr >> 25) & 0x3ff)) 114611924SDaniel.Beauregard@Sun.COM /* 64K? */ 114711924SDaniel.Beauregard@Sun.COM #define OCM_WIN(addr) (((addr & 0x1ff0000) >> 1) | ((addr >> 25) & 0x3ff)) 114811924SDaniel.Beauregard@Sun.COM 114911924SDaniel.Beauregard@Sun.COM #define MS_WIN(addr) (addr & 0x0ffc0000) 115011924SDaniel.Beauregard@Sun.COM #define UNM_PCI_MN_2M (0) 115111924SDaniel.Beauregard@Sun.COM #define UNM_PCI_MS_2M (0x80000) 115211924SDaniel.Beauregard@Sun.COM #define UNM_PCI_OCM0_2M (0xc0000) 115311924SDaniel.Beauregard@Sun.COM #define VALID_OCM_ADDR(addr) (((addr) & 0x3f800) != 0x3f800) 115411924SDaniel.Beauregard@Sun.COM #define GET_MEM_OFFS_2M(addr) (addr & MASK(18)) 115511924SDaniel.Beauregard@Sun.COM 115611924SDaniel.Beauregard@Sun.COM #define UNM_BOARDTYPE 0x4008 115711924SDaniel.Beauregard@Sun.COM #define UNM_BOARDNUM 0x400c 115811924SDaniel.Beauregard@Sun.COM #define UNM_CHIPNUM 0x4010 115911924SDaniel.Beauregard@Sun.COM 116011924SDaniel.Beauregard@Sun.COM /* CRB window related */ 116111924SDaniel.Beauregard@Sun.COM #define CRB_BLK(off) ((off >> 20) & 0x3f) 116211924SDaniel.Beauregard@Sun.COM #define CRB_SUBBLK(off) ((off >> 16) & 0xf) 116311924SDaniel.Beauregard@Sun.COM #define CRB_WINDOW_2M (0x130060) 116411924SDaniel.Beauregard@Sun.COM #define UNM_PCI_CAMQM_2M_END (0x04800800UL) 116511924SDaniel.Beauregard@Sun.COM #define CRB_HI(off) ((crb_hub_agt[CRB_BLK(off)] << 20) | \ 116611924SDaniel.Beauregard@Sun.COM ((off) & 0xf0000)) 116711924SDaniel.Beauregard@Sun.COM #define UNM_PCI_CAMQM_2M_BASE (0x000ff800UL) 116811924SDaniel.Beauregard@Sun.COM #define CRB_INDIRECT_2M (0x1e0000UL) 116911924SDaniel.Beauregard@Sun.COM /* #define ADDR_ERROR ((unsigned long ) 0xffffffff) */ 117011924SDaniel.Beauregard@Sun.COM 117111924SDaniel.Beauregard@Sun.COM /* PCI Windowing for DDR regions. */ 117211924SDaniel.Beauregard@Sun.COM #define QL_8021_ADDR_IN_RANGE(addr, low, high) \ 117311924SDaniel.Beauregard@Sun.COM (((addr) <= (high)) && ((addr) >= (low))) 117411924SDaniel.Beauregard@Sun.COM 117511924SDaniel.Beauregard@Sun.COM #define CRB_WIN_LOCK_TIMEOUT 100000000 117611924SDaniel.Beauregard@Sun.COM #define ROM_LOCK_TIMEOUT 100 117711924SDaniel.Beauregard@Sun.COM #define ROM_MAX_TIMEOUT 100 117811924SDaniel.Beauregard@Sun.COM #define IDC_LOCK_TIMEOUT 100000000 117911924SDaniel.Beauregard@Sun.COM 118011924SDaniel.Beauregard@Sun.COM /* 118111924SDaniel.Beauregard@Sun.COM * IDC parameters are defined in �user area� in the flash 118211924SDaniel.Beauregard@Sun.COM */ 118311924SDaniel.Beauregard@Sun.COM #define ROM_DEV_INIT_TIMEOUT 0x3e885c 118411924SDaniel.Beauregard@Sun.COM #define ROM_DRV_RESET_ACK_TIMEOUT 0x3e8860 118511924SDaniel.Beauregard@Sun.COM 118611924SDaniel.Beauregard@Sun.COM /* 118711924SDaniel.Beauregard@Sun.COM * Global Data in ql_nx.c source file. 118811924SDaniel.Beauregard@Sun.COM */ 118911924SDaniel.Beauregard@Sun.COM 119011924SDaniel.Beauregard@Sun.COM /* 119111924SDaniel.Beauregard@Sun.COM * Global Function Prototypes in ql_nx.c source file. 119211924SDaniel.Beauregard@Sun.COM */ 119311924SDaniel.Beauregard@Sun.COM void ql_8021_reset_chip(ql_adapter_state_t *); 119411924SDaniel.Beauregard@Sun.COM int ql_8021_load_risc(ql_adapter_state_t *); 119511924SDaniel.Beauregard@Sun.COM void ql_8021_clr_hw_intr(ql_adapter_state_t *); 119611924SDaniel.Beauregard@Sun.COM void ql_8021_clr_fw_intr(ql_adapter_state_t *); 119711924SDaniel.Beauregard@Sun.COM void ql_8021_enable_intrs(ql_adapter_state_t *); 119811924SDaniel.Beauregard@Sun.COM void ql_8021_disable_intrs(ql_adapter_state_t *); 119911924SDaniel.Beauregard@Sun.COM void ql_8021_update_crb_int_ptr(ql_adapter_state_t *); 120011924SDaniel.Beauregard@Sun.COM int ql_8021_rom_read(ql_adapter_state_t *, uint32_t, uint32_t *); 120111924SDaniel.Beauregard@Sun.COM int ql_8021_rom_write(ql_adapter_state_t *, uint32_t, uint32_t); 120211924SDaniel.Beauregard@Sun.COM int ql_8021_rom_erase(ql_adapter_state_t *, uint32_t); 120311924SDaniel.Beauregard@Sun.COM int ql_8021_rom_wrsr(ql_adapter_state_t *, uint32_t); 120411924SDaniel.Beauregard@Sun.COM void ql_8021_set_drv_active(ql_adapter_state_t *); 120511924SDaniel.Beauregard@Sun.COM void ql_8021_clr_drv_active(ql_adapter_state_t *); 120611924SDaniel.Beauregard@Sun.COM uint32_t ql_8021_idc_handler(ql_adapter_state_t *); 120711924SDaniel.Beauregard@Sun.COM 120811924SDaniel.Beauregard@Sun.COM #ifdef __cplusplus 120911924SDaniel.Beauregard@Sun.COM } 121011924SDaniel.Beauregard@Sun.COM #endif 121111924SDaniel.Beauregard@Sun.COM 121211924SDaniel.Beauregard@Sun.COM #endif /* _QL_NX_H */ 1213