aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Gerlach2020-09-24 17:37:03 -0500
committerDave Gerlach2020-10-16 13:05:46 -0500
commit8ca1ad4cffaa7516857e85883cb5731edd2a179f (patch)
treefe315303349cdd2db818d2075a53c7ef3930b036
parentc11c788cf8066d47ce37b668fb0d607c52c3f272 (diff)
downloadk3-image-gen-8ca1ad4cffaa7516857e85883cb5731edd2a179f.tar.gz
k3-image-gen-8ca1ad4cffaa7516857e85883cb5731edd2a179f.tar.xz
k3-image-gen-8ca1ad4cffaa7516857e85883cb5731edd2a179f.zip
sec-cfg: Add secure_handover_config section
Update the common.h headers to add new defines from SYSFW 2020.08. Starting from SYSFW v2020.08, a secure_handover_config section is mandatory in the security config. Otherwise the boot fails on all SoCs. Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
-rw-r--r--include/common.h9
-rw-r--r--soc/am65x/evm/sec-cfg.c11
-rw-r--r--soc/am65x_sr2/evm/sec-cfg.c11
-rw-r--r--soc/j7200/evm/sec-cfg.c11
-rw-r--r--soc/j721e/evm/sec-cfg.c11
5 files changed, 53 insertions, 0 deletions
diff --git a/include/common.h b/include/common.h
index 382b6c4..2a01221 100644
--- a/include/common.h
+++ b/include/common.h
@@ -83,6 +83,7 @@ typedef u8 ftbool;
83#define BOARDCFG_DKEK_CFG_MAGIC_NUM 0x5170 83#define BOARDCFG_DKEK_CFG_MAGIC_NUM 0x5170
84#define BOARDCFG_SA2UL_CFG_MAGIC_NUM_RSVD 0x23BE 84#define BOARDCFG_SA2UL_CFG_MAGIC_NUM_RSVD 0x23BE
85#define BOARDCFG_SEC_DBG_CTRL_MAGIC_NUM 0x42AF 85#define BOARDCFG_SEC_DBG_CTRL_MAGIC_NUM 0x42AF
86#define BOARDCFG_SEC_HANDOVER_CFG_MAGIC_NUM 0x608F
86 87
87struct boardcfg_substructure_header { 88struct boardcfg_substructure_header {
88 u16 magic; 89 u16 magic;
@@ -260,6 +261,13 @@ struct boardcfg_secure_debug_config {
260 u8 jtag_unlock_hosts[BOARDCFG_SEC_MAX_NUM_JTAG_UNLOCK_HOSTS]; 261 u8 jtag_unlock_hosts[BOARDCFG_SEC_MAX_NUM_JTAG_UNLOCK_HOSTS];
261} __attribute__((__packed__)); 262} __attribute__((__packed__));
262 263
264struct boardcfg_sec_handover {
265 struct boardcfg_substructure_header subhdr;
266 u8 handover_msg_sender;
267 u8 handover_to_host_id;
268 u8 rsvd[4];
269};
270
263struct boardcfg_security { 271struct boardcfg_security {
264 struct boardcfg_abi_rev rev; 272 struct boardcfg_abi_rev rev;
265 struct boardcfg_proc_acl processor_acl_list; 273 struct boardcfg_proc_acl processor_acl_list;
@@ -268,6 +276,7 @@ struct boardcfg_security {
268 struct boardcfg_dkek dkek_config; 276 struct boardcfg_dkek dkek_config;
269 struct boardcfg_sa2ul_cfg sa2ul_cfg; 277 struct boardcfg_sa2ul_cfg sa2ul_cfg;
270 struct boardcfg_secure_debug_config sec_dbg_config; 278 struct boardcfg_secure_debug_config sec_dbg_config;
279 struct boardcfg_sec_handover sec_handover_cfg;
271} __attribute__((__packed__)); 280} __attribute__((__packed__));
272 281
273/** 282/**
diff --git a/soc/am65x/evm/sec-cfg.c b/soc/am65x/evm/sec-cfg.c
index 13007cd..500fd76 100644
--- a/soc/am65x/evm/sec-cfg.c
+++ b/soc/am65x/evm/sec-cfg.c
@@ -103,4 +103,15 @@ const struct boardcfg_security am65_boardcfg_security_data = {
103 .min_cert_rev = 0x0, 103 .min_cert_rev = 0x0,
104 .jtag_unlock_hosts = {0, 0, 0, 0}, 104 .jtag_unlock_hosts = {0, 0, 0, 0},
105 }, 105 },
106
107 /* Secure Handover Configuration */
108 .sec_handover_cfg = {
109 .subhdr = {
110 .magic = BOARDCFG_SEC_HANDOVER_CFG_MAGIC_NUM,
111 .size = sizeof(struct boardcfg_sec_handover),
112 },
113 .handover_msg_sender = 0,
114 .handover_to_host_id = 0,
115 .rsvd = {0,0,0,0},
116 },
106}; 117};
diff --git a/soc/am65x_sr2/evm/sec-cfg.c b/soc/am65x_sr2/evm/sec-cfg.c
index 486036f..f51d5bb 100644
--- a/soc/am65x_sr2/evm/sec-cfg.c
+++ b/soc/am65x_sr2/evm/sec-cfg.c
@@ -102,4 +102,15 @@ const struct boardcfg_security am65_boardcfg_security_data = {
102 .min_cert_rev = 0x0, 102 .min_cert_rev = 0x0,
103 .jtag_unlock_hosts = {0, 0, 0, 0}, 103 .jtag_unlock_hosts = {0, 0, 0, 0},
104 }, 104 },
105
106 /* Secure Handover Configuration */
107 .sec_handover_cfg = {
108 .subhdr = {
109 .magic = BOARDCFG_SEC_HANDOVER_CFG_MAGIC_NUM,
110 .size = sizeof(struct boardcfg_sec_handover),
111 },
112 .handover_msg_sender = 0,
113 .handover_to_host_id = 0,
114 .rsvd = {0,0,0,0},
115 },
105}; 116};
diff --git a/soc/j7200/evm/sec-cfg.c b/soc/j7200/evm/sec-cfg.c
index 74b3938..a084939 100644
--- a/soc/j7200/evm/sec-cfg.c
+++ b/soc/j7200/evm/sec-cfg.c
@@ -102,4 +102,15 @@ const struct boardcfg_security j7200_boardcfg_security_data = {
102 .min_cert_rev = 0x0, 102 .min_cert_rev = 0x0,
103 .jtag_unlock_hosts = {0, 0, 0, 0}, 103 .jtag_unlock_hosts = {0, 0, 0, 0},
104 }, 104 },
105
106 /* Secure Handover Configuration */
107 .sec_handover_cfg = {
108 .subhdr = {
109 .magic = BOARDCFG_SEC_HANDOVER_CFG_MAGIC_NUM,
110 .size = sizeof(struct boardcfg_sec_handover),
111 },
112 .handover_msg_sender = 0,
113 .handover_to_host_id = 0,
114 .rsvd = {0,0,0,0},
115 },
105}; 116};
diff --git a/soc/j721e/evm/sec-cfg.c b/soc/j721e/evm/sec-cfg.c
index 8391d27..1ddb539 100644
--- a/soc/j721e/evm/sec-cfg.c
+++ b/soc/j721e/evm/sec-cfg.c
@@ -103,4 +103,15 @@ const struct boardcfg_security j721e_boardcfg_security_data = {
103 .min_cert_rev = 0x0, 103 .min_cert_rev = 0x0,
104 .jtag_unlock_hosts = {0, 0, 0, 0}, 104 .jtag_unlock_hosts = {0, 0, 0, 0},
105 }, 105 },
106
107 /* Secure Handover Configuration */
108 .sec_handover_cfg = {
109 .subhdr = {
110 .magic = BOARDCFG_SEC_HANDOVER_CFG_MAGIC_NUM,
111 .size = sizeof(struct boardcfg_sec_handover),
112 },
113 .handover_msg_sender = 0,
114 .handover_to_host_id = 0,
115 .rsvd = {0,0,0,0},
116 },
106}; 117};