[U-Boot] [PATCHV5 2/6] ARMv8: add the secure monitor firmware framework

Zhiqiang Hou Zhiqiang.Hou at nxp.com
Sun Jun 5 08:29:31 CEST 2016


From: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>

The sec_firmware.h is the common header file for secure monitor
firmware under ARMv8. The declaration of common APIs can be
added to this file. And the implementation of common APIs will
be abstracted to sec_firmware.c, up to now there are some weak
implementations.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>
---
V5:
 - Added c file sec_firmware.c.
 - Added declaration of sec_firmware_init().
 - Renamed the func sec_firmware_validate().

V4:
 - Reordered this patch.
 - Removed the FSL PPA related items.

 arch/arm/cpu/armv8/Makefile               |  1 +
 arch/arm/cpu/armv8/sec_firmware.c         | 25 +++++++++++++++++++++++++
 arch/arm/include/asm/armv8/sec_firmware.h | 16 ++++++++++++++++
 3 files changed, 42 insertions(+)
 create mode 100644 arch/arm/cpu/armv8/sec_firmware.c
 create mode 100644 arch/arm/include/asm/armv8/sec_firmware.h

diff --git a/arch/arm/cpu/armv8/Makefile b/arch/arm/cpu/armv8/Makefile
index 1c85aa9..667572b 100644
--- a/arch/arm/cpu/armv8/Makefile
+++ b/arch/arm/cpu/armv8/Makefile
@@ -15,6 +15,7 @@ obj-y	+= cache.o
 obj-y	+= tlb.o
 obj-y	+= transition.o
 obj-y	+= fwcall.o
+obj-$(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT) += sec_firmware.o
 
 obj-$(CONFIG_FSL_LAYERSCAPE) += fsl-layerscape/
 obj-$(CONFIG_ARCH_ZYNQMP) += zynqmp/
diff --git a/arch/arm/cpu/armv8/sec_firmware.c b/arch/arm/cpu/armv8/sec_firmware.c
new file mode 100644
index 0000000..90d89e7
--- /dev/null
+++ b/arch/arm/cpu/armv8/sec_firmware.c
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2016 NXP Semiconductor, Inc.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <asm/armv8/sec_firmware.h>
+
+__weak int sec_firmware_init(void)
+{
+	return -1;
+}
+
+__weak bool sec_firmware_is_valid(void)
+{
+	return false;
+}
+
+#if defined(CONFIG_ARMV8_PSCI)
+__weak unsigned int sec_firmware_support_psci_version(void)
+{
+	return 0;
+}
+#endif
diff --git a/arch/arm/include/asm/armv8/sec_firmware.h b/arch/arm/include/asm/armv8/sec_firmware.h
new file mode 100644
index 0000000..e2591aa
--- /dev/null
+++ b/arch/arm/include/asm/armv8/sec_firmware.h
@@ -0,0 +1,16 @@
+/*
+ * Copyright 2016 NXP Semiconductor, Inc.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __SEC_FIRMWARE_H_
+#define __SEC_FIRMWARE_H_
+
+int sec_firmware_init(void);
+bool sec_firmware_is_valid(void);
+#ifdef CONFIG_ARMV8_PSCI
+unsigned int sec_firmware_support_psci_version(void);
+#endif
+
+#endif /* __SEC_FIRMWARE_H_ */
-- 
2.1.0.27.g96db324



More information about the U-Boot mailing list