From 5594635943a5c765cbe11c9c2e202bf692bcc0d2 Mon Sep 17 00:00:00 2001 From: Antony Arun T Date: Tue, 10 Sep 2019 18:21:08 +0530 Subject: [PATCH] ipq6018: Disable secure pil if 'aft' env variable is set Change-Id: I5415001eddfa121dc580a8cb525e383a6fe0f7c2 Signed-off-by: Antony Arun T --- board/qca/arm/common/fdt_fixup.c | 9 ++++++++- board/qca/arm/ipq6018/ipq6018.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/board/qca/arm/common/fdt_fixup.c b/board/qca/arm/common/fdt_fixup.c index 13ba078bee..2c7000031b 100644 --- a/board/qca/arm/common/fdt_fixup.c +++ b/board/qca/arm/common/fdt_fixup.c @@ -521,6 +521,11 @@ __weak void fdt_fixup_set_qca_cold_reboot_enable(void *blob) return; } +__weak void fdt_fixup_del_qca_secure_prop(void *blob) +{ + return; +} + /* * For newer kernel that boot with device tree (3.14+), all of memory is * described in the /memory node, including areas that the kernel should not be @@ -628,8 +633,10 @@ int ft_board_setup(void *blob, bd_t *bd) if (s) fdt_fixup_set_qce_fixed_key(blob); s = getenv("atf"); - if (s) + if (s) { fdt_fixup_set_qca_cold_reboot_enable(blob); + fdt_fixup_del_qca_secure_prop(blob); + } #ifdef CONFIG_QCA_MMC board_mmc_deinit(); diff --git a/board/qca/arm/ipq6018/ipq6018.c b/board/qca/arm/ipq6018/ipq6018.c index c761876e41..d5b5bfc66c 100644 --- a/board/qca/arm/ipq6018/ipq6018.c +++ b/board/qca/arm/ipq6018/ipq6018.c @@ -1373,3 +1373,33 @@ void fdt_fixup_set_qca_cold_reboot_enable(void *blob) return; } + +void fdt_fixup_del_qca_secure_prop(void *blob) +{ + int nodeoff, ret; + char *node; + + node = "/soc/q6v5_wcss@CD00000"; + nodeoff = fdt_path_offset(blob, node); + if (nodeoff < 0) { + printf("fixup_del_qca_secure: unable to find node '%s'\n",node); + return; + } + + ret = fdt_delprop(blob, nodeoff, "qca,secure"); + if (ret) + printf("fixup_del_qca_secure:cannot delete property in '%s'\n",node); + + node = "/soc/q6v6_adsp@AB00000"; + nodeoff = fdt_path_offset(blob, node); + if (nodeoff < 0) { + printf("fixup_del_qca_secure: unable to find node '%s'\n",node); + return; + } + + ret = fdt_delprop(blob, nodeoff, "qca,secure"); + if (ret) + printf("fixup_del_qca_secure:cannot delete property in '%s'\n",node); + + return; +}