linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor
@ 2013-11-24  6:30 Alexandre Courbot
  2013-11-24  6:30 ` [PATCH v11 1/7] ARM: add basic support for Trusted Foundations Alexandre Courbot
                   ` (8 more replies)
  0 siblings, 9 replies; 19+ messages in thread
From: Alexandre Courbot @ 2013-11-24  6:30 UTC (permalink / raw)
  To: Russell King, Stephen Warren, Thierry Reding
  Cc: Tomasz Figa, Olof Johansson, Dave Martin, Kevin Hilman,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	linux-kernel, linux-tegra, linux-arm-kernel, gnurou,
	Alexandre Courbot

New rebase that should be ready-to-apply on the latest Tegra tree. The last
remaining blocker is Russell's approval for this series and it is my hope to
obtain it with this version.

There has been quite some debate around this series, notably about the SMC
calling conventions and whether the firmware interface should be moved out of
arch/arm. I hope that all the questions have been answered and that we can move
forward with this series that enables NVIDIA-branded retail Tegra devices to run
mainline.

Changes since v10:
- Rebased on top of more recent sources since some files have been renamed in
  mach-tegra.
- Gave a final proof-read and extensive testing.

Alexandre Courbot (7):
  ARM: add basic support for Trusted Foundations
  of: add vendor prefix for Trusted Logic Mobility
  of: add Trusted Foundations bindings documentation
  ARM: tegra: add support for Trusted Foundations
  ARM: tegra: split setting of CPU reset handler
  ARM: tegra: set CPU reset handler using firmware
  ARM: tegra: support Trusted Foundations by default

 .../arm/firmware/tlm,trusted-foundations.txt       | 20 ++++++
 Documentation/devicetree/bindings/arm/tegra.txt    |  5 ++
 .../devicetree/bindings/vendor-prefixes.txt        |  1 +
 arch/arm/Kconfig                                   |  2 +
 arch/arm/Makefile                                  |  1 +
 arch/arm/configs/tegra_defconfig                   |  1 +
 arch/arm/firmware/Kconfig                          | 28 ++++++++
 arch/arm/firmware/Makefile                         |  1 +
 arch/arm/firmware/trusted_foundations.c            | 81 ++++++++++++++++++++++
 arch/arm/include/asm/trusted_foundations.h         | 67 ++++++++++++++++++
 arch/arm/mach-tegra/Kconfig                        |  1 +
 arch/arm/mach-tegra/reset.c                        | 40 ++++++++---
 arch/arm/mach-tegra/tegra.c                        |  2 +
 13 files changed, 239 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.txt
 create mode 100644 arch/arm/firmware/Kconfig
 create mode 100644 arch/arm/firmware/Makefile
 create mode 100644 arch/arm/firmware/trusted_foundations.c
 create mode 100644 arch/arm/include/asm/trusted_foundations.h

-- 
1.8.4.2


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [PATCH v11 1/7] ARM: add basic support for Trusted Foundations
  2013-11-24  6:30 [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Alexandre Courbot
@ 2013-11-24  6:30 ` Alexandre Courbot
  2013-11-24  6:30 ` [PATCH v11 2/7] of: add vendor prefix for Trusted Logic Mobility Alexandre Courbot
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Alexandre Courbot @ 2013-11-24  6:30 UTC (permalink / raw)
  To: Russell King, Stephen Warren, Thierry Reding
  Cc: Tomasz Figa, Olof Johansson, Dave Martin, Kevin Hilman,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	linux-kernel, linux-tegra, linux-arm-kernel, gnurou,
	Alexandre Courbot

Trusted Foundations is a TrustZone-based secure monitor for ARM that
can be invoked using the same SMC-based API on supported platforms.
This patch adds initial basic support for Trusted Foundations using
the ARM firmware API. Current features are limited to the ability to
boot secondary processors.

Note: The API followed by Trusted Foundations does *not* follow the SMC
calling conventions. It has nothing to do with PSCI neither and is only
relevant to devices that use Trusted Foundations (like most Tegra-based
retail devices).

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
---
 arch/arm/Kconfig                           |  2 +
 arch/arm/Makefile                          |  1 +
 arch/arm/firmware/Kconfig                  | 28 +++++++++++
 arch/arm/firmware/Makefile                 |  1 +
 arch/arm/firmware/trusted_foundations.c    | 81 ++++++++++++++++++++++++++++++
 arch/arm/include/asm/trusted_foundations.h | 67 ++++++++++++++++++++++++
 6 files changed, 180 insertions(+)
 create mode 100644 arch/arm/firmware/Kconfig
 create mode 100644 arch/arm/firmware/Makefile
 create mode 100644 arch/arm/firmware/trusted_foundations.c
 create mode 100644 arch/arm/include/asm/trusted_foundations.h

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 3d8f0b3..b93bb9c 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1053,6 +1053,8 @@ config ARM_TIMER_SP804
 	select CLKSRC_MMIO
 	select CLKSRC_OF if OF
 
+source "arch/arm/firmware/Kconfig"
+
 source arch/arm/mm/Kconfig
 
 config ARM_NR_BANKS
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index c99b108..2cb05d4 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -268,6 +268,7 @@ core-$(CONFIG_KVM_ARM_HOST) 	+= arch/arm/kvm/
 core-y				+= arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
 core-y				+= arch/arm/net/
 core-y				+= arch/arm/crypto/
+core-y				+= arch/arm/firmware/
 core-y				+= $(machdirs) $(platdirs)
 
 drivers-$(CONFIG_OPROFILE)      += arch/arm/oprofile/
diff --git a/arch/arm/firmware/Kconfig b/arch/arm/firmware/Kconfig
new file mode 100644
index 0000000..bb00ccf
--- /dev/null
+++ b/arch/arm/firmware/Kconfig
@@ -0,0 +1,28 @@
+config ARCH_SUPPORTS_FIRMWARE
+	bool
+
+config ARCH_SUPPORTS_TRUSTED_FOUNDATIONS
+	bool
+	select ARCH_SUPPORTS_FIRMWARE
+
+menu "Firmware options"
+	depends on ARCH_SUPPORTS_FIRMWARE
+
+config TRUSTED_FOUNDATIONS
+	bool "Trusted Foundations secure monitor support"
+	depends on ARCH_SUPPORTS_TRUSTED_FOUNDATIONS
+	help
+	  Some devices (including most Tegra-based consumer devices on the
+	  market) are booted with the Trusted Foundations secure monitor
+	  active, requiring some core operations to be performed by the secure
+	  monitor instead of the kernel.
+
+	  This option allows the kernel to invoke the secure monitor whenever
+	  required on devices using Trusted Foundations. See
+	  arch/arm/include/asm/trusted_foundations.h or the
+	  tl,trusted-foundations device tree binding documentation for details
+	  on how to use it.
+
+	  Say n if you don't know what this is about.
+
+endmenu
diff --git a/arch/arm/firmware/Makefile b/arch/arm/firmware/Makefile
new file mode 100644
index 0000000..a71f165
--- /dev/null
+++ b/arch/arm/firmware/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_TRUSTED_FOUNDATIONS)	+= trusted_foundations.o
diff --git a/arch/arm/firmware/trusted_foundations.c b/arch/arm/firmware/trusted_foundations.c
new file mode 100644
index 0000000..ef1e3d8
--- /dev/null
+++ b/arch/arm/firmware/trusted_foundations.c
@@ -0,0 +1,81 @@
+/*
+ * Trusted Foundations support for ARM CPUs
+ *
+ * Copyright (c) 2013, NVIDIA Corporation.
+ *
+ * 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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 <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/of.h>
+#include <asm/firmware.h>
+#include <asm/trusted_foundations.h>
+
+#define TF_SET_CPU_BOOT_ADDR_SMC 0xfffff200
+
+static void __naked tf_generic_smc(u32 type, u32 arg1, u32 arg2)
+{
+	asm volatile(
+		".arch_extension	sec\n\t"
+		"stmfd	sp!, {r4 - r11, lr}\n\t"
+		__asmeq("%0", "r0")
+		__asmeq("%1", "r1")
+		__asmeq("%2", "r2")
+		"mov	r3, #0\n\t"
+		"mov	r4, #0\n\t"
+		"smc	#0\n\t"
+		"ldmfd	sp!, {r4 - r11, pc}"
+		:
+		: "r" (type), "r" (arg1), "r" (arg2)
+		: "memory");
+}
+
+static int tf_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
+{
+	tf_generic_smc(TF_SET_CPU_BOOT_ADDR_SMC, boot_addr, 0);
+
+	return 0;
+}
+
+static const struct firmware_ops trusted_foundations_ops = {
+	.set_cpu_boot_addr = tf_set_cpu_boot_addr,
+};
+
+void register_trusted_foundations(struct trusted_foundations_platform_data *pd)
+{
+	/*
+	 * we are not using version information for now since currently
+	 * supported SMCs are compatible with all TF releases
+	 */
+	register_firmware_ops(&trusted_foundations_ops);
+}
+
+void of_register_trusted_foundations(void)
+{
+	struct device_node *node;
+	struct trusted_foundations_platform_data pdata;
+	int err;
+
+	node = of_find_compatible_node(NULL, NULL, "tlm,trusted-foundations");
+	if (!node)
+		return;
+
+	err = of_property_read_u32(node, "tlm,version-major",
+				   &pdata.version_major);
+	if (err != 0)
+		panic("Trusted Foundation: missing version-major property\n");
+	err = of_property_read_u32(node, "tlm,version-minor",
+				   &pdata.version_minor);
+	if (err != 0)
+		panic("Trusted Foundation: missing version-minor property\n");
+	register_trusted_foundations(&pdata);
+}
diff --git a/arch/arm/include/asm/trusted_foundations.h b/arch/arm/include/asm/trusted_foundations.h
new file mode 100644
index 0000000..3bd36e2
--- /dev/null
+++ b/arch/arm/include/asm/trusted_foundations.h
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2013, NVIDIA Corporation.
+ *
+ * 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ */
+
+/*
+ * Support for the Trusted Foundations secure monitor.
+ *
+ * Trusted Foundation comes active on some ARM consumer devices (most
+ * Tegra-based devices sold on the market are concerned). Such devices can only
+ * perform some basic operations, like setting the CPU reset vector, through
+ * SMC calls to the secure monitor. The calls are completely specific to
+ * Trusted Foundations, and do *not* follow the SMC calling convention or the
+ * PSCI standard.
+ */
+
+#ifndef __ASM_ARM_TRUSTED_FOUNDATIONS_H
+#define __ASM_ARM_TRUSTED_FOUNDATIONS_H
+
+#include <linux/kconfig.h>
+#include <linux/printk.h>
+#include <linux/bug.h>
+#include <linux/of.h>
+
+struct trusted_foundations_platform_data {
+	unsigned int version_major;
+	unsigned int version_minor;
+};
+
+#if IS_ENABLED(CONFIG_TRUSTED_FOUNDATIONS)
+
+void register_trusted_foundations(struct trusted_foundations_platform_data *pd);
+void of_register_trusted_foundations(void);
+
+#else /* CONFIG_TRUSTED_FOUNDATIONS */
+
+static inline void register_trusted_foundations(
+				   struct trusted_foundations_platform_data *pd)
+{
+	/*
+	 * If we try to register TF, this means the system needs it to continue.
+	 * Its absence if thus a fatal error.
+	 */
+	panic("No support for Trusted Foundations, stopping...\n");
+}
+
+static inline void of_register_trusted_foundations(void)
+{
+	/*
+	 * If we find the target should enable TF but does not support it,
+	 * fail as the system won't be able to do much anyway
+	 */
+	if (of_find_compatible_node(NULL, NULL, "tl,trusted-foundations"))
+		register_trusted_foundations(NULL);
+}
+#endif /* CONFIG_TRUSTED_FOUNDATIONS */
+
+#endif
-- 
1.8.4.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v11 2/7] of: add vendor prefix for Trusted Logic Mobility
  2013-11-24  6:30 [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Alexandre Courbot
  2013-11-24  6:30 ` [PATCH v11 1/7] ARM: add basic support for Trusted Foundations Alexandre Courbot
@ 2013-11-24  6:30 ` Alexandre Courbot
  2013-11-24  6:30 ` [PATCH v11 3/7] of: add Trusted Foundations bindings documentation Alexandre Courbot
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Alexandre Courbot @ 2013-11-24  6:30 UTC (permalink / raw)
  To: Russell King, Stephen Warren, Thierry Reding
  Cc: Tomasz Figa, Olof Johansson, Dave Martin, Kevin Hilman,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	linux-kernel, linux-tegra, linux-arm-kernel, gnurou,
	Alexandre Courbot

Add the "tlm" prefix for Trusted Logic Mobility.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
 Documentation/devicetree/bindings/vendor-prefixes.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt
index e306917..5aa905e 100644
--- a/Documentation/devicetree/bindings/vendor-prefixes.txt
+++ b/Documentation/devicetree/bindings/vendor-prefixes.txt
@@ -73,6 +73,7 @@ st	STMicroelectronics
 ste	ST-Ericsson
 stericsson	ST-Ericsson
 ti	Texas Instruments
+tlm	Trusted Logic Mobility
 toshiba	Toshiba Corporation
 toumaz	Toumaz
 v3	V3 Semiconductor
-- 
1.8.4.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v11 3/7] of: add Trusted Foundations bindings documentation
  2013-11-24  6:30 [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Alexandre Courbot
  2013-11-24  6:30 ` [PATCH v11 1/7] ARM: add basic support for Trusted Foundations Alexandre Courbot
  2013-11-24  6:30 ` [PATCH v11 2/7] of: add vendor prefix for Trusted Logic Mobility Alexandre Courbot
@ 2013-11-24  6:30 ` Alexandre Courbot
  2013-11-24  6:30 ` [PATCH v11 4/7] ARM: tegra: add support for Trusted Foundations Alexandre Courbot
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Alexandre Courbot @ 2013-11-24  6:30 UTC (permalink / raw)
  To: Russell King, Stephen Warren, Thierry Reding
  Cc: Tomasz Figa, Olof Johansson, Dave Martin, Kevin Hilman,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	linux-kernel, linux-tegra, linux-arm-kernel, gnurou,
	Alexandre Courbot

Add the Device Tree bindings documentation for the Trusted Foundation
secure monitor.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
---
 .../arm/firmware/tlm,trusted-foundations.txt         | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.txt

diff --git a/Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.txt b/Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.txt
new file mode 100644
index 0000000..780d039
--- /dev/null
+++ b/Documentation/devicetree/bindings/arm/firmware/tlm,trusted-foundations.txt
@@ -0,0 +1,20 @@
+Trusted Foundations
+-------------------
+
+Boards that use the Trusted Foundations secure monitor can signal its
+presence by declaring a node compatible with "tlm,trusted-foundations"
+under the /firmware/ node
+
+Required properties:
+- compatible: "tlm,trusted-foundations"
+- tlm,version-major: major version number of Trusted Foundations firmware
+- tlm,version-minor: minor version number of Trusted Foundations firmware
+
+Example:
+	firmware {
+		trusted-foundations {
+			compatible = "tlm,trusted-foundations";
+			tlm,version-major = <2>;
+			tlm,version-minor = <8>;
+		};
+	};
-- 
1.8.4.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v11 4/7] ARM: tegra: add support for Trusted Foundations
  2013-11-24  6:30 [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Alexandre Courbot
                   ` (2 preceding siblings ...)
  2013-11-24  6:30 ` [PATCH v11 3/7] of: add Trusted Foundations bindings documentation Alexandre Courbot
@ 2013-11-24  6:30 ` Alexandre Courbot
  2013-11-24  6:30 ` [PATCH v11 5/7] ARM: tegra: split setting of CPU reset handler Alexandre Courbot
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Alexandre Courbot @ 2013-11-24  6:30 UTC (permalink / raw)
  To: Russell King, Stephen Warren, Thierry Reding
  Cc: Tomasz Figa, Olof Johansson, Dave Martin, Kevin Hilman,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	linux-kernel, linux-tegra, linux-arm-kernel, gnurou,
	Alexandre Courbot

Register the firmware operations for Trusted Foundations if the device
tree indicates it is active on the device.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
---
 Documentation/devicetree/bindings/arm/tegra.txt | 5 +++++
 arch/arm/mach-tegra/Kconfig                     | 1 +
 arch/arm/mach-tegra/tegra.c                     | 2 ++
 3 files changed, 8 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/tegra.txt b/Documentation/devicetree/bindings/arm/tegra.txt
index ed9c853..558ed4b 100644
--- a/Documentation/devicetree/bindings/arm/tegra.txt
+++ b/Documentation/devicetree/bindings/arm/tegra.txt
@@ -32,3 +32,8 @@ board-specific compatible values:
   nvidia,whistler
   toradex,colibri_t20-512
   toradex,iris
+
+Trusted Foundations
+-------------------------------------------
+Tegra supports the Trusted Foundation secure monitor. See the
+"tlm,trusted-foundations" binding's documentation for more details.
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 09e740f..00b85fd 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -2,6 +2,7 @@ config ARCH_TEGRA
 	bool "NVIDIA Tegra" if ARCH_MULTI_V7
 	select ARCH_HAS_CPUFREQ
 	select ARCH_REQUIRE_GPIOLIB
+	select ARCH_SUPPORTS_TRUSTED_FOUNDATIONS
 	select ARM_GIC
 	select CLKSRC_MMIO
 	select CLKSRC_OF
diff --git a/arch/arm/mach-tegra/tegra.c b/arch/arm/mach-tegra/tegra.c
index 7336817..09a1f8d 100644
--- a/arch/arm/mach-tegra/tegra.c
+++ b/arch/arm/mach-tegra/tegra.c
@@ -40,6 +40,7 @@
 #include <asm/mach/arch.h>
 #include <asm/mach/time.h>
 #include <asm/setup.h>
+#include <asm/trusted_foundations.h>
 
 #include "apbio.h"
 #include "board.h"
@@ -90,6 +91,7 @@ static void __init tegra_init_cache(void)
 
 static void __init tegra_init_early(void)
 {
+	of_register_trusted_foundations();
 	tegra_apb_io_init();
 	tegra_init_fuse();
 	tegra_cpu_reset_handler_init();
-- 
1.8.4.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v11 5/7] ARM: tegra: split setting of CPU reset handler
  2013-11-24  6:30 [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Alexandre Courbot
                   ` (3 preceding siblings ...)
  2013-11-24  6:30 ` [PATCH v11 4/7] ARM: tegra: add support for Trusted Foundations Alexandre Courbot
@ 2013-11-24  6:30 ` Alexandre Courbot
  2013-11-24  6:30 ` [PATCH v11 6/7] ARM: tegra: set CPU reset handler using firmware Alexandre Courbot
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Alexandre Courbot @ 2013-11-24  6:30 UTC (permalink / raw)
  To: Russell King, Stephen Warren, Thierry Reding
  Cc: Tomasz Figa, Olof Johansson, Dave Martin, Kevin Hilman,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	linux-kernel, linux-tegra, linux-arm-kernel, gnurou,
	Alexandre Courbot

Not all Tegra devices can set the CPU reset handler in the same way.
In particular, devices using a TrustZone secure monitor cannot set it
up directly and need to ask the firmware to do it.

This patch separates the act of setting the reset handler from its
preparation, so the former can be implemented in a different way.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
---
 arch/arm/mach-tegra/reset.c | 27 +++++++++++++++++----------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-tegra/reset.c b/arch/arm/mach-tegra/reset.c
index 568f5bb..17c4b6d 100644
--- a/arch/arm/mach-tegra/reset.c
+++ b/arch/arm/mach-tegra/reset.c
@@ -33,26 +33,18 @@
 
 static bool is_enabled;
 
-static void __init tegra_cpu_reset_handler_enable(void)
+static void __init tegra_cpu_reset_handler_set(const u32 reset_address)
 {
-	void __iomem *iram_base = IO_ADDRESS(TEGRA_IRAM_RESET_BASE);
 	void __iomem *evp_cpu_reset =
 		IO_ADDRESS(TEGRA_EXCEPTION_VECTORS_BASE + 0x100);
 	void __iomem *sb_ctrl = IO_ADDRESS(TEGRA_SB_BASE);
 	u32 reg;
 
-	BUG_ON(is_enabled);
-	BUG_ON(tegra_cpu_reset_handler_size > TEGRA_IRAM_RESET_HANDLER_SIZE);
-
-	memcpy(iram_base, (void *)__tegra_cpu_reset_handler_start,
-			tegra_cpu_reset_handler_size);
-
 	/*
 	 * NOTE: This must be the one and only write to the EVP CPU reset
 	 *       vector in the entire system.
 	 */
-	writel(TEGRA_IRAM_RESET_BASE + tegra_cpu_reset_handler_offset,
-			evp_cpu_reset);
+	writel(reset_address, evp_cpu_reset);
 	wmb();
 	reg = readl(evp_cpu_reset);
 
@@ -66,6 +58,21 @@ static void __init tegra_cpu_reset_handler_enable(void)
 		writel(reg, sb_ctrl);
 		wmb();
 	}
+}
+
+static void __init tegra_cpu_reset_handler_enable(void)
+{
+	void __iomem *iram_base = IO_ADDRESS(TEGRA_IRAM_RESET_BASE);
+	const u32 reset_address = TEGRA_IRAM_RESET_BASE +
+						tegra_cpu_reset_handler_offset;
+
+	BUG_ON(is_enabled);
+	BUG_ON(tegra_cpu_reset_handler_size > TEGRA_IRAM_RESET_HANDLER_SIZE);
+
+	memcpy(iram_base, (void *)__tegra_cpu_reset_handler_start,
+			tegra_cpu_reset_handler_size);
+
+	tegra_cpu_reset_handler_set(reset_address);
 
 	is_enabled = true;
 }
-- 
1.8.4.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v11 6/7] ARM: tegra: set CPU reset handler using firmware
  2013-11-24  6:30 [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Alexandre Courbot
                   ` (4 preceding siblings ...)
  2013-11-24  6:30 ` [PATCH v11 5/7] ARM: tegra: split setting of CPU reset handler Alexandre Courbot
@ 2013-11-24  6:30 ` Alexandre Courbot
  2013-11-24  6:30 ` [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default Alexandre Courbot
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 19+ messages in thread
From: Alexandre Courbot @ 2013-11-24  6:30 UTC (permalink / raw)
  To: Russell King, Stephen Warren, Thierry Reding
  Cc: Tomasz Figa, Olof Johansson, Dave Martin, Kevin Hilman,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	linux-kernel, linux-tegra, linux-arm-kernel, gnurou,
	Alexandre Courbot

Use a firmware operation to set the CPU reset handler and only resort to
doing it ourselves if there is none defined.

This supports the booting of secondary CPUs on devices using a TrustZone
secure monitor.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
---
 arch/arm/mach-tegra/reset.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-tegra/reset.c b/arch/arm/mach-tegra/reset.c
index 17c4b6d..146fe8e 100644
--- a/arch/arm/mach-tegra/reset.c
+++ b/arch/arm/mach-tegra/reset.c
@@ -21,6 +21,7 @@
 
 #include <asm/cacheflush.h>
 #include <asm/hardware/cache-l2x0.h>
+#include <asm/firmware.h>
 
 #include "iomap.h"
 #include "irammap.h"
@@ -65,6 +66,7 @@ static void __init tegra_cpu_reset_handler_enable(void)
 	void __iomem *iram_base = IO_ADDRESS(TEGRA_IRAM_RESET_BASE);
 	const u32 reset_address = TEGRA_IRAM_RESET_BASE +
 						tegra_cpu_reset_handler_offset;
+	int err;
 
 	BUG_ON(is_enabled);
 	BUG_ON(tegra_cpu_reset_handler_size > TEGRA_IRAM_RESET_HANDLER_SIZE);
@@ -72,9 +74,18 @@ static void __init tegra_cpu_reset_handler_enable(void)
 	memcpy(iram_base, (void *)__tegra_cpu_reset_handler_start,
 			tegra_cpu_reset_handler_size);
 
-	tegra_cpu_reset_handler_set(reset_address);
-
-	is_enabled = true;
+	err = call_firmware_op(set_cpu_boot_addr, 0, reset_address);
+	switch (err) {
+	case -ENOSYS:
+		tegra_cpu_reset_handler_set(reset_address);
+		/* pass-through */
+	case 0:
+		is_enabled = true;
+		break;
+	default:
+		pr_crit("Cannot set CPU reset handler: %d\n", err);
+		BUG();
+	}
 }
 
 void __init tegra_cpu_reset_handler_init(void)
-- 
1.8.4.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default
  2013-11-24  6:30 [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Alexandre Courbot
                   ` (5 preceding siblings ...)
  2013-11-24  6:30 ` [PATCH v11 6/7] ARM: tegra: set CPU reset handler using firmware Alexandre Courbot
@ 2013-11-24  6:30 ` Alexandre Courbot
  2013-11-26  0:06   ` Olof Johansson
  2013-11-26  0:10 ` [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Olof Johansson
  2013-12-13 19:57 ` Stephen Warren
  8 siblings, 1 reply; 19+ messages in thread
From: Alexandre Courbot @ 2013-11-24  6:30 UTC (permalink / raw)
  To: Russell King, Stephen Warren, Thierry Reding
  Cc: Tomasz Figa, Olof Johansson, Dave Martin, Kevin Hilman,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	linux-kernel, linux-tegra, linux-arm-kernel, gnurou,
	Alexandre Courbot

Support for Trusted Foundations is light and allows the kernel to run on
a wider range of devices, so enable it by default.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Stephen Warren <swarren@nvidia.com>
---
 arch/arm/configs/tegra_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/configs/tegra_defconfig b/arch/arm/configs/tegra_defconfig
index 4934295..da753e3 100644
--- a/arch/arm/configs/tegra_defconfig
+++ b/arch/arm/configs/tegra_defconfig
@@ -33,6 +33,7 @@ CONFIG_PCI=y
 CONFIG_PCI_MSI=y
 CONFIG_PCI_TEGRA=y
 CONFIG_PCIEPORTBUS=y
+CONFIG_TRUSTED_FOUNDATIONS=y
 CONFIG_SMP=y
 CONFIG_PREEMPT=y
 CONFIG_AEABI=y
-- 
1.8.4.2


^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default
  2013-11-24  6:30 ` [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default Alexandre Courbot
@ 2013-11-26  0:06   ` Olof Johansson
  2013-11-26  1:35     ` Alexandre Courbot
  0 siblings, 1 reply; 19+ messages in thread
From: Olof Johansson @ 2013-11-26  0:06 UTC (permalink / raw)
  To: Alexandre Courbot
  Cc: Russell King, Stephen Warren, Thierry Reding, Tomasz Figa,
	Dave Martin, Kevin Hilman, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, devicetree, linux-kernel, linux-tegra,
	linux-arm-kernel, gnurou

On Sun, Nov 24, 2013 at 03:30:52PM +0900, Alexandre Courbot wrote:
> Support for Trusted Foundations is light and allows the kernel to run on
> a wider range of devices, so enable it by default.
> 
> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
> Reviewed-by: Stephen Warren <swarren@nvidia.com>
> ---
>  arch/arm/configs/tegra_defconfig | 1 +
>  1 file changed, 1 insertion(+)

I think we want this enabled on multi_v7_defconfig too? Send a separate
patch for that once this is merged though.


-Olof

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor
  2013-11-24  6:30 [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Alexandre Courbot
                   ` (6 preceding siblings ...)
  2013-11-24  6:30 ` [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default Alexandre Courbot
@ 2013-11-26  0:10 ` Olof Johansson
  2013-12-03  0:48   ` Alexandre Courbot
  2013-12-13 19:57 ` Stephen Warren
  8 siblings, 1 reply; 19+ messages in thread
From: Olof Johansson @ 2013-11-26  0:10 UTC (permalink / raw)
  To: Alexandre Courbot
  Cc: Russell King, Stephen Warren, Thierry Reding, Tomasz Figa,
	Dave Martin, Kevin Hilman, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, devicetree, linux-kernel, linux-tegra,
	linux-arm-kernel, gnurou

On Sun, Nov 24, 2013 at 03:30:45PM +0900, Alexandre Courbot wrote:
> New rebase that should be ready-to-apply on the latest Tegra tree. The last
> remaining blocker is Russell's approval for this series and it is my hope to
> obtain it with this version.
> 
> There has been quite some debate around this series, notably about the SMC
> calling conventions and whether the firmware interface should be moved out of
> arch/arm. I hope that all the questions have been answered and that we can move
> forward with this series that enables NVIDIA-branded retail Tegra devices to run
> mainline.
> 
> Changes since v10:
> - Rebased on top of more recent sources since some files have been renamed in
>   mach-tegra.
> - Gave a final proof-read and extensive testing.
> 
> Alexandre Courbot (7):
>   ARM: add basic support for Trusted Foundations
>   of: add vendor prefix for Trusted Logic Mobility
>   of: add Trusted Foundations bindings documentation
>   ARM: tegra: add support for Trusted Foundations
>   ARM: tegra: split setting of CPU reset handler
>   ARM: tegra: set CPU reset handler using firmware
>   ARM: tegra: support Trusted Foundations by default

Ok, this looks good to me. Russell, do you want the first patch in your
tree or are you ok with acking that and we can take everything through
arm-soc?

The alternative is that we can have Stephen provide a stable branch with
the first patch on it and we both merge that, then the rest goes on top
of that through arm-soc.


Thanks!

-Olof

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default
  2013-11-26  0:06   ` Olof Johansson
@ 2013-11-26  1:35     ` Alexandre Courbot
  2013-11-26 16:47       ` Dave Martin
  0 siblings, 1 reply; 19+ messages in thread
From: Alexandre Courbot @ 2013-11-26  1:35 UTC (permalink / raw)
  To: Olof Johansson
  Cc: Alexandre Courbot, Russell King, Stephen Warren, Thierry Reding,
	Tomasz Figa, Dave Martin, Kevin Hilman, Rob Herring, Pawel Moll,
	Mark Rutland, Ian Campbell, devicetree,
	Linux Kernel Mailing List, linux-tegra, linux-arm-kernel

On Tue, Nov 26, 2013 at 9:06 AM, Olof Johansson <olof@lixom.net> wrote:
> On Sun, Nov 24, 2013 at 03:30:52PM +0900, Alexandre Courbot wrote:
>> Support for Trusted Foundations is light and allows the kernel to run on
>> a wider range of devices, so enable it by default.
>>
>> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
>> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
>> Reviewed-by: Stephen Warren <swarren@nvidia.com>
>> ---
>>  arch/arm/configs/tegra_defconfig | 1 +
>>  1 file changed, 1 insertion(+)
>
> I think we want this enabled on multi_v7_defconfig too? Send a separate
> patch for that once this is merged though.

Will do.

Thanks,
Alex.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default
  2013-11-26  1:35     ` Alexandre Courbot
@ 2013-11-26 16:47       ` Dave Martin
  2013-11-28  6:02         ` Alexandre Courbot
  0 siblings, 1 reply; 19+ messages in thread
From: Dave Martin @ 2013-11-26 16:47 UTC (permalink / raw)
  To: Alexandre Courbot
  Cc: Olof Johansson, Mark Rutland, devicetree, Kevin Hilman,
	Russell King, Pawel Moll, Stephen Warren, Tomasz Figa,
	Ian Campbell, Linux Kernel Mailing List, Rob Herring,
	Thierry Reding, Alexandre Courbot, linux-tegra, linux-arm-kernel

On Tue, Nov 26, 2013 at 10:35:58AM +0900, Alexandre Courbot wrote:
> On Tue, Nov 26, 2013 at 9:06 AM, Olof Johansson <olof@lixom.net> wrote:
> > On Sun, Nov 24, 2013 at 03:30:52PM +0900, Alexandre Courbot wrote:
> >> Support for Trusted Foundations is light and allows the kernel to run on
> >> a wider range of devices, so enable it by default.
> >>
> >> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
> >> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
> >> Reviewed-by: Stephen Warren <swarren@nvidia.com>
> >> ---
> >>  arch/arm/configs/tegra_defconfig | 1 +
> >>  1 file changed, 1 insertion(+)
> >
> > I think we want this enabled on multi_v7_defconfig too? Send a separate
> > patch for that once this is merged though.
> 
> Will do.

Should it just be default y if one of the relevant
CONFIG_ARCH_TEGRA_*_SOC is selected?

That way, it's automatically included if relevant, and automatically
excluded if not -- regardless of whether the kernel is multiplatform
or not.

Cheers
---Dave

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default
  2013-11-26 16:47       ` Dave Martin
@ 2013-11-28  6:02         ` Alexandre Courbot
  2013-11-28 16:58           ` Stephen Warren
  0 siblings, 1 reply; 19+ messages in thread
From: Alexandre Courbot @ 2013-11-28  6:02 UTC (permalink / raw)
  To: Dave Martin
  Cc: Olof Johansson, Mark Rutland, devicetree, Kevin Hilman,
	Russell King, Pawel Moll, Stephen Warren, Tomasz Figa,
	Ian Campbell, Linux Kernel Mailing List, Rob Herring,
	Thierry Reding, Alexandre Courbot, linux-tegra, linux-arm-kernel

On Wed, Nov 27, 2013 at 1:47 AM, Dave Martin <Dave.Martin@arm.com> wrote:
> On Tue, Nov 26, 2013 at 10:35:58AM +0900, Alexandre Courbot wrote:
>> On Tue, Nov 26, 2013 at 9:06 AM, Olof Johansson <olof@lixom.net> wrote:
>> > On Sun, Nov 24, 2013 at 03:30:52PM +0900, Alexandre Courbot wrote:
>> >> Support for Trusted Foundations is light and allows the kernel to run on
>> >> a wider range of devices, so enable it by default.
>> >>
>> >> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
>> >> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
>> >> Reviewed-by: Stephen Warren <swarren@nvidia.com>
>> >> ---
>> >>  arch/arm/configs/tegra_defconfig | 1 +
>> >>  1 file changed, 1 insertion(+)
>> >
>> > I think we want this enabled on multi_v7_defconfig too? Send a separate
>> > patch for that once this is merged though.
>>
>> Will do.
>
> Should it just be default y if one of the relevant
> CONFIG_ARCH_TEGRA_*_SOC is selected?
>
> That way, it's automatically included if relevant, and automatically
> excluded if not -- regardless of whether the kernel is multiplatform
> or not.

So basically, that would mean setting the default to 'y' since the
option is not available unless a supported platform is included?

I'm fine this way too, if Stephen also agrees.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default
  2013-11-28  6:02         ` Alexandre Courbot
@ 2013-11-28 16:58           ` Stephen Warren
  2013-11-28 19:47             ` Dave Martin
  0 siblings, 1 reply; 19+ messages in thread
From: Stephen Warren @ 2013-11-28 16:58 UTC (permalink / raw)
  To: Alexandre Courbot, Dave Martin
  Cc: Olof Johansson, Mark Rutland, devicetree, Kevin Hilman,
	Russell King, Pawel Moll, Tomasz Figa, Ian Campbell,
	Linux Kernel Mailing List, Rob Herring, Thierry Reding,
	Alexandre Courbot, linux-tegra, linux-arm-kernel

On 11/27/2013 11:02 PM, Alexandre Courbot wrote:
> On Wed, Nov 27, 2013 at 1:47 AM, Dave Martin <Dave.Martin@arm.com> wrote:
>> On Tue, Nov 26, 2013 at 10:35:58AM +0900, Alexandre Courbot wrote:
>>> On Tue, Nov 26, 2013 at 9:06 AM, Olof Johansson <olof@lixom.net> wrote:
>>>> On Sun, Nov 24, 2013 at 03:30:52PM +0900, Alexandre Courbot wrote:
>>>>> Support for Trusted Foundations is light and allows the kernel to run on
>>>>> a wider range of devices, so enable it by default.
>>>>>
>>>>> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
>>>>> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
>>>>> Reviewed-by: Stephen Warren <swarren@nvidia.com>
>>>>> ---
>>>>>  arch/arm/configs/tegra_defconfig | 1 +
>>>>>  1 file changed, 1 insertion(+)
>>>>
>>>> I think we want this enabled on multi_v7_defconfig too? Send a separate
>>>> patch for that once this is merged though.
>>>
>>> Will do.
>>
>> Should it just be default y if one of the relevant
>> CONFIG_ARCH_TEGRA_*_SOC is selected?
>>
>> That way, it's automatically included if relevant, and automatically
>> excluded if not -- regardless of whether the kernel is multiplatform
>> or not.
> 
> So basically, that would mean setting the default to 'y' since the
> option is not available unless a supported platform is included?
> 
> I'm fine this way too, if Stephen also agrees.

Fine by me.


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default
  2013-11-28 16:58           ` Stephen Warren
@ 2013-11-28 19:47             ` Dave Martin
  2013-11-29  1:07               ` Alex Courbot
  0 siblings, 1 reply; 19+ messages in thread
From: Dave Martin @ 2013-11-28 19:47 UTC (permalink / raw)
  To: Stephen Warren
  Cc: Alexandre Courbot, Olof Johansson, Mark Rutland, devicetree,
	Kevin Hilman, Russell King, Pawel Moll, Tomasz Figa,
	Ian Campbell, Linux Kernel Mailing List, rob.herring,
	Thierry Reding, Alexandre Courbot, linux-tegra, linux-arm-kernel

On Thu, Nov 28, 2013 at 04:58:33PM +0000, Stephen Warren wrote:
> On 11/27/2013 11:02 PM, Alexandre Courbot wrote:
> > On Wed, Nov 27, 2013 at 1:47 AM, Dave Martin <Dave.Martin@arm.com> wrote:
> >> On Tue, Nov 26, 2013 at 10:35:58AM +0900, Alexandre Courbot wrote:
> >>> On Tue, Nov 26, 2013 at 9:06 AM, Olof Johansson <olof@lixom.net> wrote:
> >>>> On Sun, Nov 24, 2013 at 03:30:52PM +0900, Alexandre Courbot wrote:
> >>>>> Support for Trusted Foundations is light and allows the kernel to run on
> >>>>> a wider range of devices, so enable it by default.
> >>>>>
> >>>>> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
> >>>>> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
> >>>>> Reviewed-by: Stephen Warren <swarren@nvidia.com>
> >>>>> ---
> >>>>>  arch/arm/configs/tegra_defconfig | 1 +
> >>>>>  1 file changed, 1 insertion(+)
> >>>>
> >>>> I think we want this enabled on multi_v7_defconfig too? Send a separate
> >>>> patch for that once this is merged though.
> >>>
> >>> Will do.
> >>
> >> Should it just be default y if one of the relevant
> >> CONFIG_ARCH_TEGRA_*_SOC is selected?
> >>
> >> That way, it's automatically included if relevant, and automatically
> >> excluded if not -- regardless of whether the kernel is multiplatform
> >> or not.
> > 
> > So basically, that would mean setting the default to 'y' since the
> > option is not available unless a supported platform is included?
> > 
> > I'm fine this way too, if Stephen also agrees.
> 
> Fine by me.

Sure, as long as the result is right, that should be fine.

Cheers
---Dave

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default
  2013-11-28 19:47             ` Dave Martin
@ 2013-11-29  1:07               ` Alex Courbot
  0 siblings, 0 replies; 19+ messages in thread
From: Alex Courbot @ 2013-11-29  1:07 UTC (permalink / raw)
  To: Dave Martin, Stephen Warren
  Cc: Alexandre Courbot, Olof Johansson, Mark Rutland, devicetree,
	Kevin Hilman, Russell King, Pawel Moll, Tomasz Figa,
	Ian Campbell, Linux Kernel Mailing List, rob.herring,
	Thierry Reding, linux-tegra, linux-arm-kernel

On 11/29/2013 04:47 AM, Dave Martin wrote:
> On Thu, Nov 28, 2013 at 04:58:33PM +0000, Stephen Warren wrote:
>> On 11/27/2013 11:02 PM, Alexandre Courbot wrote:
>>> On Wed, Nov 27, 2013 at 1:47 AM, Dave Martin <Dave.Martin@arm.com> wrote:
>>>> On Tue, Nov 26, 2013 at 10:35:58AM +0900, Alexandre Courbot wrote:
>>>>> On Tue, Nov 26, 2013 at 9:06 AM, Olof Johansson <olof@lixom.net> wrote:
>>>>>> On Sun, Nov 24, 2013 at 03:30:52PM +0900, Alexandre Courbot wrote:
>>>>>>> Support for Trusted Foundations is light and allows the kernel to run on
>>>>>>> a wider range of devices, so enable it by default.
>>>>>>>
>>>>>>> Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
>>>>>>> Reviewed-by: Tomasz Figa <t.figa@samsung.com>
>>>>>>> Reviewed-by: Stephen Warren <swarren@nvidia.com>
>>>>>>> ---
>>>>>>>   arch/arm/configs/tegra_defconfig | 1 +
>>>>>>>   1 file changed, 1 insertion(+)
>>>>>>
>>>>>> I think we want this enabled on multi_v7_defconfig too? Send a separate
>>>>>> patch for that once this is merged though.
>>>>>
>>>>> Will do.
>>>>
>>>> Should it just be default y if one of the relevant
>>>> CONFIG_ARCH_TEGRA_*_SOC is selected?
>>>>
>>>> That way, it's automatically included if relevant, and automatically
>>>> excluded if not -- regardless of whether the kernel is multiplatform
>>>> or not.
>>>
>>> So basically, that would mean setting the default to 'y' since the
>>> option is not available unless a supported platform is included?
>>>
>>> I'm fine this way too, if Stephen also agrees.
>>
>> Fine by me.
>
> Sure, as long as the result is right, that should be fine.

Ok, then please ignore this patch in this series and I will send a new 
one that changes the CONFIG_TRUSTED_FOUNDATION's default setting once we 
have confirmation from Russell that this series can be merged.

Thanks,
Alex.


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor
  2013-11-26  0:10 ` [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Olof Johansson
@ 2013-12-03  0:48   ` Alexandre Courbot
  2013-12-09 17:21     ` Stephen Warren
  0 siblings, 1 reply; 19+ messages in thread
From: Alexandre Courbot @ 2013-12-03  0:48 UTC (permalink / raw)
  To: Russell King
  Cc: Olof Johansson, Alexandre Courbot, Stephen Warren,
	Thierry Reding, Tomasz Figa, Dave Martin, Kevin Hilman,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	Linux Kernel Mailing List, linux-tegra, linux-arm-kernel

On Tue, Nov 26, 2013 at 9:10 AM, Olof Johansson <olof@lixom.net> wrote:
> On Sun, Nov 24, 2013 at 03:30:45PM +0900, Alexandre Courbot wrote:
>> New rebase that should be ready-to-apply on the latest Tegra tree. The last
>> remaining blocker is Russell's approval for this series and it is my hope to
>> obtain it with this version.
>>
>> There has been quite some debate around this series, notably about the SMC
>> calling conventions and whether the firmware interface should be moved out of
>> arch/arm. I hope that all the questions have been answered and that we can move
>> forward with this series that enables NVIDIA-branded retail Tegra devices to run
>> mainline.
>>
>> Changes since v10:
>> - Rebased on top of more recent sources since some files have been renamed in
>>   mach-tegra.
>> - Gave a final proof-read and extensive testing.
>>
>> Alexandre Courbot (7):
>>   ARM: add basic support for Trusted Foundations
>>   of: add vendor prefix for Trusted Logic Mobility
>>   of: add Trusted Foundations bindings documentation
>>   ARM: tegra: add support for Trusted Foundations
>>   ARM: tegra: split setting of CPU reset handler
>>   ARM: tegra: set CPU reset handler using firmware
>>   ARM: tegra: support Trusted Foundations by default
>
> Ok, this looks good to me. Russell, do you want the first patch in your
> tree or are you ok with acking that and we can take everything through
> arm-soc?
>
> The alternative is that we can have Stephen provide a stable branch with
> the first patch on it and we both merge that, then the rest goes on top
> of that through arm-soc.

Russell, ping?

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor
  2013-12-03  0:48   ` Alexandre Courbot
@ 2013-12-09 17:21     ` Stephen Warren
  0 siblings, 0 replies; 19+ messages in thread
From: Stephen Warren @ 2013-12-09 17:21 UTC (permalink / raw)
  To: Alexandre Courbot, Russell King
  Cc: Olof Johansson, Alexandre Courbot, Thierry Reding, Tomasz Figa,
	Dave Martin, Kevin Hilman, Rob Herring, Pawel Moll, Mark Rutland,
	Ian Campbell, devicetree, Linux Kernel Mailing List, linux-tegra,
	linux-arm-kernel

On 12/02/2013 05:48 PM, Alexandre Courbot wrote:
> On Tue, Nov 26, 2013 at 9:10 AM, Olof Johansson <olof@lixom.net> wrote:
>> On Sun, Nov 24, 2013 at 03:30:45PM +0900, Alexandre Courbot wrote:
>>> New rebase that should be ready-to-apply on the latest Tegra tree. The last
>>> remaining blocker is Russell's approval for this series and it is my hope to
>>> obtain it with this version.
>>>
>>> There has been quite some debate around this series, notably about the SMC
>>> calling conventions and whether the firmware interface should be moved out of
>>> arch/arm. I hope that all the questions have been answered and that we can move
>>> forward with this series that enables NVIDIA-branded retail Tegra devices to run
>>> mainline.
>>>
>>> Changes since v10:
>>> - Rebased on top of more recent sources since some files have been renamed in
>>>   mach-tegra.
>>> - Gave a final proof-read and extensive testing.
>>>
>>> Alexandre Courbot (7):
>>>   ARM: add basic support for Trusted Foundations
>>>   of: add vendor prefix for Trusted Logic Mobility
>>>   of: add Trusted Foundations bindings documentation
>>>   ARM: tegra: add support for Trusted Foundations
>>>   ARM: tegra: split setting of CPU reset handler
>>>   ARM: tegra: set CPU reset handler using firmware
>>>   ARM: tegra: support Trusted Foundations by default
>>
>> Ok, this looks good to me. Russell, do you want the first patch in your
>> tree or are you ok with acking that and we can take everything through
>> arm-soc?
>>
>> The alternative is that we can have Stephen provide a stable branch with
>> the first patch on it and we both merge that, then the rest goes on top
>> of that through arm-soc.
> 
> Russell, ping?

Russell, are you OK with this series? If you could ack patch 1, that
would be great.

If I don't hear otherwise by Friday, I think the best thing is to merge
the whole series through the Tegra tree, although I'll structure it so
that patch 1 can be merged into other branches separately if needed.

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor
  2013-11-24  6:30 [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Alexandre Courbot
                   ` (7 preceding siblings ...)
  2013-11-26  0:10 ` [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Olof Johansson
@ 2013-12-13 19:57 ` Stephen Warren
  8 siblings, 0 replies; 19+ messages in thread
From: Stephen Warren @ 2013-12-13 19:57 UTC (permalink / raw)
  To: Alexandre Courbot, Russell King, Thierry Reding
  Cc: Tomasz Figa, Olof Johansson, Dave Martin, Kevin Hilman,
	Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, devicetree,
	linux-kernel, linux-tegra, linux-arm-kernel, gnurou

On 11/23/2013 11:30 PM, Alexandre Courbot wrote:
> New rebase that should be ready-to-apply on the latest Tegra tree. The last
> remaining blocker is Russell's approval for this series and it is my hope to
> obtain it with this version.
> 
> There has been quite some debate around this series, notably about the SMC
> calling conventions and whether the firmware interface should be moved out of
> arch/arm. I hope that all the questions have been answered and that we can move
> forward with this series that enables NVIDIA-branded retail Tegra devices to run
> mainline.

I have applied this series to Tegra's for-3.14/trusted-foundations
branch. This is based directly on v3.13-rc1, so that if anyone needs to
merge patch 1 anywhere else to resolve conflicts, it'll be easy. I can
create a signed tag for that purpose if required.

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2013-12-13 19:57 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-24  6:30 [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Alexandre Courbot
2013-11-24  6:30 ` [PATCH v11 1/7] ARM: add basic support for Trusted Foundations Alexandre Courbot
2013-11-24  6:30 ` [PATCH v11 2/7] of: add vendor prefix for Trusted Logic Mobility Alexandre Courbot
2013-11-24  6:30 ` [PATCH v11 3/7] of: add Trusted Foundations bindings documentation Alexandre Courbot
2013-11-24  6:30 ` [PATCH v11 4/7] ARM: tegra: add support for Trusted Foundations Alexandre Courbot
2013-11-24  6:30 ` [PATCH v11 5/7] ARM: tegra: split setting of CPU reset handler Alexandre Courbot
2013-11-24  6:30 ` [PATCH v11 6/7] ARM: tegra: set CPU reset handler using firmware Alexandre Courbot
2013-11-24  6:30 ` [PATCH v11 7/7] ARM: tegra: support Trusted Foundations by default Alexandre Courbot
2013-11-26  0:06   ` Olof Johansson
2013-11-26  1:35     ` Alexandre Courbot
2013-11-26 16:47       ` Dave Martin
2013-11-28  6:02         ` Alexandre Courbot
2013-11-28 16:58           ` Stephen Warren
2013-11-28 19:47             ` Dave Martin
2013-11-29  1:07               ` Alex Courbot
2013-11-26  0:10 ` [PATCH v11 0/7] ARM: support for the Trusted Foundations secure monitor Olof Johansson
2013-12-03  0:48   ` Alexandre Courbot
2013-12-09 17:21     ` Stephen Warren
2013-12-13 19:57 ` Stephen Warren

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).