blob: f8fa7ed67596fd1dc16dafba3e141b3726c31bc3 (
plain)
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
/** @file
Copyright 2020 NXP
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef CHASSIS_H__
#define CHASSIS_H__
#include <Uefi.h>
#define NXP_LAYERSCAPE_CHASSIS2_DCFG_ADDRESS 0x1EE0000
#define NXP_LAYERSCAPE_CHASSIS2_SCFG_ADDRESS 0x1570000
#define SVR_SOC_VER(svr) (((svr) >> 8) & 0xFFFFFE)
#define SVR_MAJOR(svr) (((svr) >> 4) & 0xf)
#define SVR_MINOR(svr) (((svr) >> 0) & 0xf)
/* SMMU Defintions */
#define SMMU_BASE_ADDR 0x09000000
#define SMMU_REG_SCR0 (SMMU_BASE_ADDR + 0x0)
#define SMMU_REG_SACR (SMMU_BASE_ADDR + 0x10)
#define SMMU_REG_NSCR0 (SMMU_BASE_ADDR + 0x400)
#define SCR0_USFCFG_MASK 0x00000400
#define SCR0_CLIENTPD_MASK 0x00000001
#define SACR_PAGESIZE_MASK 0x00010000
#define USB_PHY1_BASE_ADDRESS 0x084F0000
#define USB_PHY2_BASE_ADDRESS 0x08500000
#define USB_PHY3_BASE_ADDRESS 0x08510000
/**
The Device Configuration Unit provides general purpose configuration and
status for the device. These registers only support 32-bit accesses.
**/
#pragma pack(1)
typedef struct {
UINT8 Reserved0[0x70 - 0x0];
UINT32 DeviceDisableRegister1; // Device Disable Register 1
UINT32 DeviceDisableRegister2; // Device Disable Register 2
UINT32 DeviceDisableRegister3; // Device Disable Register 3
UINT32 DeviceDisableRegister4; // Device Disable Register 4
UINT32 DeviceDisableRegister5; // Device Disable Register 5
UINT8 Reserved1[0xa4 - 0x84];
UINT32 Svr; // System Version Register
UINT8 Reserved2[0x100 - 0xa8];
UINT32 RcwSr[16]; // Reset Control Word Status Register
} NXP_LAYERSCAPE_CHASSIS2_DEVICE_CONFIG;
#pragma pack()
/* Supplemental Configuration Unit (SCFG) */
typedef struct {
UINT8 Res000[0x070-0x000];
UINT32 Usb1Prm1Cr;
UINT32 Usb1Prm2Cr;
UINT32 Usb1Prm3Cr;
UINT32 Usb2Prm1Cr;
UINT32 Usb2Prm2Cr;
UINT32 Usb2Prm3Cr;
UINT32 Usb3Prm1Cr;
UINT32 Usb3Prm2Cr;
UINT32 Usb3Prm3Cr;
UINT8 Res094[0x100-0x094];
UINT32 Usb2Icid;
UINT32 Usb3Icid;
UINT8 Res108[0x114-0x108];
UINT32 DmaIcid;
UINT32 SataIcid;
UINT32 Usb1Icid;
UINT32 QeIcid;
UINT32 SdhcIcid;
UINT32 EdmaIcid;
UINT32 EtrIcid;
UINT32 Core0SftRst;
UINT32 Core1SftRst;
UINT32 Core2SftRst;
UINT32 Core3SftRst;
UINT8 Res140[0x158-0x140];
UINT32 AltCBar;
UINT32 QspiCfg;
UINT8 Res160[0x180-0x160];
UINT32 DmaMcr;
UINT8 Res184[0x188-0x184];
UINT32 GicAlign;
UINT32 DebugIcid;
UINT8 Res190[0x1a4-0x190];
UINT32 SnpCnfgCr;
#define SCFG_SNPCNFGCR_SECRDSNP BIT31
#define SCFG_SNPCNFGCR_SECWRSNP BIT30
#define SCFG_SNPCNFGCR_SATARDSNP BIT23
#define SCFG_SNPCNFGCR_SATAWRSNP BIT22
#define SCFG_SNPCNFGCR_USB1RDSNP BIT21
#define SCFG_SNPCNFGCR_USB1WRSNP BIT20
#define SCFG_SNPCNFGCR_USB2RDSNP BIT15
#define SCFG_SNPCNFGCR_USB2WRSNP BIT16
#define SCFG_SNPCNFGCR_USB3RDSNP BIT13
#define SCFG_SNPCNFGCR_USB3WRSNP BIT14
UINT8 Res1a8[0x1ac-0x1a8];
UINT32 IntpCr;
UINT8 Res1b0[0x204-0x1b0];
UINT32 CoreSrEnCr;
UINT8 Res208[0x220-0x208];
UINT32 RvBar00;
UINT32 RvBar01;
UINT32 RvBar10;
UINT32 RvBar11;
UINT32 RvBar20;
UINT32 RvBar21;
UINT32 RvBar30;
UINT32 RvBar31;
UINT32 LpmCsr;
UINT8 Res244[0x400-0x244];
UINT32 QspIdQScr;
UINT32 EcgTxcMcr;
UINT32 SdhcIoVSelCr;
UINT32 RcwPMuxCr0;
/**Setting RCW PinMux Register bits 17-19 to select USB2_DRVVBUS
Setting RCW PinMux Register bits 21-23 to select USB2_PWRFAULT
Setting RCW PinMux Register bits 25-27 to select USB3_DRVVBUS
Setting RCW PinMux Register bits 29-31 to select USB3_DRVVBUS
**/
#define SCFG_RCWPMUXCRO_SELCR_USB 0x3333
/**Setting RCW PinMux Register bits 17-19 to select USB2_DRVVBUS
Setting RCW PinMux Register bits 21-23 to select USB2_PWRFAULT
Setting RCW PinMux Register bits 25-27 to select IIC4_SCL
Setting RCW PinMux Register bits 29-31 to select IIC4_SDA
**/
#define SCFG_RCWPMUXCRO_NOT_SELCR_USB 0x3300
UINT32 UsbDrvVBusSelCr;
#define SCFG_USBDRVVBUS_SELCR_USB1 0x00000000
#define SCFG_USBDRVVBUS_SELCR_USB2 0x00000001
#define SCFG_USBDRVVBUS_SELCR_USB3 0x00000003
UINT32 UsbPwrFaultSelCr;
#define SCFG_USBPWRFAULT_INACTIVE 0x00000000
#define SCFG_USBPWRFAULT_SHARED 0x00000001
#define SCFG_USBPWRFAULT_DEDICATED 0x00000002
#define SCFG_USBPWRFAULT_USB3_SHIFT 4
#define SCFG_USBPWRFAULT_USB2_SHIFT 2
#define SCFG_USBPWRFAULT_USB1_SHIFT 0
UINT32 UsbRefclkSelcr1;
UINT32 UsbRefclkSelcr2;
UINT32 UsbRefclkSelcr3;
UINT8 Res424[0x600-0x424];
UINT32 ScratchRw[4];
UINT8 Res610[0x680-0x610];
UINT32 CoreBCr;
UINT8 Res684[0x1000-0x684];
UINT32 Pex1MsiIr;
UINT32 Pex1MsiR;
UINT8 Res1008[0x2000-0x1008];
UINT32 Pex2;
UINT32 Pex2MsiR;
UINT8 Res2008[0x3000-0x2008];
UINT32 Pex3MsiIr;
UINT32 Pex3MsiR;
} NXP_LAYERSCAPE_CHASSIS2_SUPPLEMENTAL_CONFIG;
#endif // CHASSIS_H__
|