hc
2024-03-22 a0752693d998599af469473b8dc239ef973a012f
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__