/** @file PCI Host Bridge Library instance for Marvell 70x0/80x0 Copyright (c) 2017, Linaro Ltd. All rights reserved.
Copyright (c) 2019 Marvell International Ltd. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __PCI_HOST_BRIDGE_LIB_CONSTRUCTOR_H__ #define __PCI_HOST_BRIDGE_LIB_CONSTRUCTOR_H__ #define IATU_VIEWPORT_OFF 0x900 #define IATU_VIEWPORT_INBOUND BIT31 #define IATU_VIEWPORT_OUTBOUND 0 #define IATU_VIEWPORT_REGION_INDEX(Idx) ((Idx) & 7) #define IATU_REGION_CTRL_1_OFF_OUTBOUND_0 0x904 #define IATU_REGION_CTRL_1_OFF_OUTBOUND_0_TYPE_MEM 0x0 #define IATU_REGION_CTRL_1_OFF_OUTBOUND_0_TYPE_IO 0x2 #define IATU_REGION_CTRL_1_OFF_OUTBOUND_0_TYPE_CFG0 0x4 #define IATU_REGION_CTRL_1_OFF_OUTBOUND_0_TYPE_CFG1 0x5 #define IATU_REGION_CTRL_2_OFF_OUTBOUND_0 0x908 #define IATU_REGION_CTRL_2_OFF_OUTBOUND_0_REGION_EN BIT31 #define IATU_REGION_CTRL_2_OFF_OUTBOUND_0_CFG_SHIFT_MODE BIT28 #define IATU_LWR_BASE_ADDR_OFF_OUTBOUND_0 0x90C #define IATU_UPPER_BASE_ADDR_OFF_OUTBOUND_0 0x910 #define IATU_LIMIT_ADDR_OFF_OUTBOUND_0 0x914 #define IATU_LWR_TARGET_ADDR_OFF_OUTBOUND_0 0x918 #define IATU_UPPER_TARGET_ADDR_OFF_OUTBOUND_0 0x91C #define PORT_LINK_CTRL_OFF 0x710 #define PORT_LINK_CTRL_OFF_LINK_CAPABLE_x1 (0x01 << 16) #define PORT_LINK_CTRL_OFF_LINK_CAPABLE_x2 (0x03 << 16) #define PORT_LINK_CTRL_OFF_LINK_CAPABLE_x4 (0x07 << 16) #define PORT_LINK_CTRL_OFF_LINK_CAPABLE_x8 (0x0f << 16) #define PORT_LINK_CTRL_OFF_LINK_CAPABLE_x16 (0x1f << 16) #define PORT_LINK_CTRL_OFF_LINK_CAPABLE_MASK (0x3f << 16) #define GEN2_CTRL_OFF 0x80c #define GEN2_CTRL_OFF_NUM_OF_LANES(n) (((n) & 0x1f) << 8) #define GEN2_CTRL_OFF_NUM_OF_LANES_MASK (0x1f << 8) #define GEN2_CTRL_OFF_DIRECT_SPEED_CHANGE BIT17 #define PCIE_GLOBAL_CTRL_OFFSET 0x8000 #define PCIE_GLOBAL_APP_LTSSM_EN BIT2 #define PCIE_GLOBAL_CTRL_DEVICE_TYPE_RC (0x4 << 4) #define PCIE_GLOBAL_CTRL_DEVICE_TYPE_MASK (0xF << 4) #define PCIE_GLOBAL_STATUS_REG 0x8008 #define PCIE_GLOBAL_STATUS_RDLH_LINK_UP BIT1 #define PCIE_GLOBAL_STATUS_PHY_LINK_UP BIT9 #define PCIE_PM_STATUS 0x8014 #define PCIE_PM_LTSSM_STAT_MASK (0x3f << 3) #define PCIE_GLOBAL_INT_MASK1_REG 0x8020 #define PCIE_INT_A_ASSERT_MASK BIT9 #define PCIE_INT_B_ASSERT_MASK BIT10 #define PCIE_INT_C_ASSERT_MASK BIT11 #define PCIE_INT_D_ASSERT_MASK BIT12 #define PCIE_ARCACHE_TRC_REG 0x8050 #define PCIE_AWCACHE_TRC_REG 0x8054 #define PCIE_ARUSER_REG 0x805C #define PCIE_AWUSER_REG 0x8060 #define ARCACHE_DEFAULT_VALUE 0x3511 #define AWCACHE_DEFAULT_VALUE 0x5311 #define AX_USER_DOMAIN_INNER_SHAREABLE (0x1 << 4) #define AX_USER_DOMAIN_OUTER_SHAREABLE (0x2 << 4) #define AX_USER_DOMAIN_MASK (0x3 << 4) #define PCIE_LINK_CAPABILITY 0x7C #define PCIE_LINK_CTL_2 0xA0 #define TARGET_LINK_SPEED_MASK 0xF #define LINK_SPEED_GEN_1 0x1 #define LINK_SPEED_GEN_2 0x2 #define LINK_SPEED_GEN_3 0x3 #define PCIE_GEN3_EQU_CTRL 0x8A8 #define GEN3_EQU_EVAL_2MS_DISABLE BIT5 #define PCIE_LINK_UP_TIMEOUT_US 40000 #endif