soc/qualcomm/x1p42100: Support loading QTEE FW config files
This patch adds support to load the config files associated with
the QTEE firmware in X1P42100.
TEST=Create an image.serial.bin and ensure it boots on X1P42100.
Ensure config files are loaded into the appropriate regions.
[INFO ] CBFS: Found 'fallback/tzoem_cfg' @0x3ab3c0 size 0x3900
[DEBUG] read SPI 0xfdb418 0x3900: 1200 us, 12160 KB/s, 97.280 Mbps
[INFO ] VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
supported for secdata_kernel v0, return 0
[INFO ] VB2:vb2_digest_init() 14592 bytes, hash algo 2, HW acceleration
forbidden
[DEBUG] Loading segment from ROM address 0x9f8040f8
[DEBUG] data (compression=1)
[DEBUG] New segment dstaddr 0xd802a000 memsize 0x1d0 srcaddr
0x9f80414c filesize 0xd2
[DEBUG] Loading Segment: addr: 0xd802a000 memsz: 0x00000000000001d0
filesz: 0x00000000000000d2
[DEBUG] using LZMA
[SPEW ] [ 0xd802a000, d802a1d0, 0xd802a1d0) <- 9f80414c
[DEBUG] Loading segment from ROM address 0x9f804114
[DEBUG] data (compression=1)
[DEBUG] New segment dstaddr 0xd802f000 memsize 0x9000 srcaddr
0x9f80421e filesize 0x37da
[DEBUG] Loading Segment: addr: 0xd802f000 memsz: 0x0000000000009000
filesz: 0x00000000000037da
[DEBUG] using LZMA
[SPEW ] [ 0xd802f000, d8038000, 0xd8038000) <- 9f80421e
[DEBUG] Loading segment from ROM address 0x9f804130
[DEBUG] Entry Point 0xd802f000
[SPEW ] Loaded segments
[INFO ] CBFS: Found 'fallback/tzqti_cfg' @0x3aed40 size 0x19c3
[DEBUG] read SPI 0xfded98 0x19c3: 562 us, 11734 KB/s, 93.872 Mbps
[INFO ] VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
supported for secdata_kernel v0, return 0
[INFO ] VB2:vb2_digest_init() 6595 bytes, hash algo 2, HW acceleration
forbidden
[DEBUG] Loading segment from ROM address 0x9f8040f8
[DEBUG] data (compression=1)
[DEBUG] New segment dstaddr 0xd803b000 memsize 0x1d0 srcaddr
0x9f80414c filesize 0xd2
[DEBUG] Loading Segment: addr: 0xd803b000 memsz: 0x00000000000001d0
filesz: 0x00000000000000d2
[DEBUG] using LZMA
[SPEW ] [ 0xd803b000, d803b1d0, 0xd803b1d0) <- 9f80414c
[DEBUG] Loading segment from ROM address 0x9f804114
[DEBUG] data (compression=1)
[DEBUG] New segment dstaddr 0xd8040000 memsize 0xe000 srcaddr
0x9f80421e filesize 0x189d
[DEBUG] Loading Segment: addr: 0xd8040000 memsz: 0x000000000000e000
filesz: 0x000000000000189d
[DEBUG] using LZMA
[SPEW ] [ 0xd8040000, d804e000, 0xd804e000) <- 9f80421e
[DEBUG] Loading segment from ROM address 0x9f804130
[DEBUG] Entry Point 0xd8040000
[SPEW ] Loaded segments
[INFO ] CBFS: Found 'fallback/tzac_cfg' @0x3b0780 size 0x1f0d
[DEBUG] read SPI 0xfe07d8 0x1f0d: 670 us, 11864 KB/s, 94.912 Mbps
[INFO ] VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
supported for secdata_kernel v0, return 0
[INFO ] VB2:vb2_digest_init() 7949 bytes, hash algo 2, HW acceleration
forbidden
[DEBUG] Loading segment from ROM address 0x9f8040f8
[DEBUG] data (compression=1)
[DEBUG] New segment dstaddr 0xd8019000 memsize 0xb800 srcaddr
0x9f804130 filesize 0x1ed5
[DEBUG] Loading Segment: addr: 0xd8019000 memsz: 0x000000000000b800
filesz: 0x0000000000001ed5
[DEBUG] using LZMA
[SPEW ] [ 0xd8019000, d8024800, 0xd8024800) <- 9f804130
[DEBUG] Loading segment from ROM address 0x9f804114
[DEBUG] Entry Point 0xd8019000
[SPEW ] Loaded segments
[INFO ] CBFS: Found 'fallback/hypac_cfg' @0x3b2700 size 0x11f2
[DEBUG] read SPI 0xfe2758 0x11f2: 400 us, 11485 KB/s, 91.880 Mbps
[INFO ] VB2:vb2_secdata_kernel_get() VB2_SECDATA_KERNEL_FLAGS not
supported for secdata_kernel v0, return 0
[INFO ] VB2:vb2_digest_init() 4594 bytes, hash algo 2, HW acceleration
forbidden
[DEBUG] Loading segment from ROM address 0x9f8040f8
[DEBUG] data (compression=1)
[DEBUG] New segment dstaddr 0xd8000000 memsize 0xc8f4 srcaddr
0x9f804130 filesize 0x11ba
[DEBUG] Loading Segment: addr: 0xd8000000 memsz: 0x000000000000c8f4
filesz: 0x00000000000011ba
[DEBUG] using LZMA
[SPEW ] [ 0xd8000000, d800c8f4, 0xd800c8f4) <- 9f804130
[DEBUG] Loading segment from ROM address 0x9f804114
[DEBUG] Entry Point 0xd8000000
[SPEW ] Loaded segments
Change-Id: If07840fca327e51c385dbe3f33b9f775bbee7654
Signed-off-by: Venkateshwar S <vens@qualcomm.corp-partner.google.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/89550
Reviewed-by: Subrata Banik <subratabanik@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
50adb3f23c
commit
03524780ff
2 changed files with 60 additions and 0 deletions
|
|
@ -262,6 +262,38 @@ $(GSI_FW_CBFS)-type := raw
|
|||
$(GSI_FW_CBFS)-compression := $(CBFS_COMPRESS_FLAG)
|
||||
cbfs-files-y += $(GSI_FW_CBFS)
|
||||
|
||||
################################################################################
|
||||
DEVCFG_TZ_FILE := $(X1P42100_BLOB)/qtee/tz_oem_config.mbn
|
||||
DEVCFG_TZ_FILE_CBFS := $(CONFIG_CBFS_PREFIX)/tzoem_cfg
|
||||
$(DEVCFG_TZ_FILE_CBFS)-file := $(DEVCFG_TZ_FILE)
|
||||
$(DEVCFG_TZ_FILE_CBFS)-type := payload
|
||||
$(DEVCFG_TZ_FILE_CBFS)-compression := $(CBFS_COMPRESS_FLAG)
|
||||
cbfs-files-y += $(DEVCFG_TZ_FILE_CBFS)
|
||||
|
||||
################################################################################
|
||||
TZQTI_CFG_FILE := $(X1P42100_BLOB)/qtee/tz_qti_config.mbn
|
||||
TZQTI_CFG_FILE_CBFS := $(CONFIG_CBFS_PREFIX)/tzqti_cfg
|
||||
$(TZQTI_CFG_FILE_CBFS)-file := $(TZQTI_CFG_FILE)
|
||||
$(TZQTI_CFG_FILE_CBFS)-type := payload
|
||||
$(TZQTI_CFG_FILE_CBFS)-compression := $(CBFS_COMPRESS_FLAG)
|
||||
cbfs-files-y += $(TZQTI_CFG_FILE_CBFS)
|
||||
|
||||
################################################################################
|
||||
TZAC_CFG_FILE := $(X1P42100_BLOB)/ac_policy/tz_ac_config.elf
|
||||
TZAC_CFG_FILE_CBFS := $(CONFIG_CBFS_PREFIX)/tzac_cfg
|
||||
$(TZAC_CFG_FILE_CBFS)-file := $(TZAC_CFG_FILE)
|
||||
$(TZAC_CFG_FILE_CBFS)-type := payload
|
||||
$(TZAC_CFG_FILE_CBFS)-compression := $(CBFS_COMPRESS_FLAG)
|
||||
cbfs-files-y += $(TZAC_CFG_FILE_CBFS)
|
||||
|
||||
################################################################################
|
||||
HYPAC_CFG_FILE := $(X1P42100_BLOB)/ac_policy/hyp_ac_config.elf
|
||||
HYPAC_CFG_FILE_CBFS := $(CONFIG_CBFS_PREFIX)/hypac_cfg
|
||||
$(HYPAC_CFG_FILE_CBFS)-file := $(HYPAC_CFG_FILE)
|
||||
$(HYPAC_CFG_FILE_CBFS)-type := payload
|
||||
$(HYPAC_CFG_FILE_CBFS)-compression := $(CBFS_COMPRESS_FLAG)
|
||||
cbfs-files-y += $(HYPAC_CFG_FILE_CBFS)
|
||||
|
||||
endif # ifeq ($(CONFIG_USE_QC_BLOBS),y)
|
||||
|
||||
endif # ifeq ($(CONFIG_QC_BLOBS_UPSTREAM),y)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include <soc/symbols_common.h>
|
||||
#include <soc/pcie.h>
|
||||
#include <soc/cpucp.h>
|
||||
#include <program_loading.h>
|
||||
|
||||
static struct device_operations pci_domain_ops = {
|
||||
.read_resources = &qcom_pci_domain_read_resources,
|
||||
|
|
@ -56,9 +57,36 @@ static void soc_read_resources(struct device *dev)
|
|||
reserved_ram_range(dev, index++, (uintptr_t)_dram_smem, REGION_SIZE(dram_smem));
|
||||
}
|
||||
|
||||
static void qtee_fw_config_load(void)
|
||||
{
|
||||
if (!CONFIG(ARM64_USE_SECURE_OS))
|
||||
return;
|
||||
|
||||
struct prog devcfg_tz = PROG_INIT(PROG_PAYLOAD,
|
||||
CONFIG_CBFS_PREFIX"/tzoem_cfg");
|
||||
if (!selfload(&devcfg_tz))
|
||||
die("devcfg_tz load failed");
|
||||
|
||||
struct prog tzqti_cfg = PROG_INIT(PROG_PAYLOAD,
|
||||
CONFIG_CBFS_PREFIX"/tzqti_cfg");
|
||||
if (!selfload(&tzqti_cfg))
|
||||
die("tzqti_cfg load failed");
|
||||
|
||||
struct prog tzac_cfg = PROG_INIT(PROG_PAYLOAD,
|
||||
CONFIG_CBFS_PREFIX"/tzac_cfg");
|
||||
if (!selfload(&tzac_cfg))
|
||||
die("tzac_cfg load failed");
|
||||
|
||||
struct prog hypac_cfg = PROG_INIT(PROG_PAYLOAD,
|
||||
CONFIG_CBFS_PREFIX"/hypac_cfg");
|
||||
if (!selfload(&hypac_cfg))
|
||||
die("hypac_cfg load failed");
|
||||
}
|
||||
|
||||
static void soc_init(struct device *dev)
|
||||
{
|
||||
cpucp_fw_load_reset();
|
||||
qtee_fw_config_load();
|
||||
}
|
||||
|
||||
static struct device_operations soc_ops = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue