/** @file
|
*
|
* Copyright (c) 2019, Jeremy Linton
|
* Copyright (c) 2019, Pete Batard <pete@akeo.ie>.
|
*
|
* SPDX-License-Identifier: BSD-2-Clause-Patent
|
*
|
**/
|
|
#ifndef BCM2711_H__
|
#define BCM2711_H__
|
|
#define BCM2711_SOC_REGISTERS (FixedPcdGet64 (PcdBcm27xxRegistersAddress))
|
#define BCM2711_SOC_REGISTER_LENGTH 0x02000000
|
|
/* Generic PCI addresses */
|
#define PCIE_TOP_OF_MEM_WIN (FixedPcdGet64 (PcdBcm27xxPciBusMmioAdr))
|
#define PCIE_CPU_MMIO_WINDOW (FixedPcdGet64 (PcdBcm27xxPciCpuMmioAdr))
|
#define PCIE_BRIDGE_MMIO_LEN (FixedPcdGet32 (PcdBcm27xxPciBusMmioLen))
|
|
/* PCI root bridge control registers location */
|
#define PCIE_REG_BASE (FixedPcdGet32 (PcdBcm27xxPciRegBase))
|
#define PCIE_REG_LIMIT 0x9310
|
|
/* PCI root bridge control registers */
|
#define BRCM_PCIE_CAP_REGS 0x00ac /* Offset to ecam like range for root port */
|
#define PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1 0x0188
|
#define BRCM_PCIE_CLASS 0x043c
|
#define PCIE_MISC_MISC_CTRL 0x4008
|
#define PCIE_MISC_CPU_2_PCIE_MEM_WIN0_LO 0x400c
|
#define PCIE_MISC_CPU_2_PCIE_MEM_WIN0_HI 0x4010
|
#define PCIE_MISC_RC_BAR1_CONFIG_LO 0x402c
|
#define PCIE_MISC_RC_BAR2_CONFIG_LO 0x4034
|
#define PCIE_MISC_RC_BAR2_CONFIG_HI 0x4038
|
#define PCIE_MISC_RC_BAR3_CONFIG_LO 0x403c
|
#define PCIE_MISC_PCIE_STATUS 0x4068
|
#define PCIE_MISC_REVISION 0x406c
|
#define PCIE_MISC_CPU_2_PCIE_MEM_WIN0_BASE_LIMIT 0x4070
|
#define PCIE_MISC_CPU_2_PCIE_MEM_WIN0_BASE_HI 0x4080
|
#define PCIE_MISC_CPU_2_PCIE_MEM_WIN0_LIMIT_HI 0x4084
|
#define PCIE_MISC_HARD_PCIE_HARD_DEBUG 0x4204
|
|
#define PCIE_INTR2_CPU_STATUS 0x4300
|
#define PCIE_INTR2_CPU_SET 0x4304
|
#define PCIE_INTR2_CPU_CLR 0x4308
|
#define PCIE_INTR2_CPU_MASK_STATUS 0x430c
|
#define PCIE_INTR2_CPU_MASK_SET 0x4310
|
#define PCIE_INTR2_CPU_MASK_CLR 0x4314
|
|
#define PCIE_RGR1_SW_INIT_1 0x9210
|
#define PCIE_EXT_CFG_INDEX 0x9000
|
/* A small window pointing at the ECAM of the device selected by CFG_INDEX */
|
#define PCIE_EXT_CFG_DATA 0x8000
|
|
#define PCIE_RC_CFG_VENDOR_VENDOR_SPECIFIC_REG1_ENDIAN_MODE_BAR2_MASK 0xc
|
#define PCIE_RC_CFG_PRIV1_ID_VAL3_CLASS_CODE_MASK 0xffffff
|
|
#define PCIE_MISC_MISC_CTRL_SCB_ACCESS_EN_MASK 0x1000
|
#define PCIE_MISC_MISC_CTRL_CFG_READ_UR_MODE_MASK 0x2000
|
#define PCIE_MISC_MISC_CTRL_MAX_BURST_SIZE_MASK 0x300000
|
#define PCIE_MISC_MISC_CTRL_SCB0_SIZE_MASK 0xf8000000
|
#define PCIE_MISC_MISC_CTRL_SCB1_SIZE_MASK 0x7c00000
|
#define PCIE_MISC_MISC_CTRL_SCB2_SIZE_MASK 0x1f
|
#define PCIE_MISC_RC_BAR2_CONFIG_LO_SIZE_MASK 0x1f
|
|
#define PCIE_RGR1_SW_INIT_1_INIT_MASK 0x2
|
#define PCIE_RGR1_SW_INIT_1_PERST_MASK 0x1
|
|
#define PCIE_MISC_HARD_PCIE_HARD_DEBUG_SERDES_IDDQ_MASK 0x08000000
|
|
#define PCIE_MISC_HARD_PCIE_HARD_DEBUG_CLKREQ_DEBUG_ENABLE_MASK 0x2
|
|
#define PCIE_MISC_CPU_2_PCIE_MEM_WIN0_BASE_LIMIT_LIMIT_MASK 0xfff00000
|
#define PCIE_MISC_CPU_2_PCIE_MEM_WIN0_BASE_LIMIT_BASE_MASK 0xfff0
|
#define PCIE_MISC_CPU_2_PCIE_MEM_WIN0_BASE_HI_BASE_MASK 0xff
|
#define PCIE_MISC_CPU_2_PCIE_MEM_WIN0_LIMIT_HI_LIMIT_MASK 0xff
|
#define PCIE_MISC_CPU_2_PCIE_MEM_WIN0_MASK_BITS 0xc
|
|
|
#define PCIE_MISC_REVISION_MAJMIN_MASK 0xffff
|
|
#define BURST_SIZE_128 0
|
#define BURST_SIZE_256 1
|
#define BURST_SIZE_512 2
|
|
#define GENET_BASE_ADDRESS FixedPcdGet64 (PcdBcmGenetRegistersAddress)
|
#define GENET_LENGTH 0x00010000
|
|
#define THERM_SENSOR 0xfd5d2200
|
|
#define ID_CHIPREV 0xfc404000
|
|
#endif /* BCM2711_H__ */
|