summaryrefslogtreecommitdiff
path: root/src/soc/intel/xeon_sp/include
diff options
context:
space:
mode:
authorMarc Jones <marcjones@sysproconsulting.com>2021-01-21 10:53:47 -0700
committerMarc Jones <marc@marcjonesconsulting.com>2021-03-09 16:50:25 +0000
commit81ef9c21da5e794db63ed174f334669c8c3cbd56 (patch)
tree2279a7c693d1eae04ba485ce0fab05e7e84ad7e9 /src/soc/intel/xeon_sp/include
parentbab0544200403c944045237329187fda9406da2a (diff)
soc/intel/xeon_sp: Add PCH lockdown
Add SOC_INTEL_COMMON_PCH_LOCKDOWN and PMC_GLOBAL_RESET_ENABLE_LOCK to meet device security requirements. LOCKDOWN has dependencies on SOC_INTEL_COMMON_PCH_BASE and several other common block devices. Add COMMON_PCH_BASE and COMMON_PCH_SERVER to pick up LOCKDOWN and the dependencies. COMMON_PCH_SERVER adds the following common devices that were not previously included by XEON_SP: SOC_INTEL_COMMON_BLOCK_CHIP_CONFIG SOC_INTEL_COMMON_BLOCK_CSE SOC_INTEL_COMMON_BLOCK_GPIO_ITSS_POL_CFG SOC_INTEL_COMMON_BLOCK_ITSS SOC_INTEL_COMMON_PCH_LOCKDOWN SOC_INTEL_COMMON_BLOCK_SATA SOC_INTEL_COMMON_BLOCK_SMBUS SOC_INTEL_COMMON_BLOCK_XHCI Change-Id: Iab97123e487f4f13f874f364a9c51723d234d4f0 Signed-off-by: Marc Jones <marcjones@sysproconsulting.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/49849 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Jay Talbott <JayTalbott@sysproconsulting.com> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/soc/intel/xeon_sp/include')
-rw-r--r--src/soc/intel/xeon_sp/include/soc/iomap.h2
-rw-r--r--src/soc/intel/xeon_sp/include/soc/itss.h10
-rw-r--r--src/soc/intel/xeon_sp/include/soc/me.h64
-rw-r--r--src/soc/intel/xeon_sp/include/soc/pmc.h2
4 files changed, 78 insertions, 0 deletions
diff --git a/src/soc/intel/xeon_sp/include/soc/iomap.h b/src/soc/intel/xeon_sp/include/soc/iomap.h
index a51b58c1a6..2df5f8bfe1 100644
--- a/src/soc/intel/xeon_sp/include/soc/iomap.h
+++ b/src/soc/intel/xeon_sp/include/soc/iomap.h
@@ -29,6 +29,8 @@
/* High Performance Event Timer */
#define HPET_BASE_ADDRESS 0xfed00000
+#define HECI1_BASE_ADDRESS 0xfed1a000
+
#define PCH_PWRM_BASE_ADDRESS 0xfe000000
#define PCH_PWRM_BASE_SIZE 0x10000
diff --git a/src/soc/intel/xeon_sp/include/soc/itss.h b/src/soc/intel/xeon_sp/include/soc/itss.h
new file mode 100644
index 0000000000..770a7dde5e
--- /dev/null
+++ b/src/soc/intel/xeon_sp/include/soc/itss.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef SOC_INTEL_XEON_SP_ITSS_H
+#define SOC_INTEL_XEONS_P_ITSS_H
+
+#define ITSS_MAX_IRQ 119
+#define IRQS_PER_IPC 32
+#define NUM_IPC_REGS ((ITSS_MAX_IRQ + IRQS_PER_IPC - 1)/IRQS_PER_IPC)
+
+#endif /* SOC_INTEL_XEON_SP_ITSS_H */
diff --git a/src/soc/intel/xeon_sp/include/soc/me.h b/src/soc/intel/xeon_sp/include/soc/me.h
new file mode 100644
index 0000000000..e9791ecb60
--- /dev/null
+++ b/src/soc/intel/xeon_sp/include/soc/me.h
@@ -0,0 +1,64 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#ifndef _XEON_SP_ME_H_
+#define _XEON_SP_ME_H_
+
+/* ME Host Firmware Status register 1 */
+union me_hfsts1 {
+ u32 data;
+ struct {
+ u32 working_state: 4;
+ u32 mfg_mode: 1;
+ u32 fpt_bad: 1;
+ u32 operation_state: 3;
+ u32 fw_init_complete: 1;
+ u32 ft_bup_ld_flr: 1;
+ u32 update_in_progress: 1;
+ u32 error_code: 4;
+ u32 operation_mode: 4;
+ u32 reset_count: 4;
+ u32 boot_options_present: 1;
+ u32 reserved1: 1;
+ u32 bist_test_state: 1;
+ u32 bist_reset_request: 1;
+ u32 current_power_source: 2;
+ u32 d3_support_valid: 1;
+ u32 d0i3_support_valid: 1;
+ } __packed fields;
+};
+
+union me_hfsts2 {
+ u32 data;
+ struct {
+ u32 reserved1: 3;
+ u32 invoke_mebx: 1;
+ u32 cpu_replaced_sts: 1;
+ u32 reserved2: 1;
+ u32 mfs_failure: 1;
+ u32 warm_reset_request: 1;
+ u32 cpu_replaced_valid: 1;
+ u32 low_power_state: 1;
+ u32 power_gating_ind: 1;
+ u32 reserved3: 1;
+ u32 fw_upd_forced_sb: 1;
+ u32 reserved4: 3;
+ u32 current_state: 8;
+ u32 current_pmevent: 4;
+ u32 progress_code: 4;
+ } __packed fields;
+};
+
+union me_hfsts3 {
+ u32 data;
+ struct {
+ u32 reserved1: 4;
+ u32 fw_sku: 3;
+ u32 encrypt_key_check: 1;
+ u32 pch_config_change: 1;
+ u32 reserved2: 21;
+ u32 encrypt_key_override: 1;
+ u32 power_down_mitigation: 1;
+ } __packed fields;
+};
+
+#endif
diff --git a/src/soc/intel/xeon_sp/include/soc/pmc.h b/src/soc/intel/xeon_sp/include/soc/pmc.h
index 40b41c7d59..bbdb60bb4b 100644
--- a/src/soc/intel/xeon_sp/include/soc/pmc.h
+++ b/src/soc/intel/xeon_sp/include/soc/pmc.h
@@ -34,6 +34,8 @@
#define SLEEP_AFTER_POWER_FAIL (1 << 0)
/* Memory mapped IO registers in PMC */
+#define PMSYNC_TPR_CFG 0xc8
+#define PMSYNC_LOCK (1 << 15)
#define GPIO_GPE_CFG 0x120
#define GPE0_DWX_MASK 0xf
#define GPE0_DW_SHIFT(x) (4 * (x))