hc
2024-03-26 e0728245c89800c2038c23308f2d88969d5b41c8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/** @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__ */