uniphier: add TSP support
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Mon, 15 May 2017 04:00:00 +0000 (13:00 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Mon, 12 Jun 2017 15:32:57 +0000 (00:32 +0900)
Add TSP to test BL32 without relying on external projects.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
docs/plat/socionext-uniphier.md
plat/socionext/uniphier/include/platform_def.h
plat/socionext/uniphier/tsp/tsp-uniphier.mk [new file with mode: 0644]
plat/socionext/uniphier/tsp/uniphier_tsp_setup.c [new file with mode: 0644]

index 75e654524117a01f177cfa0bba6a319342723760..91d72ec068c96645cdaae5769ccff41b6f053def 100644 (file)
@@ -121,3 +121,10 @@ To enable BL32, add the following option to the build command:
 ```
   SPD=<spd> BL32=<path-to-BL32>
 ```
+
+If you use TSP for BL32, `BL32=<path-to-BL32>` is not required.  Just add the
+following:
+
+```
+  SPD=tspd
+```
index 7e603a3e515faac2e4aae9f9d6bb30061c337ac9..b5dc16aa90c24ae432a8bbe717076051d5590b71 100644 (file)
@@ -61,4 +61,9 @@
 #define MAX_IO_DEVICES                 2
 #define MAX_IO_BLOCK_DEVICES           1
 
+#define TSP_SEC_MEM_BASE               (BL32_BASE)
+#define TSP_SEC_MEM_SIZE               ((BL32_LIMIT) - (BL32_BASE))
+#define TSP_PROGBITS_LIMIT             (UNIPHIER_BLOCK_BUF_BASE)
+#define TSP_IRQ_SEC_PHY_TIMER          29
+
 #endif /* __PLATFORM_DEF_H__ */
diff --git a/plat/socionext/uniphier/tsp/tsp-uniphier.mk b/plat/socionext/uniphier/tsp/tsp-uniphier.mk
new file mode 100644 (file)
index 0000000..54d4f51
--- /dev/null
@@ -0,0 +1,9 @@
+#
+# Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+BL32_SOURCES           +=      plat/common/plat_gicv3.c                \
+                               plat/common/aarch64/platform_mp_stack.S \
+                               $(PLAT_PATH)/tsp/uniphier_tsp_setup.c
diff --git a/plat/socionext/uniphier/tsp/uniphier_tsp_setup.c b/plat/socionext/uniphier/tsp/uniphier_tsp_setup.c
new file mode 100644 (file)
index 0000000..7df17d3
--- /dev/null
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <platform_def.h>
+#include <xlat_mmu_helpers.h>
+
+#include "../uniphier.h"
+
+#define BL32_END               (unsigned long)(&__BL32_END__)
+#define BL32_SIZE              ((BL32_END) - (BL32_BASE))
+
+void tsp_early_platform_setup(void)
+{
+       uniphier_console_setup();
+}
+
+void tsp_platform_setup(void)
+{
+}
+
+void tsp_plat_arch_setup(void)
+{
+       uniphier_mmap_setup(BL32_BASE, BL32_SIZE, NULL);
+       enable_mmu_el1(0);
+}