944 lines
36 KiB
C
944 lines
36 KiB
C
/*
|
|
* nvlink-hw.h:
|
|
* This header contains register definitions and HW related macros for the
|
|
* NVLINK driver stack.
|
|
*
|
|
* Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms and conditions of the GNU General Public License,
|
|
* version 2, as published by the Free Software Foundation.
|
|
*
|
|
* This program is distributed in the hope 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, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef NVLINK_REGS_H
|
|
#define NVLINK_REGS_H
|
|
|
|
/* NVLINK APERTURES - START */
|
|
|
|
|
|
/* TIOCTRL MACROS */
|
|
/* TODO: Confirm this delay is correct for Tegra */
|
|
#define NVLW_POST_RESET_DELAY_US 8
|
|
|
|
/* TIOCTRL Registers */
|
|
#define NVLW_RESET 0x140
|
|
#define NVLW_RESET_LINKRESET 8
|
|
|
|
#define NVLW_DEBUG_RESET 0x144
|
|
#define NVLW_DEBUG_RESET_LINK 0
|
|
#define NVLW_DEBUG_RESET_COMMON 31
|
|
|
|
#define NVLW_COMMON_INTR_0_MASK 0x220
|
|
#define NVLW_COMMON_INTR_0_MASK_FATAL 0
|
|
|
|
#define NVLW_COMMON_INTR_1_MASK 0x228
|
|
#define NVLW_COMMON_INTR_1_MASK_NONFATAL 1
|
|
#define NVLW_COMMON_INTR_1_MASK_CORRECTABLE 2
|
|
|
|
#define NVLW_COMMON_INTR_2_MASK 0x230
|
|
#define NVLW_COMMON_INTR_2_MASK_INTRA 3
|
|
#define NVLW_COMMON_INTR_2_MASK_INTRB 4
|
|
|
|
#define NVLW_LINK_INTR_0_MASK 0x240
|
|
#define NVLW_LINK_INTR_0_MASK_FATAL 0
|
|
|
|
#define NVLW_LINK_INTR_1_MASK 0x248
|
|
#define NVLW_LINK_INTR_1_MASK_NONFATAL 1
|
|
#define NVLW_LINK_INTR_1_MASK_CORRECTABLE 2
|
|
|
|
#define NVLW_LINK_INTR_2_MASK 0x250
|
|
#define NVLW_LINK_INTR_2_MASK_INTRA 3
|
|
#define NVLW_LINK_INTR_2_MASK_INTRB 4
|
|
|
|
|
|
/* NVLIPT Registers */
|
|
#define NVLIPT_INTR_CONTROL_COMMON 0x4b0
|
|
#define NVLIPT_INTR_CONTROL_COMMON_STALLENABLE 0
|
|
#define NVLIPT_INTR_CONTROL_COMMON_NOSTALLENABLE 1
|
|
|
|
#define NVLIPT_INTR_CONTROL_LINK0 0x4b4
|
|
#define NVLIPT_INTR_CONTROL_LINK0_STALLENABLE 0
|
|
#define NVLIPT_INTR_CONTROL_LINK0_NOSTALLENABLE 1
|
|
|
|
#define NVLIPT_ERR_UC_MASK_LINK0 0x528
|
|
#define NVLIPT_ERR_UC_MASK_LINK0_UCINTERNAL 22
|
|
|
|
#define NVLIPT_ERR_UC_SEVERITY_LINK0 0x52c
|
|
#define NVLIPT_ERR_UC_SEVERITY_LINK0_UCINTERNAL 22
|
|
|
|
#define NVLIPT_ERR_UC_FIRST_LINK0 0x530
|
|
|
|
#define NVLIPT_ERR_C_MASK_LINK0 0x53c
|
|
#define NVLIPT_ERR_C_MASK_LINK0_CINTERNAL 14
|
|
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0 0x524
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0_DLPROTOCOL 4
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0_DATAPOISONED 12
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0_FLOWCONTROL 13
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0_RESPONSETIMEOUT 14
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0_TARGETERROR 15
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0_UNEXPECTEDRESPONSE 16
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0_RECEIVEROVERFLOW 17
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0_MALFORMEDPACKET 18
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0_STOMPEDPACKETRECEIVED 19
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0_UNSUPPORTEDREQUEST 20
|
|
#define NVLIPT_ERR_UC_STATUS_LINK0_UCINTERNAL 22
|
|
|
|
#define NVLIPT_ERR_CONTROL_LINK0 0x544
|
|
#define NVLIPT_ERR_CONTROL_LINK0_CORRECTABLEENABLE 0
|
|
#define NVLIPT_ERR_CONTROL_LINK0_FATALENABLE 1
|
|
|
|
/* MINION Registers */
|
|
#define CMINION_FALCON_IRQSCLR 0x4
|
|
|
|
#define CMINION_FALCON_IRQSTAT 0x8
|
|
#define CMINION_FALCON_IRQSTAT_WDTMR 1
|
|
#define CMINION_FALCON_IRQSTAT_HALT 4
|
|
#define CMINION_FALCON_IRQSTAT_EXTERR 5
|
|
|
|
#define CMINION_FALCON_IRQMSET 0x10
|
|
#define CMINION_FALCON_IRQMSET_WDTMR 1
|
|
#define CMINION_FALCON_IRQMSET_HALT 4
|
|
#define CMINION_FALCON_IRQMSET_EXTERR 5
|
|
|
|
#define CMINION_FALCON_IRQMASK 0x18
|
|
|
|
#define CMINION_FALCON_IRQDEST 0x1c
|
|
#define CMINION_FALCON_IRQDEST_HOST_WDTMR 1
|
|
#define CMINION_FALCON_IRQDEST_HOST_HALT 4
|
|
#define CMINION_FALCON_IRQDEST_HOST_EXTERR 5
|
|
#define CMINION_FALCON_IRQDEST_TARGET_WDTMR 17
|
|
#define CMINION_FALCON_IRQDEST_TARGET_HALT 20
|
|
#define CMINION_FALCON_IRQDEST_TARGET_EXTERR 21
|
|
|
|
#define CMINION_FALCON_MAILBOX0 0x40
|
|
|
|
#define CMINION_FALCON_MAILBOX1 0x44
|
|
|
|
#define CMINION_FALCON_IDLESTATE 0x4c
|
|
|
|
#define CMINION_FALCON_CURCTX 0x50
|
|
|
|
#define CMINION_FALCON_NXTCTX 0x54
|
|
|
|
#define CMINION_FALCON_OS 0x80
|
|
#define CMINION_FALCON_OS_MINOR_VER_MASK 0xffff
|
|
#define CMINION_FALCON_OS_MINOR_VER_SHIFT 0
|
|
#define CMINION_FALCON_OS_MAJOR_VER_MASK 0xffff0000
|
|
#define CMINION_FALCON_OS_MAJOR_VER_SHIFT 16
|
|
|
|
#define CMINION_FALCON_DEBUG1 0x90
|
|
|
|
#define CMINION_FALCON_DEBUGINFO 0x94
|
|
|
|
#define CMINION_FALCON_ENGCTL 0xa4
|
|
|
|
#define CMINION_FALCON_CPUCTL 0x100
|
|
#define CMINION_FALCON_CPUCTL_STARTCPU 1
|
|
|
|
#define CMINION_FALCON_BOOTVEC 0x104
|
|
|
|
#define CMINION_FALCON_HWCFG 0x108
|
|
|
|
#define CMINION_FALCON_DMACTL 0x10c
|
|
#define CMINION_FALCON_DMACTL_DMEM_SCRUBBING 1
|
|
#define CMINION_FALCON_DMACTL_IMEM_SCRUBBING 2
|
|
|
|
#define CMINION_FALCON_TRACEIDX 0x148
|
|
#define CMINION_FALCON_TRACEIDX_IDX_F(v) ((v & 0xff) \
|
|
<< 0)
|
|
#define CMINION_FALCON_TRACEIDX_MAXIDX_V(r) ((r >> 16) \
|
|
& 0xff)
|
|
|
|
#define CMINION_FALCON_TRACEPC 0x14c
|
|
#define CMINION_FALCON_TRACEPC_PC_V(r) ((r >> 0) \
|
|
& 0xffffff)
|
|
|
|
#define CMINION_FALCON_IMEMC 0x180
|
|
#define CMINION_FALCON_IMEMC_BLK_MASK 0xff00
|
|
#define CMINION_FALCON_IMEMC_BLK_SHIFT 8
|
|
#define CMINION_FALCON_IMEMC_AINCW 24
|
|
#define CMINION_FALCON_IMEMC_AINCR 25
|
|
#define CMINION_FALCON_IMEMC_SECURE 28
|
|
|
|
#define CMINION_FALCON_IMEMD 0x184
|
|
|
|
#define CMINION_FALCON_IMEMT 0x188
|
|
|
|
#define CMINION_FALCON_DMEMC 0x1c0
|
|
#define CMINION_FALCON_DMEMC_AINCR 25
|
|
#define CMINION_FALCON_DMEMC_BLK_MASK 0xff00
|
|
#define CMINION_FALCON_DMEMC_BLK_SHIFT 8
|
|
#define CMINION_FALCON_DMEMC_AINCW 24
|
|
|
|
#define CMINION_FALCON_DMEMD 0x1c4
|
|
|
|
#define CMINION_FALCON_SCTL 0x240
|
|
#define CMINION_FALCON_SCTL_HSMODE 1
|
|
|
|
#define MINION_MINION_DEVICES 0x800
|
|
|
|
#define MINION_MINION_INTR 0x810
|
|
#define MINION_MINION_INTR_FATAL 0
|
|
#define MINION_MINION_INTR_NONFATAL 1
|
|
#define MINION_MINION_INTR_FALCON_STALL 2
|
|
#define MINION_MINION_INTR_FALCON_NOSTALL 3
|
|
#define MINION_MINION_INTR_LINK_V(x) (((x) >> 16) & 0xffff)
|
|
|
|
#define MINION_MINION_INTR_STALL_EN 0x818
|
|
#define MINION_MINION_INTR_STALL_EN_FATAL 0
|
|
#define MINION_MINION_INTR_STALL_EN_NONFATAL 1
|
|
#define MINION_MINION_INTR_STALL_EN_FALCON_STALL 2
|
|
#define MINION_MINION_INTR_STALL_EN_FALCON_NOSTALL 3
|
|
#define MINION_MINION_INTR_STALL_EN_LINK(x) (((x) & 0xffff) << 16)
|
|
#define MINION_MINION_INTR_STALL_EN_LINK_ENABLE_ALL 0x0000ffff
|
|
|
|
#define MINION_MINION_INTR_NONSTALL_EN 0x81c
|
|
|
|
#define MINION_MINION_STATUS 0x830
|
|
#define MINION_MINION_STATUS_STATUS_MASK 0xff
|
|
#define MINION_MINION_STATUS_STATUS_SHIFT 0
|
|
#define MINION_MINION_STATUS_STATUS_INIT 0
|
|
#define MINION_MINION_STATUS_STATUS_BOOT 1
|
|
|
|
#define MINION_MISC 0x8b0
|
|
|
|
#define MINION_NVLINK_DL_CMD 0x900
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_MASK 0xff
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_SHIFT 0
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_NOP 0
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITPHY 1
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_SWINTR 2
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITLANEENABLE 3
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITDLPL 4
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITRXTERM 5
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_LANEDISABLE 8
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_FASTLANEDISABLE 9
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_SETACMODE 10
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_CLRACMODE 11
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_LANESHUTDOWN 12
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_ENABLEPM 16
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_DISABLEPM 17
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_SAVESTATE 24
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_RESTORESTATE 25
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITPLL_0 32
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITPLL_1 33
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITPLL_2 34
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITPLL_3 35
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITPLL_4 36
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITPLL_5 37
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITPLL_6 38
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITPLL_7 39
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITPLL_8 40
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_INITPLL_9 41
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_CONFIGEOM 64
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_SETNEA 65
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_XAVIER_PLLOVERRIDE_ON 80
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_XAVIER_PLLOVERRIDE_OFF 81
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_XAVIER_CALIBRATEPLL 82
|
|
#define MINION_NVLINK_DL_CMD_COMMAND_ALWAYSFAULT 255
|
|
#define MINION_NVLINK_DL_CMD_FAULT 30
|
|
#define MINION_NVLINK_DL_CMD_READY 31
|
|
|
|
#define MINION_NVLINK_LINK_DL_STAT 0x980
|
|
|
|
#define MINION_NVLINK_LINK_INTR 0xa00
|
|
#define MINION_NVLINK_LINK_INTR_CODE_MASK 0xff
|
|
#define MINION_NVLINK_LINK_INTR_CODE_SHIFT 0
|
|
#define MINION_NVLINK_LINK_INTR_CODE_NA 0
|
|
#define MINION_NVLINK_LINK_INTR_CODE_SWREQ 1
|
|
#define MINION_NVLINK_LINK_INTR_CODE_DLREQ 2
|
|
#define MINION_NVLINK_LINK_INTR_CODE_PMDISABLED 3
|
|
#define MINION_NVLINK_LINK_INTR_CODE_DLCMDFAULT 4
|
|
#define MINION_NVLINK_LINK_INTR_CODE_NOINIT 16
|
|
#define MINION_NVLINK_LINK_INTR_CODE_BADINIT 32
|
|
#define MINION_NVLINK_LINK_INTR_CODE_PMFAIL 33
|
|
#define MINION_NVLINK_LINK_INTR_STATE 31
|
|
|
|
|
|
/* NVL Registers */
|
|
#define NVL_LINK_STATE 0x0
|
|
#define NVL_LINK_STATE_STATE_MASK 0xff
|
|
#define NVL_LINK_STATE_STATE_SHIFT 0
|
|
#define NVL_LINK_STATE_STATE_INIT 0
|
|
#define NVL_LINK_STATE_STATE_HWCFG 1
|
|
#define NVL_LINK_STATE_STATE_SWCFG 2
|
|
#define NVL_LINK_STATE_STATE_ACTIVE 3
|
|
#define NVL_LINK_STATE_STATE_FAULT 4
|
|
#define NVL_LINK_STATE_STATE_RCVY_AC 8
|
|
#define NVL_LINK_STATE_STATE_RCVY_SW 9
|
|
#define NVL_LINK_STATE_STATE_RCVY_RX 10
|
|
|
|
#define NVL_LINK_CONFIG 0x18
|
|
#define NVL_LINK_CONFIG_LINK_EN 31
|
|
|
|
#define NVL_LINK_CHANGE 0x40
|
|
#define NVL_LINK_CHANGE_ACTION_F(x) (((x) & 0x3) << 2)
|
|
#define NVL_LINK_CHANGE_ACTION_LTSSM_CHANGE 1
|
|
#define NVL_LINK_CHANGE_ACTION_LTSSM_FORCE 3
|
|
#define NVL_LINK_CHANGE_NEWSTATE_F(x) (((x) & 0xf) << 4)
|
|
#define NVL_LINK_CHANGE_NEWSTATE_INIT 0
|
|
#define NVL_LINK_CHANGE_NEWSTATE_HWCFG 1
|
|
#define NVL_LINK_CHANGE_NEWSTATE_SWCFG 2
|
|
#define NVL_LINK_CHANGE_NEWSTATE_ACTIVE 3
|
|
#define NVL_LINK_CHANGE_NEWSTATE_RCVY_AC 8
|
|
#define NVL_LINK_CHANGE_NEWSTATE_RCVY_SW 9
|
|
#define NVL_LINK_CHANGE_NEWSTATE_RCVY_RX 10
|
|
#define NVL_LINK_CHANGE_OLDSTATE_MASK_F(x) (((x) & 0xf) << 16)
|
|
#define NVL_LINK_CHANGE_OLDSTATE_MASK_DONTCARE 0xf
|
|
|
|
#define NVL_SUBLINK_CHANGE 0x44
|
|
#define NVL_SUBLINK_CHANGE_STATUS_MASK 3
|
|
#define NVL_SUBLINK_CHANGE_STATUS_DONE 0
|
|
#define NVL_SUBLINK_CHANGE_STATUS_BUSY 1
|
|
#define NVL_SUBLINK_CHANGE_STATUS_FAULT 2
|
|
#define NVL_SUBLINK_CHANGE_STATUS_ABORT 3
|
|
#define NVL_SUBLINK_CHANGE_ACTION_F(x) (((x) & 0x3) << 2)
|
|
#define NVL_SUBLINK_CHANGE_ACTION_SLSM_CHANGE 1
|
|
#define NVL_SUBLINK_CHANGE_ACTION_SLSM_FORCE 3
|
|
#define NVL_SUBLINK_CHANGE_NEWSTATE_F(x) (((x) & 0xf) << 4)
|
|
#define NVL_SUBLINK_CHANGE_NEWSTATE_HS 0
|
|
#define NVL_SUBLINK_CHANGE_NEWSTATE_EIGHTH 4
|
|
#define NVL_SUBLINK_CHANGE_NEWSTATE_SAFE 6
|
|
#define NVL_SUBLINK_CHANGE_NEWSTATE_OFF 7
|
|
#define NVL_SUBLINK_CHANGE_SUBLINK_F(x) (((x) & 0xf) << 12)
|
|
#define NVL_SUBLINK_CHANGE_SUBLINK_TX 0
|
|
#define NVL_SUBLINK_CHANGE_SUBLINK_RX 1
|
|
|
|
#define NVL_INTR 0x50
|
|
#define NVL_INTR_TX_REPLAY 0
|
|
#define NVL_INTR_TX_RECOVERY_SHORT 1
|
|
#define NVL_INTR_TX_RECOVERY_LONG 2
|
|
#define NVL_INTR_TX_FAULT_RAM 4
|
|
#define NVL_INTR_TX_FAULT_INTERFACE 5
|
|
#define NVL_INTR_TX_FAULT_SUBLINK_CHANGE 8
|
|
#define NVL_INTR_RX_FAULT_SUBLINK_CHANGE 16
|
|
#define NVL_INTR_RX_FAULT_DL_PROTOCOL 20
|
|
#define NVL_INTR_RX_SHORT_ERROR_RATE 21
|
|
#define NVL_INTR_RX_LONG_ERROR_RATE 22
|
|
#define NVL_INTR_RX_ILA_TRIGGER 23
|
|
#define NVL_INTR_RX_CRC_COUNTER 24
|
|
#define NVL_INTR_LTSSM_FAULT 28
|
|
#define NVL_INTR_LTSSM_PROTOCOL 29
|
|
#define NVL_INTR_MINION_REQUEST 30
|
|
|
|
#define NVL_INTR_SW2 0x54
|
|
|
|
#define NVL_INTR_STALL_EN 0x58
|
|
#define NVL_INTR_STALL_EN_TX_REPLAY 0
|
|
#define NVL_INTR_STALL_EN_TX_RECOVERY_SHORT 1
|
|
#define NVL_INTR_STALL_EN_TX_RECOVERY_LONG 2
|
|
#define NVL_INTR_STALL_EN_TX_FAULT_RAM 4
|
|
#define NVL_INTR_STALL_EN_TX_FAULT_INTERFACE 5
|
|
#define NVL_INTR_STALL_EN_TX_FAULT_SUBLINK_CHANGE 8
|
|
#define NVL_INTR_STALL_EN_RX_FAULT_SUBLINK_CHANGE 16
|
|
#define NVL_INTR_STALL_EN_RX_FAULT_DL_PROTOCOL 20
|
|
#define NVL_INTR_STALL_EN_RX_SHORT_ERROR_RATE 21
|
|
#define NVL_INTR_STALL_EN_RX_SHORT_ERROR_RATE_ENABLE 1
|
|
#define NVL_INTR_STALL_EN_RX_LONG_ERROR_RATE 22
|
|
#define NVL_INTR_STALL_EN_RX_ILA_TRIGGER 23
|
|
#define NVL_INTR_STALL_EN_RX_CRC_COUNTER 24
|
|
#define NVL_INTR_STALL_EN_LTSSM_FAULT 28
|
|
#define NVL_INTR_STALL_EN_LTSSM_PROTOCOL 29
|
|
#define NVL_INTR_STALL_EN_MINION_REQUEST 30
|
|
|
|
#define NVL_INTR_NONSTALL_EN 0x5c
|
|
|
|
#define NVL_SL0_SAFE_CTRL2_TX 0x2008
|
|
|
|
#define NVL_SL0_TRAIN0_TX 0x2018
|
|
|
|
#define NVL_SL0_TRAIN1_TX 0x201c
|
|
|
|
#define NVL_BR0_CFG_CTL_CAL 0x281c
|
|
#define NVL_BR0_CFG_CTL_CAL_RXCAL 0
|
|
#define NVL_BR0_CFG_CTL_CAL_INIT_TRAIN_DONE 1
|
|
|
|
#define NVL_BR0_CFG_STATUS_CAL 0x2838
|
|
#define NVL_BR0_CFG_STATUS_CAL_RXCAL_DONE 2
|
|
|
|
#define NVL_SL1_CONFIG_RX 0x3000
|
|
#define NVL_SL1_CONFIG_RX_HW_LANE_REVERSE 8
|
|
#define NVL_SL1_CONFIG_RX_LANE_REVERSE 24
|
|
#define NVL_SL1_CONFIG_RX_REVERSAL_OVERRIDE 29
|
|
|
|
#define NVL_SL1_SLSM_STATUS_RX 0x3014
|
|
#define NVL_SL1_SLSM_STATUS_RX_PRIMARY_STATE_MASK 0xf0
|
|
#define NVL_SL1_SLSM_STATUS_RX_PRIMARY_STATE_SHIFT 4
|
|
#define NVL_SL1_SLSM_STATUS_RX_PRIMARY_STATE_HS 0
|
|
#define NVL_SL1_SLSM_STATUS_RX_PRIMARY_STATE_EIGHTH 4
|
|
#define NVL_SL1_SLSM_STATUS_RX_PRIMARY_STATE_SAFE 6
|
|
#define NVL_SL1_SLSM_STATUS_RX_PRIMARY_STATE_OFF 7
|
|
|
|
#define NVL_SL0_SLSM_STATUS_TX 0x2024
|
|
#define NVL_SL0_SLSM_STATUS_TX_PRIMARY_STATE_MASK 0xf0
|
|
#define NVL_SL0_SLSM_STATUS_TX_PRIMARY_STATE_SHIFT 4
|
|
#define NVL_SL0_SLSM_STATUS_TX_PRIMARY_STATE_HS 0
|
|
#define NVL_SL0_SLSM_STATUS_TX_PRIMARY_STATE_EIGHTH 4
|
|
#define NVL_SL0_SLSM_STATUS_TX_PRIMARY_STATE_SAFE 6
|
|
#define NVL_SL0_SLSM_STATUS_TX_PRIMARY_STATE_OFF 7
|
|
|
|
#define NVL_TXIOBIST_CONFIG 0x2e10
|
|
#define NVL_TXIOBIST_CONFIG_DPG_PRBSSEEDLD 2
|
|
|
|
#define NVL_SL1_RXSLSM_TIMEOUT_2 0x3034
|
|
|
|
#define NVL_SL1_ERROR_RATE_CTRL 0x3284
|
|
#define NVL_SL1_ERROR_RATE_CTRL_SHORT_THRESHOLD_MAN_F(x) (((x) & 0x7) << 0)
|
|
#define NVL_SL1_ERROR_RATE_CTRL_LONG_THRESHOLD_MAN_F(x) (((x) & 0x7) << 16)
|
|
|
|
#define NVL_SL1_ERROR_COUNT_CTRL 0x3280
|
|
#define NVL_SL1_ERROR_COUNT_CTRL_CLEAR_FLIT_CRC 0
|
|
#define NVL_SL1_ERROR_COUNT_CTRL_CLEAR_LANE_CRC 1
|
|
#define NVL_SL1_ERROR_COUNT_CTRL_CLEAR_RATES 2
|
|
|
|
#define NVL_SL0_ERROR_COUNT_CTRL 0x2280
|
|
#define NVL_SL0_ERROR_COUNT_CTRL_CLEAR_REPLAY 8
|
|
|
|
#define NVL_ERROR_COUNT_CTRL 0x80
|
|
#define NVL_ERROR_COUNT_CTRL_CLEAR_RECOVERY 2
|
|
|
|
#define NVL_SL1_ERROR_COUNT1 0x3288
|
|
#define NVL_SL1_ERROR_COUNT1_FLIT_CRC_ERRORS_V(x) (((x) >> 0) & 0xffff)
|
|
|
|
#define NVL_SL1_ERROR_COUNT2_LANECRC 0x328c
|
|
#define NVL_SL1_ERROR_COUNT2_LANECRC_L0_V(x) (((x) >> 0) & 0xff)
|
|
#define NVL_SL1_ERROR_COUNT2_LANECRC_L1_V(x) (((x) >> 8) & 0xff)
|
|
#define NVL_SL1_ERROR_COUNT2_LANECRC_L2_V(x) (((x) >> 16) & 0xff)
|
|
#define NVL_SL1_ERROR_COUNT2_LANECRC_L3_V(x) (((x) >> 24) & 0xff)
|
|
|
|
#define NVL_SL1_ERROR_COUNT3_LANECRC 0x3290
|
|
#define NVL_SL1_ERROR_COUNT3_LANECRC_L4_V(x) (((x) >> 0) & 0xff)
|
|
#define NVL_SL1_ERROR_COUNT3_LANECRC_L5_V(x) (((x) >> 8) & 0xff)
|
|
#define NVL_SL1_ERROR_COUNT3_LANECRC_L6_V(x) (((x) >> 16) & 0xff)
|
|
#define NVL_SL1_ERROR_COUNT3_LANECRC_L7_V(x) (((x) >> 24) & 0xff)
|
|
|
|
#define NVL_SL0_ERROR_COUNT4 0x2288
|
|
#define NVL_SL0_ERROR_COUNT4_REPLAY_EVENTS_V(x) (((x) >> 16) & 0xffff)
|
|
|
|
#define NVL_ERROR_COUNT1 0x8c
|
|
#define NVL_ERROR_COUNT1_RECOVERY_EVENTS_V(x) (((x) >> 0) & 0x3ff)
|
|
|
|
#define NVL_STATS_A 0x198
|
|
#define NVL_STATS_A_COUNT_TX_STATE_NVHS_V(x) (((x) >> 0) & 0xffff)
|
|
#define NVL_STATS_A_COUNT_TX_STATE_EIGHTH_V(x) (((x) >> 16) & 0xffff)
|
|
|
|
#define NVL_STATS_B 0x19c
|
|
#define NVL_STATS_B_COUNT_TX_STATE_OTHER_V(x) (((x) >> 0) & 0xffff)
|
|
|
|
#define NVL_STATS_D 0x1a4
|
|
#define NVL_STATS_D_NUM_TX_LP_ENTER_V(x) (((x) >> 0) & 0xffff)
|
|
#define NVL_STATS_D_NUM_TX_LP_EXIT_V(x) (((x) >> 16) & 0xffff)
|
|
|
|
#define NVL_STATS_CTRL 0x190
|
|
#define NVL_STATS_CTRL_CLEAR_ALL 0
|
|
|
|
#define NVL_SL0_R4TX_COMMAND 0x2140
|
|
#define NVL_SL0_R4TX_COMMAND_REQUEST_F(v) ((v & 0x7) << 0)
|
|
#define NVL_SL0_R4TX_COMMAND_REQUEST_NOP 0
|
|
#define NVL_SL0_R4TX_COMMAND_REQUEST_READ 1
|
|
#define NVL_SL0_R4TX_COMMAND_REQUEST_WRITE 2
|
|
#define NVL_SL0_R4TX_COMMAND_REQUEST_SWAP 3
|
|
#define NVL_SL0_R4TX_COMMAND_READY 3
|
|
#define NVL_SL0_R4TX_COMMAND_WADDR_F(v) ((v & 0x7f) << 8)
|
|
#define NVL_SL0_R4TX_COMMAND_WADDR_II 0
|
|
#define NVL_SL0_R4TX_COMMAND_WADDR_SC 1
|
|
#define NVL_SL0_R4TX_COMMAND_COMPLETE 24
|
|
|
|
#define NVL_SL0_R4TX_WDATA0 0x2150
|
|
|
|
#define NVL_SL0_R4TX_WDATA1 0x2154
|
|
|
|
#define NVL_SL1_R4LOCAL_COMMAND 0x3140
|
|
#define NVL_SL1_R4LOCAL_COMMAND_REQUEST_F(v) ((v & 0x7) << 0)
|
|
#define NVL_SL1_R4LOCAL_COMMAND_REQUEST_NOP 0
|
|
#define NVL_SL1_R4LOCAL_COMMAND_REQUEST_READ 1
|
|
#define NVL_SL1_R4LOCAL_COMMAND_REQUEST_WRITE 2
|
|
#define NVL_SL1_R4LOCAL_COMMAND_REQUEST_SWAP 3
|
|
#define NVL_SL1_R4LOCAL_COMMAND_READY 3
|
|
#define NVL_SL1_R4LOCAL_COMMAND_RADDR_F(v) ((v & 0x7f) << 16)
|
|
#define NVL_SL1_R4LOCAL_COMMAND_RADDR_II 0
|
|
#define NVL_SL1_R4LOCAL_COMMAND_RADDR_SC 1
|
|
#define NVL_SL1_R4LOCAL_COMMAND_COMPLETE 24
|
|
|
|
#define NVL_SL1_R4LOCAL_RDATA0 0x3158
|
|
|
|
#define NVL_SL1_R4LOCAL_RDATA1 0x315c
|
|
|
|
|
|
/* NVLTLC Registers */
|
|
#define NVLTLC_TX_CTRL_BUFFER_SZ_VC0 0x200
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_SZ_VC1 0x204
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_SZ_VC2 0x208
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_SZ_VC3 0x20c
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_SZ_VC4 0x210
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_SZ_VC5 0x214
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_SZ_VC6 0x218
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_SZ_VC7 0x21c
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_CREDITS_VC0 0x300
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_CREDITS_VC1 0x304
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_CREDITS_VC2 0x308
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_CREDITS_VC3 0x30c
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_CREDITS_VC4 0x310
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_CREDITS_VC5 0x314
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_CREDITS_VC6 0x318
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_CREDITS_VC7 0x31c
|
|
|
|
#define NVLTLC_TX_CTRL_BUFFER_READY 0x400
|
|
|
|
#define NVLTLC_TX_PWRM_IC_SW_CTRL 0x430
|
|
#define NVLTLC_TX_PWRM_IC_SW_CTRL_SOFTWAREDESIRED 2
|
|
#define NVLTLC_TX_PWRM_IC_SW_CTRL_HARDWAREDISABLE 3
|
|
#define NVLTLC_TX_PWRM_IC_SW_CTRL_COUNTSTART 5
|
|
|
|
#define NVLTLC_TX_PWRM_IC_INC 0x438
|
|
#define NVLTLC_TX_PWRM_IC_INC_FBINC_F(v) ((v & 0xffff) << 0)
|
|
#define NVLTLC_TX_PWRM_IC_INC_LPINC_F(v) ((v & 0xffff) << 16)
|
|
|
|
#define NVLTLC_TX_PWRM_IC_DEC 0x43c
|
|
#define NVLTLC_TX_PWRM_IC_DEC_FBDEC_F(v) ((v & 0xffff) << 0)
|
|
#define NVLTLC_TX_PWRM_IC_DEC_LPDEC_F(v) ((v & 0xffff) << 16)
|
|
|
|
#define NVLTLC_TX_PWRM_IC_LP_ENTER_THRESHOLD 0x440
|
|
|
|
#define NVLTLC_TX_PWRM_IC_LP_EXIT_THRESHOLD 0x444
|
|
|
|
#define NVLTLC_TX_PWRM_IC_LIMIT 0x448
|
|
|
|
#define NVLTLC_TX_ERR_STATUS_0 0x700
|
|
#define NVLTLC_TX_ERR_STATUS_0_TXHDRCREDITOVFERR_F(x) (((x) & 0xff) << 0)
|
|
#define NVLTLC_TX_ERR_STATUS_0_TXHDRCREDITOVFERR_V(x) (((x) >> 0) & 0xff)
|
|
#define NVLTLC_TX_ERR_STATUS_0_TXDATACREDITOVFERR_F(x) (((x) & 0xff) << 8)
|
|
#define NVLTLC_TX_ERR_STATUS_0_TXDATACREDITOVFERR_V(x) (((x) >> 8) & 0xff)
|
|
#define NVLTLC_TX_ERR_STATUS_0_TXDLCREDITOVFERR 16
|
|
#define NVLTLC_TX_ERR_STATUS_0_TXDLCREDITPARITYERR 17
|
|
#define NVLTLC_TX_ERR_STATUS_0_TXRAMHDRPARITYERR 18
|
|
#define NVLTLC_TX_ERR_STATUS_0_TXRAMDATAPARITYERR 19
|
|
#define NVLTLC_TX_ERR_STATUS_0_TXUNSUPVCOVFERR 20
|
|
#define NVLTLC_TX_ERR_STATUS_0_TXSTOMPDET 22
|
|
#define NVLTLC_TX_ERR_STATUS_0_TXPOISONDET 23
|
|
#define NVLTLC_TX_ERR_STATUS_0_TARGETERR 24
|
|
#define NVLTLC_TX_ERR_STATUS_0_UNSUPPORTEDREQUESTERR 25
|
|
|
|
#define NVLTLC_TX_ERR_LOG_EN_0 0x704
|
|
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0 0x708
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0_TXHDRCREDITOVFERR_F(x) (((x) & 0xff) << 0)
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0_TXDATACREDITOVFERR_F(x) (((x) & 0xff) << 8)
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0_TXDLCREDITOVFERR 16
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0_TXDLCREDITPARITYERR 17
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0_TXRAMHDRPARITYERR 18
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0_TXRAMDATAPARITYERR 19
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0_TXUNSUPVCOVFERR 20
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0_TXSTOMPDET 22
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0_TXPOISONDET 23
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0_TARGETERR 24
|
|
#define NVLTLC_TX_ERR_REPORT_EN_0_UNSUPPORTEDREQUESTERR 25
|
|
|
|
#define NVLTLC_TX_ERR_INJECT_0 0x710
|
|
#define NVLTLC_TX_ERR_INJECT_0_TXHDRCREDITOVFERR_V(x) (((x) >> 0) & 0xff)
|
|
#define NVLTLC_TX_ERR_INJECT_0_TXDATACREDITOVFERR_V(x) (((x) >> 8) & 0xff)
|
|
#define NVLTLC_TX_ERR_INJECT_0_TXDLCREDITOVFERR 16
|
|
#define NVLTLC_TX_ERR_INJECT_0_TXDLCREDITPARITYERR 17
|
|
#define NVLTLC_TX_ERR_INJECT_0_TXRAMHDRPARITYERR 18
|
|
#define NVLTLC_TX_ERR_INJECT_0_TXRAMDATAPARITYERR 19
|
|
#define NVLTLC_TX_ERR_INJECT_0_TXUNSUPVCOVFERR 20
|
|
#define NVLTLC_TX_ERR_INJECT_0_TXSTOMPDET 22
|
|
#define NVLTLC_TX_ERR_INJECT_0_TXPOISONDET 23
|
|
#define NVLTLC_TX_ERR_INJECT_0_TARGETERR 24
|
|
#define NVLTLC_TX_ERR_INJECT_0_UNSUPPORTEDREQUESTERR 25
|
|
|
|
#define NVLTLC_TX_ERR_FIRST_0 0x714
|
|
|
|
#define NVLTLC_TX_ERR_CONTAIN_EN_0 0x70c
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_SZ_VC0 0xa00
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_SZ_VC1 0xa04
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_SZ_VC2 0xa08
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_SZ_VC3 0xa0c
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_SZ_VC4 0xa10
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_SZ_VC5 0xa14
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_SZ_VC6 0xa18
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_SZ_VC7 0xa1c
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_CREDITS_VC0 0xb00
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_CREDITS_VC1 0xb04
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_CREDITS_VC2 0xb08
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_CREDITS_VC3 0xb0c
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_CREDITS_VC4 0xb10
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_CREDITS_VC5 0xb14
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_CREDITS_VC6 0xb18
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_CREDITS_VC7 0xb1c
|
|
|
|
#define NVLTLC_RX_CTRL_BUFFER_READY 0xc00
|
|
|
|
#define NVLTLC_RX_PWRM_IC_SW_CTRL 0xc30
|
|
#define NVLTLC_RX_PWRM_IC_SW_CTRL_SOFTWAREDESIRED 2
|
|
#define NVLTLC_RX_PWRM_IC_SW_CTRL_HARDWAREDISABLE 3
|
|
#define NVLTLC_RX_PWRM_IC_SW_CTRL_COUNTSTART 5
|
|
|
|
#define NVLTLC_RX_ERR_LOG_EN_0 0xf04
|
|
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0 0xf08
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RXDLHDRPARITYERR 0
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RXDLDATAPARITYERR 1
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RXDLCTRLPARITYERR 2
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RXRAMDATAPARITYERR 3
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RXRAMHDRPARITYERR 4
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RXINVALIDAEERR 5
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RXINVALIDBEERR 6
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RXINVALIDADDRALIGNERR 7
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RXPKTLENERR 8
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RSVCMDENCERR 9
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RSVDATLENENCERR 10
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RSVADDRTYPEERR 11
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RSVRSPSTATUSERR 12
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RSVPKTSTATUSERR 13
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RSVCACHEATTRPROBEREQERR 14
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RSVCACHEATTRPROBERSPERR 15
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_DATLENGTATOMICREQMAXERR 17
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_DATLENGTRMWREQMAXERR 18
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_DATLENLTATRRSPMINERR 19
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_INVALIDCACHEATTRPOERR 20
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_INVALIDCRERR 21
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RXRESPSTATUSTARGETERR 22
|
|
#define NVLTLC_RX_ERR_REPORT_EN_0_RXRESPSTATUSUNSUPPORTEDREQUESTERR 23
|
|
|
|
#define NVLTLC_RX_ERR_STATUS_0 0xf00
|
|
#define NVLTLC_RX_ERR_STATUS_0_RXDLHDRPARITYERR 0
|
|
#define NVLTLC_RX_ERR_STATUS_0_RXDLDATAPARITYERR 1
|
|
#define NVLTLC_RX_ERR_STATUS_0_RXDLCTRLPARITYERR 2
|
|
#define NVLTLC_RX_ERR_STATUS_0_RXRAMDATAPARITYERR 3
|
|
#define NVLTLC_RX_ERR_STATUS_0_RXRAMHDRPARITYERR 4
|
|
#define NVLTLC_RX_ERR_STATUS_0_RXINVALIDAEERR 5
|
|
#define NVLTLC_RX_ERR_STATUS_0_RXINVALIDBEERR 6
|
|
#define NVLTLC_RX_ERR_STATUS_0_RXINVALIDADDRALIGNERR 7
|
|
#define NVLTLC_RX_ERR_STATUS_0_RXPKTLENERR 8
|
|
#define NVLTLC_RX_ERR_STATUS_0_RSVCMDENCERR 9
|
|
#define NVLTLC_RX_ERR_STATUS_0_RSVDATLENENCERR 10
|
|
#define NVLTLC_RX_ERR_STATUS_0_RSVADDRTYPEERR 11
|
|
#define NVLTLC_RX_ERR_STATUS_0_RSVRSPSTATUSERR 12
|
|
#define NVLTLC_RX_ERR_STATUS_0_RSVPKTSTATUSERR 13
|
|
#define NVLTLC_RX_ERR_STATUS_0_RSVCACHEATTRPROBEREQERR 14
|
|
#define NVLTLC_RX_ERR_STATUS_0_RSVCACHEATTRPROBERSPERR 15
|
|
#define NVLTLC_RX_ERR_STATUS_0_DATLENGTATOMICREQMAXERR 17
|
|
#define NVLTLC_RX_ERR_STATUS_0_DATLENGTRMWREQMAXERR 18
|
|
#define NVLTLC_RX_ERR_STATUS_0_DATLENLTATRRSPMINERR 19
|
|
#define NVLTLC_RX_ERR_STATUS_0_INVALIDCACHEATTRPOERR 20
|
|
#define NVLTLC_RX_ERR_STATUS_0_INVALIDCRERR 21
|
|
#define NVLTLC_RX_ERR_STATUS_0_RXRESPSTATUSTARGETERR 22
|
|
#define NVLTLC_RX_ERR_STATUS_0_RXRESPSTATUSUNSUPPORTEDREQUESTERR 23
|
|
|
|
#define NVLTLC_RX_ERR_CONTAIN_EN_0 0xf0c
|
|
|
|
#define NVLTLC_RX_ERR_INJECT_0 0xf10
|
|
#define NVLTLC_RX_ERR_INJECT_0_RXDLHDRPARITYERR 0
|
|
#define NVLTLC_RX_ERR_INJECT_0_RXDLDATAPARITYERR 1
|
|
#define NVLTLC_RX_ERR_INJECT_0_RXDLCTRLPARITYERR 2
|
|
#define NVLTLC_RX_ERR_INJECT_0_RXRAMDATAPARITYERR 3
|
|
#define NVLTLC_RX_ERR_INJECT_0_RXRAMHDRPARITYERR 4
|
|
#define NVLTLC_RX_ERR_INJECT_0_RXINVALIDAEERR 5
|
|
#define NVLTLC_RX_ERR_INJECT_0_RXINVALIDBEERR 6
|
|
#define NVLTLC_RX_ERR_INJECT_0_RXINVALIDADDRALIGNERR 7
|
|
#define NVLTLC_RX_ERR_INJECT_0_RXPKTLENERR 8
|
|
#define NVLTLC_RX_ERR_INJECT_0_RSVCMDENCERR 9
|
|
#define NVLTLC_RX_ERR_INJECT_0_RSVDATLENENCERR 10
|
|
#define NVLTLC_RX_ERR_INJECT_0_RSVADDRTYPEERR 11
|
|
#define NVLTLC_RX_ERR_INJECT_0_RSVRSPSTATUSERR 12
|
|
#define NVLTLC_RX_ERR_INJECT_0_RSVPKTSTATUSERR 13
|
|
#define NVLTLC_RX_ERR_INJECT_0_RSVCACHEATTRPROBEREQERR 14
|
|
#define NVLTLC_RX_ERR_INJECT_0_RSVCACHEATTRPROBERSPERR 15
|
|
#define NVLTLC_RX_ERR_INJECT_0_DATLENGTATOMICREQMAXERR 17
|
|
#define NVLTLC_RX_ERR_INJECT_0_DATLENGTRMWREQMAXERR 18
|
|
#define NVLTLC_RX_ERR_INJECT_0_DATLENLTATRRSPMINERR 19
|
|
#define NVLTLC_RX_ERR_INJECT_0_INVALIDCACHEATTRPOERR 20
|
|
#define NVLTLC_RX_ERR_INJECT_0_INVALIDCRERR 21
|
|
#define NVLTLC_RX_ERR_INJECT_0_RXRESPSTATUSTARGETERR 22
|
|
#define NVLTLC_RX_ERR_INJECT_0_RXRESPSTATUSUNSUPPORTEDREQUESTERR 23
|
|
|
|
#define NVLTLC_RX_ERR_FIRST_0 0xf14
|
|
|
|
#define NVLTLC_RX_ERR_STATUS_1 0xf18
|
|
#define NVLTLC_RX_ERR_STATUS_1_RXHDROVFERR_F(x) (((x) & 0xff) << 0)
|
|
#define NVLTLC_RX_ERR_STATUS_1_RXHDROVFERR_V(x) (((x) >> 0) & 0xff)
|
|
#define NVLTLC_RX_ERR_STATUS_1_RXDATAOVFERR_F(x) (((x) & 0xff) << 8)
|
|
#define NVLTLC_RX_ERR_STATUS_1_RXDATAOVFERR_V(x) (((x) >> 8) & 0xff)
|
|
#define NVLTLC_RX_ERR_STATUS_1_STOMPDETERR 16
|
|
#define NVLTLC_RX_ERR_STATUS_1_RXPOISONERR 17
|
|
#define NVLTLC_RX_ERR_STATUS_1_CORRECTABLEINTERNALERR 18
|
|
#define NVLTLC_RX_ERR_STATUS_1_RXUNSUPVCOVFERR 19
|
|
#define NVLTLC_RX_ERR_STATUS_1_RXUNSUPNVLINKCREDITRELERR 20
|
|
#define NVLTLC_RX_ERR_STATUS_1_RXUNSUPNCISOCCREDITRELERR 21
|
|
|
|
#define NVLTLC_RX_ERR_LOG_EN_1 0xf1c
|
|
|
|
#define NVLTLC_RX_ERR_REPORT_EN_1 0xf20
|
|
#define NVLTLC_RX_ERR_REPORT_EN_1_RXHDROVFERR_F(x) (((x) & 0xff) << 0)
|
|
#define NVLTLC_RX_ERR_REPORT_EN_1_RXDATAOVFERR_F(x) (((x) & 0xff) << 8)
|
|
#define NVLTLC_RX_ERR_REPORT_EN_1_STOMPDETERR 16
|
|
#define NVLTLC_RX_ERR_REPORT_EN_1_RXPOISONERR 17
|
|
#define NVLTLC_RX_ERR_REPORT_EN_1_CORRECTABLEINTERNALERR 18
|
|
#define NVLTLC_RX_ERR_REPORT_EN_1_RXUNSUPVCOVFERR 19
|
|
#define NVLTLC_RX_ERR_REPORT_EN_1_RXUNSUPNVLINKCREDITRELERR 20
|
|
#define NVLTLC_RX_ERR_REPORT_EN_1_RXUNSUPNCISOCCREDITRELERR 21
|
|
|
|
#define NVLTLC_RX_ERR_CONTAIN_EN_1 0xf24
|
|
|
|
#define NVLTLC_RX_ERR_INJECT_1 0xf28
|
|
#define NVLTLC_RX_ERR_INJECT_1_RXHDROVFERR_V(x) (((x) >> 0) & 0xff)
|
|
#define NVLTLC_RX_ERR_INJECT_1_RXDATAOVFERR_V(x) (((x) >> 8) & 0xff)
|
|
#define NVLTLC_RX_ERR_INJECT_1_STOMPDETERR 16
|
|
#define NVLTLC_RX_ERR_INJECT_1_RXPOISONERR 17
|
|
#define NVLTLC_RX_ERR_INJECT_1_CORRECTABLEINTERNALERR 18
|
|
#define NVLTLC_RX_ERR_INJECT_1_RXUNSUPVCOVFERR 19
|
|
#define NVLTLC_RX_ERR_INJECT_1_RXUNSUPNVLINKCREDITRELERR 20
|
|
#define NVLTLC_RX_ERR_INJECT_1_RXUNSUPNCISOCCREDITRELERR 21
|
|
|
|
#define NVLTLC_RX_ERR_FIRST_1 0xf2c
|
|
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR_CTRL 0x490
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR_CTRL_ENTX0 0
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR_CTRL_ENTX1 1
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR_CTRL_RESETTX0 16
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR_CTRL_RESETTX1 17
|
|
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR_CTRL 0xc90
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR_CTRL_ENRX0 0
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR_CTRL_ENRX1 1
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR_CTRL_RESETRX0 16
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR_CTRL_RESETRX1 17
|
|
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_CTRL_0 0x494
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_CTRL_0_UNIT_M() 0x3 << 1
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_CTRL_0_UNIT_F(x) (((x) & 0x3) << 1)
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_CTRL_0_UNIT_PACKETS 0x1
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_CTRL_0_UNIT_CYCLES 0x0
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_CTRL_0_VCSETFILTERMODE_M() 0x3 << 8
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_CTRL_0_VCSETFILTERMODE_F(x) (((x) & 0x3) << 8)
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_CTRL_0_VCSETFILTERMODE_INIT 0x3
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_CTRL_0_FLITFILTER_M() 0x1f << 3
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_CTRL_0_FLITFILTER_F(x) (((x) & 0x1f) << 3)
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_CTRL_0_FLITFILTER_IDLE 0x10
|
|
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_CTRL_0 0x4a4
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_CTRL_0_UNIT_M() 0x3 << 1
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_CTRL_0_UNIT_F(x) (((x) & 0x3) << 1)
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_CTRL_0_UNIT_PACKETS 0x1
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_CTRL_0_UNIT_CYCLES 0x0
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_CTRL_0_VCSETFILTERMODE_M() 0x3 << 8
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_CTRL_0_VCSETFILTERMODE_F(x) (((x) & 0x3) << 8)
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_CTRL_0_VCSETFILTERMODE_INIT 0x3
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_CTRL_0_FLITFILTER_M() 0x1f << 3
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_CTRL_0_FLITFILTER_F(x) (((x) & 0x1f) << 3)
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_CTRL_0_FLITFILTER_IDLE 0x10
|
|
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_CTRL_0 0xc94
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_CTRL_0_UNIT_M() 0x3 << 1
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_CTRL_0_UNIT_F(x) (((x) & 0x3) << 1)
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_CTRL_0_UNIT_PACKETS 0x1
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_CTRL_0_UNIT_CYCLES 0x0
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_CTRL_0_VCSETFILTERMODE_M() 0x3 << 8
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_CTRL_0_VCSETFILTERMODE_F(x) (((x) & 0x3) << 8)
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_CTRL_0_VCSETFILTERMODE_INIT 0x3
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_CTRL_0_FLITFILTER_M() 0x1f << 3
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_CTRL_0_FLITFILTER_F(x) (((x) & 0x1f) << 3)
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_CTRL_0_FLITFILTER_IDLE 0x10
|
|
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_CTRL_0 0xca4
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_CTRL_0_UNIT_M() 0x3 << 1
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_CTRL_0_UNIT_F(x) (((x) & 0x3) << 1)
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_CTRL_0_UNIT_PACKETS 0x1
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_CTRL_0_UNIT_CYCLES 0x0
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_CTRL_0_VCSETFILTERMODE_M() 0x3 << 8
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_CTRL_0_VCSETFILTERMODE_F(x) (((x) & 0x3) << 8)
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_CTRL_0_VCSETFILTERMODE_INIT 0x3
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_CTRL_0_FLITFILTER_M() 0x1f << 3
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_CTRL_0_FLITFILTER_F(x) (((x) & 0x1f) << 3)
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_CTRL_0_FLITFILTER_IDLE 0x10
|
|
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_LO 0x49c
|
|
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_HI 0x4a0
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR0_HI_ROLLOVER 31
|
|
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_LO 0x4ac
|
|
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_HI 0x4b0
|
|
#define NVLTLC_TX_DEBUG_TP_CNTR1_HI_ROLLOVER 31
|
|
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_LO 0xc9c
|
|
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_HI 0xca0
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR0_HI_ROLLOVER 31
|
|
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_LO 0xcac
|
|
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_HI 0xcb0
|
|
#define NVLTLC_RX_DEBUG_TP_CNTR1_HI_ROLLOVER 31
|
|
|
|
#define NVLTLC_TX_ERR_STATUS_0 0x700
|
|
#define NVLTLC_RX_ERR_STATUS_0 0xf00
|
|
#define NVLTLC_RX_ERR_STATUS_1 0xf18
|
|
|
|
|
|
/* NVSYNC2X registers */
|
|
#define NVSYNC2X_ECCPARITY_CTRL 0x10c
|
|
#define NVSYNC2X_ECCPARITY_CTRL_RX_PARITY_CTRL2_ENB 3
|
|
#define NVSYNC2X_ECCPARITY_CTRL_TX_ECCENB0 16
|
|
#define NVSYNC2X_ECCPARITY_CTRL_TX_PARITY_CTRL1_ENB 18
|
|
#define NVSYNC2X_ECCPARITY_CTRL_TX_ECCPARITYCOUNTERENB0 20
|
|
#define NVSYNC2X_ECCPARITY_CTRL_TX_ECCPARITYCOUNTSINGLEBIT0 21
|
|
|
|
#define NVSYNC2X_TX_ECCPARITY_ERROR_LIMIT 0x120
|
|
#define NVSYNC2X_TX_ECCPARITY_ERROR_LIMIT_ERROR_LIMIT_F(x) \
|
|
(((x) & 0xffffff) << 0)
|
|
|
|
#define NVSYNC2X_ERR_LOG_EN_0 0x204
|
|
#define NVSYNC2X_ERR_LOG_EN_0_RXPARITYCTRL2ERR 7
|
|
#define NVSYNC2X_ERR_LOG_EN_0_TXECCPARITYLIMITERR 8
|
|
#define NVSYNC2X_ERR_LOG_EN_0_TXECCHDRDOUBLEBITERR 9
|
|
#define NVSYNC2X_ERR_LOG_EN_0_TXECCDATADOUBLEBITERR 10
|
|
#define NVSYNC2X_ERR_LOG_EN_0_TXPARITYCTRL0ERR 12
|
|
#define NVSYNC2X_ERR_LOG_EN_0_TXPARITYCTRL1ERR 13
|
|
|
|
#define NVSYNC2X_ERR_REPORT_EN_0 0x208
|
|
#define NVSYNC2X_ERR_REPORT_EN_0_RXPARITYCTRL2ERR 7
|
|
#define NVSYNC2X_ERR_REPORT_EN_0_TXECCPARITYLIMITERR 8
|
|
#define NVSYNC2X_ERR_REPORT_EN_0_TXECCHDRDOUBLEBITERR 9
|
|
#define NVSYNC2X_ERR_REPORT_EN_0_TXECCDATADOUBLEBITERR 10
|
|
#define NVSYNC2X_ERR_REPORT_EN_0_TXPARITYCTRL0ERR 12
|
|
#define NVSYNC2X_ERR_REPORT_EN_0_TXPARITYCTRL1ERR 13
|
|
|
|
#define NVSYNC2X_ERR_CONTAIN_EN_0 0x20c
|
|
#define NVSYNC2X_ERR_CONTAIN_EN_0_RXPARITYCTRL2ERR 7
|
|
#define NVSYNC2X_ERR_CONTAIN_EN_0_TXECCHDRDOUBLEBITERR 9
|
|
#define NVSYNC2X_ERR_CONTAIN_EN_0_TXECCDATADOUBLEBITERR 10
|
|
#define NVSYNC2X_ERR_CONTAIN_EN_0_TXPARITYCTRL0ERR 12
|
|
#define NVSYNC2X_ERR_CONTAIN_EN_0_TXPARITYCTRL1ERR 13
|
|
|
|
|
|
/* MSSNVLINK Registers */
|
|
#define MSSNVLINK_CLK_SLCG 0x4
|
|
#define MSSNVLINK_CLK_SLCG_MCF_MASTER_CLK_ENBL 1
|
|
#define MSSNVLINK_CLK_SLCG_MCF_SLAVE_CLK_ENBL 2
|
|
#define MSSNVLINK_CLK_SLCG_CORE_CLK_UPDATE_ENBL 15
|
|
|
|
#define MSSNVLINK_MASTER_CREDIT_TRANSINFO 0x10
|
|
|
|
#define MSSNVLINK_MASTER_CREDIT_INGR_DATA 0x14
|
|
|
|
#define MSSNVLINK_SLAVE_CREDIT_TRANSINFO 0x20
|
|
|
|
#define MSSNVLINK_SLAVE_CREDIT_INGR_DATA 0x24
|
|
|
|
#define MSSNVLINK_MASTER_ACT_TRANSINFO 0x200
|
|
#define MSSNVLINK_MASTER_ACT_TRANSINFO_CNT_CURRENT_MASK 0x1ff
|
|
|
|
#define MSSNVLINK_MASTER_ACT_TRANSINFO_RMW 0x204
|
|
#define MSSNVLINK_MASTER_ACT_TRANSINFO_RMW_CNT_CURRENT_MASK 0x1ff
|
|
|
|
#define MSSNVLINK_MASTER_ACT_INGR_DATA 0x208
|
|
#define MSSNVLINK_MASTER_ACT_INGR_DATA_CNT_CURRENT_MASK 0xff
|
|
|
|
#define MSSNVLINK_MASTER_ACT_EGR_DATA 0x20c
|
|
#define MSSNVLINK_MASTER_ACT_EGR_DATA_CNT_CURRENT_MASK 0x1ff
|
|
|
|
#define MSSNVLINK_MASTER_RESERVED_EGR_DATA 0x210
|
|
#define MSSNVLINK_MASTER_RESERVED_EGR_DATA_CNT_CURRENT_MASK 0x1ff
|
|
|
|
#define MSSNVLINK_MASTER_ACT_TRANSDONE 0x214
|
|
#define MSSNVLINK_MASTER_ACT_TRANSDONE_CNT_CURRENT_MASK 0x3f
|
|
|
|
#define MSSNVLINK_MASTER_INGR_CMD_QUEUE 0x218
|
|
#define MSSNVLINK_MASTER_INGR_CMD_QUEUE_CNT_CURRENT_MASK 0x1ff
|
|
|
|
#define MSSNVLINK_MASTER_EGR_CMD_QUEUE 0x21c
|
|
#define MSSNVLINK_MASTER_EGR_CMD_QUEUE_CNT_CURRENT_MASK 0x1ff
|
|
|
|
#define MSSNVLINK_SLAVE_ACT_TRANSINFO 0x240
|
|
#define MSSNVLINK_SLAVE_ACT_TRANSINFO_CNT_CURRENT_MASK 0x1ff
|
|
|
|
#define MSSNVLINK_SLAVE_ACT_INGR_DATA 0x244
|
|
#define MSSNVLINK_SLAVE_ACT_INGR_DATA_CNT_CURRENT_MASK 0x3ff
|
|
|
|
#define MSSNVLINK_SLAVE_ACT_EGR_DATA 0x24c
|
|
#define MSSNVLINK_SLAVE_ACT_EGR_DATA_CNT_CURRENT_MASK 0x7f
|
|
|
|
#define MSSNVLINK_SLAVE_ACT_TAG_TABLE 0x250
|
|
#define MSSNVLINK_SLAVE_ACT_TAG_TABLE_CNT_CURRENT_MASK 0x3ff
|
|
|
|
#define MSSNVLINK_SLAVE_TRANSDONE_MCF_REQ 0x254
|
|
#define MSSNVLINK_SLAVE_TRANSDONE_MCF_REQ_CNT_CURRENT_MASK 0x1ff
|
|
|
|
#define MSSNVLINK_SLAVE_TRANSDONE_MCF_DAT 0x258
|
|
#define MSSNVLINK_SLAVE_TRANSDONE_MCF_DAT_CNT_CURRENT_MASK 0x3ff
|
|
|
|
#define MSSNVLINK_PM_MODE 0xe04
|
|
#define MSSNVLINK_PM_MODE_LOCK_ILA 22
|
|
|
|
#define MSSNVLINK_CLK_CONTROL 0x8
|
|
#define MSSNVLINK_CLK_CONTROL_PM_CLK_ENBL 17
|
|
|
|
/* NVLINK APERTURES - END */
|
|
|
|
|
|
/* NON-NVLINK APERTURES - START */
|
|
|
|
|
|
/* CPU System Registers */
|
|
#define SCF_NVLINK_CFG_TOM_MB_F(x) (((x) & 0xfffff) << 0)
|
|
#define SCF_NVLINK_CFG_EN 31
|
|
|
|
|
|
/*
|
|
* TODO: Currently the MC driver is disabled for T194. Therefore we can't use
|
|
* the MC driver's register read/write APIs (i.e. mc_writel()/mc_readl()). The
|
|
* WAR for this is to introduce a temporary API to access MC registers. We're
|
|
* using MCB_BASE for this WAR. Remove this WAR once the MC driver gets enabled
|
|
* for T194.
|
|
*/
|
|
/* MC Registers */
|
|
#define MCB_BASE 0x2c10000
|
|
|
|
|
|
/* NON-NVLINK APERTURES - END */
|
|
|
|
#endif /* NVLINK_REGS_H */
|