summaryrefslogtreecommitdiff
path: root/src/soc
diff options
context:
space:
mode:
authorJulius Werner <jwerner@chromium.org>2019-05-28 21:01:37 -0700
committerJulius Werner <jwerner@chromium.org>2019-09-14 05:01:16 +0000
commitb3f24b4884fe9fe0589629fbe929ebddfdc683c2 (patch)
treee2db80dac53be5f6dc1277713e5d5c5eff85f0a9 /src/soc
parent8b93689a358b0a65a334cc3adf6141e79fab032f (diff)
downloadcoreboot-b3f24b4884fe9fe0589629fbe929ebddfdc683c2.tar.xz
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 <jwerner@chromium.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/34676 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Diffstat (limited to 'src/soc')
-rw-r--r--src/soc/cavium/cn81xx/bl31_plat_params.c4
-rw-r--r--src/soc/cavium/cn81xx/include/soc/bl31_plat_params.h2
-rw-r--r--src/soc/cavium/cn81xx/soc.c4
-rw-r--r--src/soc/mediatek/mt8173/Makefile.inc2
-rw-r--r--src/soc/mediatek/mt8173/bl31_plat_params.c20
-rw-r--r--src/soc/nvidia/tegra210/arm_tf.c2
-rw-r--r--src/soc/rockchip/rk3399/Makefile.inc1
-rw-r--r--src/soc/rockchip/rk3399/bl31_plat_params.c40
-rw-r--r--src/soc/rockchip/rk3399/include/soc/bl31_plat_params.h24
9 files changed, 6 insertions, 93 deletions
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 <atf/plat_params.h>
-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 <bl31.h>
-
-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 <bl31.h>
-#include <cbmem.h>
-#include <soc/bl31_plat_params.h>
-
-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 <arm-trusted-firmware/plat/rockchip/common/include/plat_params.h>
-
-void register_bl31_param(struct bl31_plat_param *param);
-
-#endif/* __BL31_PLAT_PARAMS_H__ */