From b3f24b4884fe9fe0589629fbe929ebddfdc683c2 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 28 May 2019 21:01:37 -0700 Subject: arm64: Uprev Arm TF and adjust to BL31 parameter changes This patch uprevs the Arm Trusted Firmware submodule to the new upstream master (commit 42cdeb930). Arm Trusted Firmware unified a bunch of stuff related to BL31 handoff parameters across platforms which involved changing a few names around. This patch syncs coreboot back up with that. They also made header changes that now allow us to directly include all the headers we need (in a safer and cleaner way than before), so we can get rid of some structure definitions that were duplicated. Since the version of entry point info parameters we have been using has been deprecated in Trusted Firmware, this patch switches to the new version 2 parameter format. NOTE: This may or may not stop Cavium from booting with the current pinned Trusted Firmware blob. Cavium maintainers are still evaluating whether to fix that later or drop the platform entirely. Tested on GOOGLE_KEVIN (rk3399). Change-Id: I0ed32bce5585ce191736f0ff2e5a94a9d2b2cc28 Signed-off-by: Julius Werner Reviewed-on: https://review.coreboot.org/c/coreboot/+/34676 Tested-by: build bot (Jenkins) Reviewed-by: Hung-Te Lin --- src/soc/cavium/cn81xx/bl31_plat_params.c | 4 +-- .../cavium/cn81xx/include/soc/bl31_plat_params.h | 2 +- src/soc/cavium/cn81xx/soc.c | 4 +-- src/soc/mediatek/mt8173/Makefile.inc | 2 -- src/soc/mediatek/mt8173/bl31_plat_params.c | 20 ----------- src/soc/nvidia/tegra210/arm_tf.c | 2 +- src/soc/rockchip/rk3399/Makefile.inc | 1 - src/soc/rockchip/rk3399/bl31_plat_params.c | 40 ---------------------- .../rockchip/rk3399/include/soc/bl31_plat_params.h | 24 ------------- 9 files changed, 6 insertions(+), 93 deletions(-) delete mode 100644 src/soc/mediatek/mt8173/bl31_plat_params.c delete mode 100644 src/soc/rockchip/rk3399/bl31_plat_params.c delete mode 100644 src/soc/rockchip/rk3399/include/soc/bl31_plat_params.h (limited to 'src/soc') diff --git a/src/soc/cavium/cn81xx/bl31_plat_params.c b/src/soc/cavium/cn81xx/bl31_plat_params.c index 5002e146bc..661f3efb85 100644 --- a/src/soc/cavium/cn81xx/bl31_plat_params.c +++ b/src/soc/cavium/cn81xx/bl31_plat_params.c @@ -20,7 +20,7 @@ static struct bl31_plat_param *plat_params; -void register_bl31_param(struct bl31_plat_param *param) +void cn81xx_register_bl31_param(struct bl31_plat_param *param) { ASSERT(param); @@ -28,7 +28,7 @@ void register_bl31_param(struct bl31_plat_param *param) plat_params = param; } -void *soc_get_bl31_plat_params(bl31_params_t *bl31_params) +void *soc_get_bl31_plat_params(void) { return plat_params; } diff --git a/src/soc/cavium/cn81xx/include/soc/bl31_plat_params.h b/src/soc/cavium/cn81xx/include/soc/bl31_plat_params.h index f365aad059..e47de899e4 100644 --- a/src/soc/cavium/cn81xx/include/soc/bl31_plat_params.h +++ b/src/soc/cavium/cn81xx/include/soc/bl31_plat_params.h @@ -19,6 +19,6 @@ #include -void register_bl31_param(struct bl31_plat_param *param); +void cn81xx_register_bl31_param(struct bl31_plat_param *param); #endif/* __BL31_PLAT_PARAMS_H__ */ diff --git a/src/soc/cavium/cn81xx/soc.c b/src/soc/cavium/cn81xx/soc.c index f1e11d335b..8abb328ba8 100644 --- a/src/soc/cavium/cn81xx/soc.c +++ b/src/soc/cavium/cn81xx/soc.c @@ -354,7 +354,7 @@ static void soc_init_atf(void) /* Point to devicetree in secure memory */ fdt_param.fdt_ptr = (uintptr_t)_sff8104; - register_bl31_param(&fdt_param.h); + cn81xx_register_bl31_param(&fdt_param.h); static struct bl31_u64_param cbtable_param = { .h = { .type = PARAM_COREBOOT_TABLE, }, @@ -362,7 +362,7 @@ static void soc_init_atf(void) /* Point to coreboot tables */ cbtable_param.value = (uint64_t)cbmem_find(CBMEM_ID_CBTABLE); if (cbtable_param.value) - register_bl31_param(&cbtable_param.h); + cn81xx_register_bl31_param(&cbtable_param.h); } static void soc_init(struct device *dev) diff --git a/src/soc/mediatek/mt8173/Makefile.inc b/src/soc/mediatek/mt8173/Makefile.inc index 21a0c73ae3..8632affc7e 100644 --- a/src/soc/mediatek/mt8173/Makefile.inc +++ b/src/soc/mediatek/mt8173/Makefile.inc @@ -85,8 +85,6 @@ ramstage-y += ../common/usb.c usb.c ramstage-y += ../common/ddp.c ddp.c ramstage-y += ../common/dsi.c dsi.c -ramstage-$(CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE) += bl31_plat_params.c - BL31_MAKEARGS += PLAT=mt8173 ################################################################################ diff --git a/src/soc/mediatek/mt8173/bl31_plat_params.c b/src/soc/mediatek/mt8173/bl31_plat_params.c deleted file mode 100644 index 44ef934ac2..0000000000 --- a/src/soc/mediatek/mt8173/bl31_plat_params.c +++ /dev/null @@ -1,20 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright 2015 MediaTek Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ -#include - -void *soc_get_bl31_plat_params(bl31_params_t *bl31_params) -{ - return NULL; -} diff --git a/src/soc/nvidia/tegra210/arm_tf.c b/src/soc/nvidia/tegra210/arm_tf.c index 1da351afb3..e0863d21e1 100644 --- a/src/soc/nvidia/tegra210/arm_tf.c +++ b/src/soc/nvidia/tegra210/arm_tf.c @@ -32,7 +32,7 @@ typedef struct bl31_plat_params { static bl31_plat_params_t t210_plat_params; -void *soc_get_bl31_plat_params(bl31_params_t *params) +void *soc_get_bl31_plat_params(void) { uintptr_t tz_base_mib; size_t tz_size_mib; diff --git a/src/soc/rockchip/rk3399/Makefile.inc b/src/soc/rockchip/rk3399/Makefile.inc index 854eb84eed..3b66247868 100644 --- a/src/soc/rockchip/rk3399/Makefile.inc +++ b/src/soc/rockchip/rk3399/Makefile.inc @@ -76,7 +76,6 @@ ramstage-y += timer.c ramstage-$(CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT) += ../common/vop.c ramstage-y += usb.c -ramstage-y += bl31_plat_params.c BL31_MAKEARGS += PLAT=rk3399 M0_CROSS_COMPILE="$(CROSS_COMPILE_arm)" ################################################################################ diff --git a/src/soc/rockchip/rk3399/bl31_plat_params.c b/src/soc/rockchip/rk3399/bl31_plat_params.c deleted file mode 100644 index b8836c1576..0000000000 --- a/src/soc/rockchip/rk3399/bl31_plat_params.c +++ /dev/null @@ -1,40 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright 2016 Rockchip Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include -#include -#include - -static struct bl31_plat_param *plat_params; - -void register_bl31_param(struct bl31_plat_param *param) -{ - param->next = plat_params; - plat_params = param; -} - -void *soc_get_bl31_plat_params(bl31_params_t *bl31_params) -{ - static struct bl31_u64_param cbtable_param = { - .h = { .type = PARAM_COREBOOT_TABLE, }, - }; - if (!cbtable_param.value) { - cbtable_param.value = (uint64_t)cbmem_find(CBMEM_ID_CBTABLE); - if (cbtable_param.value) - register_bl31_param(&cbtable_param.h); - } - return plat_params; -} diff --git a/src/soc/rockchip/rk3399/include/soc/bl31_plat_params.h b/src/soc/rockchip/rk3399/include/soc/bl31_plat_params.h deleted file mode 100644 index c73d68753a..0000000000 --- a/src/soc/rockchip/rk3399/include/soc/bl31_plat_params.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright 2016 Rockchip Inc. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#ifndef __BL31_PLAT_PARAMS_H__ -#define __BL31_PLAT_PARAMS_H__ - -#include - -void register_bl31_param(struct bl31_plat_param *param); - -#endif/* __BL31_PLAT_PARAMS_H__ */ -- cgit v1.2.3