Lean Sheng Tan has uploaded this change for review.

View Change

soc/intel/elkhartlake: Add Initial support for Intel PSE

IntelĀ® Programmable Services Engine (IntelĀ® PSE) is a dedicated
offload engine for IoT functions powered by an ARM Cortex-M7
microcontroller. It provides independent, low-DMIPS computing and
low-speed I/Os for IoT applications, plus dedicated services for
real-time computing and time-sensitive synchronization.

This patch add initial PSE loading support for EHL.

Signed-off-by: Tan, Lean Sheng <lean.sheng.tan@intel.com>
Change-Id: I96e779021938689e0f9a96046b9c292f3ff1db4e
---
M src/soc/intel/elkhartlake/Kconfig
M src/soc/intel/elkhartlake/Makefile.inc
M src/soc/intel/elkhartlake/fsp_params.c
3 files changed, 26 insertions(+), 1 deletion(-)

git pull ssh://review.coreboot.org:29418/coreboot refs/changes/36/47336/1
diff --git a/src/soc/intel/elkhartlake/Kconfig b/src/soc/intel/elkhartlake/Kconfig
index 89da0be..7fc2e5f 100644
--- a/src/soc/intel/elkhartlake/Kconfig
+++ b/src/soc/intel/elkhartlake/Kconfig
@@ -194,6 +194,19 @@
config FSP_FD_PATH
default "3rdparty/fsp/ElkhartLakeFspBinPkg/Fsp.fd"

+config PSE_IMAGE
+ bool "Add a PSE binary to CBFS"
+ help
+ Add a PSE binary file to CBFS. The PSE describes the integrated
+ programmable service engine that is designed as an Asymmetric
+ Multi-Processing (AMP) system.
+
+config PSE_IMAGE_FILE
+ string "PSE binary path and filename"
+ depends on PSE_IMAGE
+ help
+ The path and filename of the PSE binary.
+
config SOC_INTEL_ELKHARTLAKE_DEBUG_CONSENT
int "Debug Consent for EHL"
# USB DBC is more common for developers so make this default to 3 if
diff --git a/src/soc/intel/elkhartlake/Makefile.inc b/src/soc/intel/elkhartlake/Makefile.inc
index 5c46f86..9456d4e 100644
--- a/src/soc/intel/elkhartlake/Makefile.inc
+++ b/src/soc/intel/elkhartlake/Makefile.inc
@@ -57,4 +57,10 @@
CPPFLAGS_common += -I$(src)/soc/intel/elkhartlake
CPPFLAGS_common += -I$(src)/soc/intel/elkhartlake/include

+cbfs-files-$(CONFIG_PSE_IMAGE) += pse.bin
+pse.bin-file := $(CONFIG_PSE_IMAGE_FILE)
+pse.bin-type := raw
+pse.bin-align := 0x1000
+pse.bin-compression := lzma
+
endif
diff --git a/src/soc/intel/elkhartlake/fsp_params.c b/src/soc/intel/elkhartlake/fsp_params.c
index 3d740fb..4ec2cab 100644
--- a/src/soc/intel/elkhartlake/fsp_params.c
+++ b/src/soc/intel/elkhartlake/fsp_params.c
@@ -59,8 +59,14 @@
/* Parse device tree and fill in FSP UPDs */
parse_devicetree(params);

- /* TODO: Update with UPD override as FSP matures */

+ if (CONFIG(PSE_IMAGE)){
+ //uint32_t psebase =0x0;
+ static char psefw[256 * KiB];
+ size_t psefwsize = cbfs_boot_load_file("pse.bin",
+ psefw, sizeof(psefw), CBFS_TYPE_RAW);
+ params->SiipRegionBase = (uint32_t)&psefw;
+ params->SiipRegionSize = psefwsize;
/* Override/Fill FSP Silicon Param for mainboard */
mainboard_silicon_init_params(params);
}

To view, visit change 47336. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I96e779021938689e0f9a96046b9c292f3ff1db4e
Gerrit-Change-Number: 47336
Gerrit-PatchSet: 1
Gerrit-Owner: Lean Sheng Tan <lean.sheng.tan@intel.com>
Gerrit-MessageType: newchange