summaryrefslogtreecommitdiff
path: root/Silicon/Intel/LewisburgPkg/Include/Register/PchRegsScs.h
blob: b58618f49c760d2f122470cf534d18acfb064240 (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
/** @file

Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials are licensed and made available under
the terms and conditions of the BSD License that accompanies this distribution.
The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

**/

#ifndef _PCH_REGS_SCS_H_
#define _PCH_REGS_SCS_H_

//
// SCS Devices PCI Config Space Registers
//
#define R_PCH_SCS_DEV_PCS                     0x84                          ///< PME Control Status
#define B_PCH_SCS_DEV_PCS_PMESTS              BIT15                         ///< PME Status
#define B_PCH_SCS_DEV_PCS_PMEEN               BIT8                          ///< PME Enable
#define B_PCH_SCS_DEV_PCS_NSS                 BIT3                          ///< No Soft Reset
#define B_PCH_SCS_DEV_PCS_PS                  (BIT1 | BIT0)                 ///< Power State
#define B_PCH_SCS_DEV_PCS_PS_D3HOT            (BIT1 | BIT0)                 ///< Power State: D3Hot State
#define R_PCH_SCS_DEV_PG_CONFIG               0xA2                          ///< PG Config
#define B_PCH_SCS_DEV_PG_CONFIG_SE            BIT3                          ///< Sleep Enable
#define B_PCH_SCS_DEV_PG_CONFIG_PGE           BIT2                          ///< PG Enable
#define B_PCH_SCS_DEV_PG_CONFIG_I3E           BIT1                          ///< I3 Enable
#define B_PCH_SCS_DEV_PG_CONFIG_PMCRE         BIT0                          ///< PMC Request Enable
#define V_PCH_SCS_DEV_BAR0_SIZE               0x1000                        ///< BAR0 size
//
// SCS Devices MMIO Space Register
//
#define R_PCH_SCS_DEV_MEM_DMAADR                          0x00
#define R_PCH_SCS_DEV_MEM_BLKSZ                           0x04
#define R_PCH_SCS_DEV_MEM_BLKCNT                          0x06
#define R_PCH_SCS_DEV_MEM_CMDARG                          0x08
#define R_PCH_SCS_DEV_MEM_XFRMODE                         0x0C
#define B_PCH_SCS_DEV_MEM_XFRMODE_DMA_EN                  BIT0
#define B_PCH_SCS_DEV_MEM_XFRMODE_BLKCNT_EN               BIT1
#define B_PCH_SCS_DEV_MEM_XFRMODE_AUTOCMD_EN_MASK         (BIT2 | BIT3)
#define V_PCH_SCS_DEV_MEM_XFRMODE_AUTOCMD12_EN            1
#define B_PCH_SCS_DEV_MEM_XFRMODE_DATA_TRANS_DIR          BIT4               ///< 1: Read (Card to Host), 0: Write (Host to Card)
#define B_PCH_SCS_DEV_MEM_XFRMODE_MULTI_SINGLE_BLK        BIT5               ///< 1: Multiple Block, 0: Single Block
#define R_PCH_SCS_DEV_MEM_SDCMD                           0x0E
#define B_PCH_SCS_DEV_MEM_SDCMD_RESP_TYPE_SEL_MASK        (BIT0 | BIT1)
#define V_PCH_SCS_DEV_MEM_SDCMD_RESP_TYPE_SEL_NO_RESP     0
#define V_PCH_SCS_DEV_MEM_SDCMD_RESP_TYPE_SEL_RESP136     1
#define V_PCH_SCS_DEV_MEM_SDCMD_RESP_TYPE_SEL_RESP48      2
#define V_PCH_SCS_DEV_MEM_SDCMD_RESP_TYPE_SEL_RESP48_CHK  3
#define B_PCH_SCS_DEV_MEM_SDCMD_CMD_CRC_CHECK_EN          BIT3
#define B_PCH_SCS_DEV_MEM_SDCMD_CMD_INDEX_CHECK_EN        BIT4
#define B_PCH_SCS_DEV_MEM_SDCMD_DATA_PRESENT_SEL          BIT5
#define R_PCH_SCS_DEV_MEM_RESP                            0x10
#define R_PCH_SCS_DEV_MEM_BUFDATAPORT                     0x20
#define R_PCH_SCS_DEV_MEM_PSTATE                          0x24
#define B_PCH_SCS_DEV_MEM_PSTATE_DAT0                     BIT20
#define R_PCH_SCS_DEV_MEM_PWRCTL                          0x29
#define R_PCH_SCS_DEV_MEM_CLKCTL                          0x2C
#define R_PCH_SCS_DEV_MEM_TIMEOUT_CTL                     0x2E               ///< Timeout Control
#define B_PCH_SCS_DEV_MEM_TIMEOUT_CTL_DTCV                0x0F               ///< Data Timeout Counter Value
#define R_PCH_SCS_DEV_MEM_SWRST                           0x2F
#define B_PCH_SCS_DEV_MEM_SWRST_CMDLINE                   BIT1
#define B_PCH_SCS_DEV_MEM_SWRST_DATALINE                  BIT2 
#define R_PCH_SCS_DEV_MEM_NINTSTS                         0x30
#define B_PCH_SCS_DEV_MEM_NINTSTS_MASK                    0xFFFF
#define B_PCH_SCS_DEV_MEM_NINTSTS_CLEAR_MASK              0x60FF
#define B_PCH_SCS_DEV_MEM_NINTSTS_CMD_COMPLETE            BIT0
#define B_PCH_SCS_DEV_MEM_NINTSTS_TRANSFER_COMPLETE       BIT1
#define B_PCH_SCS_DEV_MEM_NINTSTS_DMA_INTERRUPT           BIT3
#define B_PCH_SCS_DEV_MEM_NINTSTS_BUF_READ_READY_INTR     BIT5
#define R_PCH_SCS_DEV_MEM_ERINTSTS                        0x32
#define B_PCH_SCS_DEV_MEM_ERINTSTS_MASK                   0x13FF
#define B_PCH_SCS_DEV_MEM_ERINTSTS_CLEAR_MASK             0x13FF
#define R_PCH_SCS_DEV_MEM_NINTEN                          0x34
#define B_PCH_SCS_DEV_MEM_NINTEN_MASK                     0x7FFF
#define R_PCH_SCS_DEV_MEM_ERINTEN                         0x36
#define B_PCH_SCS_DEV_MEM_ERINTEN_MASK                    0x13FF
#define R_PCH_SCS_DEV_MEM_NINTSIGNEN                      0x38
#define B_PCH_SCS_DEV_MEM_NINTSIGNEN_MASK                 0x7FFF
#define R_PCH_SCS_DEV_MEM_ERINTSIGNEN                     0x3A
#define B_PCH_SCS_DEV_MEM_ERINTSIGNEN_MASK                0x13FF
#define R_PCH_SCS_DEV_MEM_HOST_CTL2                       0x3E
#define B_PCH_SCS_DEV_MEM_HOST_CTL2_MODE_MASK             (BIT0 | BIT1 | BIT2)
#define V_PCH_SCS_DEV_MEM_HOST_CTL2_MODE_HS400            5
#define V_PCH_SCS_DEV_MEM_HOST_CTL2_MODE_DDR50                      4
#define V_PCH_SCS_DEV_MEM_HOST_CTL2_MODE_SDR104           3
#define V_PCH_SCS_DEV_MEM_HOST_CTL2_MODE_SDR25                      1
#define R_PCH_SCS_DEV_MEM_CAP1                                      0x40
#define R_PCH_SCS_DEV_MEM_CAP2                            0x44
#define B_PCH_SCS_DEV_MEM_CAP2_HS400_SUPPORT              BIT31
#define B_PCH_SCS_DEV_MEM_CAP2_SDR104_SUPPORT             BIT1
#define R_PCH_SCS_DEV_MEM_CESHC2                          0x3C              ///< Auto CMD12 Error Status Register & Host Control 2
#define B_PCH_SCS_DEV_MEM_CESHC2_ASYNC_INT                BIT30             ///< Asynchronous Interrupt Enable
#define R_PCH_SCS_DEV_MEM_CAP_BYPASS_CONTROL                        0x810
#define V_PCH_SCS_DEV_MEM_CAP_BYPASS_CONTROL_EN                     0x5A
#define R_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1                 0x814
#define V_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_EMMC_DEFAULTS             0x3C80EB1E
#define V_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_SDIO_DEFAULTS             0x1C80EF1E
#define V_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_SDCARD_DEFAULTS           0x1C80E75C
#define B_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_HS400           BIT29
#define B_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_TIMEOUT_CLK_FREQ          (BIT27 | BIT26 | BIT25 | BIT24 | BIT23 | BIT22)
#define N_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_TIMEOUT_CLK_FREQ          22
#define V_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_TIMEOUT_CLK_FREQ          0x1
#define B_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_TIMER_COUNT               (BIT20 | BIT19 | BIT18 | BIT17)
#define N_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_TIMER_COUNT               17
#define V_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_TIMER_COUNT               0x8
#define B_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_SLOT_TYPE                 (BIT12 | BIT11)
#define N_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_SLOT_TYPE                 11
#define V_PCH_SCS_DEV_MEM_CAP_BYPASS_REG1_SLOT_TYPE_EMBEDDED        0x1
#define R_PCH_SCS_DEV_MEM_CAP_BYPASS_REG2                           0x818
#define V_PCH_SCS_DEV_MEM_CAP_BYPASS_REG2_EMMC_DEFAULTS             0x040040C8
#define V_PCH_SCS_DEV_MEM_CAP_BYPASS_REG2_SDIO_DEFAULTS             0x040000C8
#define V_PCH_SCS_DEV_MEM_CAP_BYPASS_REG2_SDCARD_DEFAULTS           0x040000C8
#define R_PCH_SCS_DEV_MEM_TX_CMD_DLL_CNTL1                          0x820
#define R_PCH_SCS_DEV_MEM_TX_CMD_DLL_CNTL2                          0x80C
#define R_PCH_SCS_DEV_MEM_TX_DATA_DLL_CNTL1               0x824
#define R_PCH_SCS_DEV_MEM_TX_DATA_DLL_CNTL2                         0x828
#define R_PCH_SCS_DEV_MEM_RX_CMD_DATA_DLL_CNTL1                     0x82C
#define R_PCH_SCS_DEV_MEM_RX_STROBE_DLL_CNTL              0x830
#define R_PCH_SCS_DEV_MEM_RX_CMD_DATA_DLL_CNTL2                     0x834
#define N_PCH_SCS_DEV_MEM_RX_CMD_DATA_DLL_CNTL2_CLKSRC_RX            16
#define V_PCH_SCS_DEV_MEM_RX_CMD_DATA_DLL_CNTL2_CLKSRC_RX_CLK_AUTO   0x2
#define V_PCH_SCS_DEV_MEM_RX_CMD_DATA_DLL_CNTL2_CLKSRC_RX_CLK_BEFORE 0x1
#define V_PCH_SCS_DEV_MEM_RX_CMD_DATA_DLL_CNTL2_CLKSRC_RX_CLK_AFTER  0x0

//
// SCS Private Configuration Space Registers
//
#define R_PCH_PCR_SCS_IOSFCTL                     0x00                          ///< IOSF Control
#define B_PCH_PCR_SCS_IOSFCTL_NSNPDIS             BIT7                          ///< Non-Snoop Disable
#define B_PCH_PCR_SCS_IOSFCTL_MAX_RD_PEND         (BIT3 | BIT2 | BIT1 | BIT0)   ///< Max upstream pending reads
#define R_PCH_PCR_SCS_OCPCTL                      0x10                          ///< OCP Control
#define B_PCH_PCR_SCS_OCPCTL_NPEN                 BIT0                          ///< Downstream non-posted memory write capability
#define R_PCH_PCR_SCS_PMCTL                       0x1D0                         ///< Power Management Control
#define R_PCH_PCR_SCS_PCICFGCTR1                  0x200                         ///< PCI Configuration Control 1 - eMMC
#define R_PCH_PCR_SCS_PCICFGCTR2                  0x204                         ///< PCI Configuration Control 2 - SDIO
#define R_PCH_PCR_SCS_PCICFGCTR3                  0x208                         ///< PCI Configuration Control 3 - SD Card
#define B_PCH_PCR_SCS_PCICFGCTR_PCI_IRQ           0x0FF00000                    ///< PCI IRQ number
#define N_PCH_PCR_SCS_PCICFGCTR_PCI_IRQ           20
#define B_PCH_PCR_SCS_PCICFGCTR_ACPI_IRQ          0x000FF000                    ///< ACPI IRQ number
#define N_PCH_PCR_SCS_PCICFGCTR_ACPI_IRQ          12
#define B_PCH_PCR_SCS_PCICFGCTR_IPIN1             (BIT11 | BIT10 | BIT9 | BIT8) ///< Interrupt Pin
#define N_PCH_PCR_SCS_PCICFGCTR_IPIN1             8
#define B_PCH_PCR_SCS_PCICFGCTR_BAR1DIS           BIT7                          ///< BAR 1 Disable
#define B_PCH_PCR_SCS_PCICFGCTR_PS                0x7C                          ///< PME Support
#define B_PCH_PCR_SCS_PCICFGCTR_ACPI_INT_EN       BIT1                          ///< ACPI Interrupt Enable
#define B_PCH_PCR_SCS_PCICFGCTR_PCI_CFG_DIS       BIT0                          ///< PCI Configuration Space Disable

#define R_PCH_PCR_SCS_GPPRVRW1                    0x600                         ///< Clock Gating Control
#define R_PCH_PCR_SCS_GPPRVRW2                    0x604                         ///< Host Controller Disable
#define B_PCH_PCR_SCS_GPPRVRW2_EMMC_DIS           BIT1                          ///< eMMC Host Controller Disable
#define B_PCH_PCR_SCS_GPPRVRW2_SDIO_SDCARD_DIS    BIT2                          ///< 1: SDIO Host Controller Disable, 0: SDCARD Host Controller Disable
#define R_PCH_PCR_SCS_GPPRVRW6                    0x614                         ///< 1.8V Signal Select Delay Control
#define V_PCH_PCR_SCS_GPPRVRW6_1P8_SEL_DELAY      0x7F                          ///< Rcomp SDCARD 10ms delay during switch

#endif