mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 1/5] ARM: psci: factor out smc command into commands/
@ 2019-11-15  7:52 Ahmad Fatoum
  2019-11-15  7:52 ` [PATCH 2/5] ARM: psci: properly wire in command help Ahmad Fatoum
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Ahmad Fatoum @ 2019-11-15  7:52 UTC (permalink / raw)
  To: barebox

So far, the smc command was only usable when barebox also provides the
secure monitor. It's useful to have it when barebox is a PSCI consumer
as well to test whether the secure monitor works.
Factor out the code into commands/ in preparation to do so.
No functional change.

Signed-off-by: Ahmad Fatoum <ahmad@a3f.at>
---
 arch/arm/cpu/psci.c | 105 -------------------------------------------
 commands/Kconfig    |  15 +++++++
 commands/Makefile   |   1 +
 commands/smc.c      | 107 ++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 123 insertions(+), 105 deletions(-)
 create mode 100644 commands/smc.c

diff --git a/arch/arm/cpu/psci.c b/arch/arm/cpu/psci.c
index 22ce1dfd0e84..713ab2396c01 100644
--- a/arch/arm/cpu/psci.c
+++ b/arch/arm/cpu/psci.c
@@ -227,108 +227,3 @@ static int armv7_psci_init(void)
 	return of_register_fixup(of_psci_do_fixup, NULL);
 }
 device_initcall(armv7_psci_init);
-
-#ifdef CONFIG_ARM_PSCI_DEBUG
-
-#include <command.h>
-#include <getopt.h>
-#include "mmu.h"
-
-void second_entry(void)
-{
-	struct arm_smccc_res res;
-
-	psci_printf("2nd CPU online, now turn off again\n");
-
-	arm_smccc_smc(ARM_PSCI_0_2_FN_CPU_OFF,
-		      0, 0, 0, 0, 0, 0, 0, &res);
-
-	psci_printf("2nd CPU still alive?\n");
-
-	while (1);
-}
-
-static const char *psci_xlate_str(long err)
-{
-       static char errno_string[sizeof "error 0x123456789ABCDEF0"];
-
-       switch(err)
-       {
-       case ARM_PSCI_RET_SUCCESS:
-	       return "Success";
-       case ARM_PSCI_RET_NOT_SUPPORTED:
-	       return "Operation not supported";
-       case ARM_PSCI_RET_INVAL:
-	       return "Invalid argument";
-       case ARM_PSCI_RET_DENIED:
-	       return "Operation not permitted";
-       case ARM_PSCI_RET_ALREADY_ON:
-	       return "CPU already on";
-       case ARM_PSCI_RET_ON_PENDING:
-	       return "CPU_ON in progress";
-       case ARM_PSCI_RET_INTERNAL_FAILURE:
-	       return "Internal failure";
-       case ARM_PSCI_RET_NOT_PRESENT:
-	       return "Trusted OS not present on core";
-       case ARM_PSCI_RET_DISABLED:
-	       return "CPU is disabled";
-       case ARM_PSCI_RET_INVALID_ADDRESS:
-	       return "Bad address";
-       }
-
-       sprintf(errno_string, "error 0x%lx", err);
-       return errno_string;
-}
-
-static int do_smc(int argc, char *argv[])
-{
-	long ret;
-	int opt;
-	struct arm_smccc_res res = {
-		.a0 = 0xdeadbee0,
-		.a1 = 0xdeadbee1,
-		.a2 = 0xdeadbee2,
-		.a3 = 0xdeadbee3,
-	};
-
-	if (argc < 2)
-		return COMMAND_ERROR_USAGE;
-
-	while ((opt = getopt(argc, argv, "nic")) > 0) {
-		switch (opt) {
-		case 'n':
-			armv7_secure_monitor_install();
-			break;
-		case 'i':
-			arm_smccc_smc(ARM_PSCI_0_2_FN_PSCI_VERSION,
-				      0, 0, 0, 0, 0, 0, 0, &res);
-			printf("found psci version %ld.%ld\n", res.a0 >> 16, res.a0 & 0xffff);
-			break;
-		case 'c':
-			arm_smccc_smc(ARM_PSCI_0_2_FN_CPU_ON,
-				      1, (unsigned long)second_entry, 0, 0, 0, 0, 0, &res);
-			ret = (long)res.a0;
-			printf("CPU_ON returns with: %s\n", psci_xlate_str(ret));
-			if (ret)
-				return COMMAND_ERROR;
-		}
-	}
-
-
-	return 0;
-}
-BAREBOX_CMD_HELP_START(smc)
-BAREBOX_CMD_HELP_TEXT("Secure monitor code test command")
-BAREBOX_CMD_HELP_TEXT("")
-BAREBOX_CMD_HELP_TEXT("Options:")
-BAREBOX_CMD_HELP_OPT ("-n",  "Install secure monitor and switch to nonsecure mode")
-BAREBOX_CMD_HELP_OPT ("-i",  "Show information about installed PSCI version")
-BAREBOX_CMD_HELP_OPT ("-c",  "Start secondary CPU core")
-BAREBOX_CMD_HELP_END
-
-BAREBOX_CMD_START(smc)
-	.cmd = do_smc,
-	BAREBOX_CMD_DESC("secure monitor test command")
-	BAREBOX_CMD_GROUP(CMD_GRP_MISC)
-BAREBOX_CMD_END
-#endif
diff --git a/commands/Kconfig b/commands/Kconfig
index a6db52ae54b7..08b3af8b20f2 100644
--- a/commands/Kconfig
+++ b/commands/Kconfig
@@ -1867,6 +1867,21 @@ config CMD_POWEROFF
 	help
 	  Turn the power off.
 
+config CMD_SMC
+	bool
+	depends on ARM_PSCI
+	prompt "PSCI test command"
+	default CONFIG_ARM_PSCI_DEBUG
+	help
+	  Secure monitor code test command
+
+	  Usage: smc [-nic]
+
+	  Options:
+	        -n	Install secure monitor and switch to nonsecure mode
+	        -i	Show information about installed PSCI version
+	        -c	Start secondary CPU core
+
 config CMD_SPI
 	bool
 	depends on SPI
diff --git a/commands/Makefile b/commands/Makefile
index 2f0980185c2b..01082de44c9b 100644
--- a/commands/Makefile
+++ b/commands/Makefile
@@ -17,6 +17,7 @@ obj-$(CONFIG_CMD_MEMSET)	+= memset.o
 obj-$(CONFIG_CMD_EDIT)		+= edit.o
 obj-$(CONFIG_CMD_EXEC)		+= exec.o
 obj-$(CONFIG_CMD_SLEEP)		+= sleep.o
+obj-$(CONFIG_CMD_SMC)		+= smc.o
 obj-$(CONFIG_CMD_MSLEEP)	+= msleep.o
 obj-$(CONFIG_CMD_RESET)		+= reset.o
 obj-$(CONFIG_CMD_POWEROFF)	+= poweroff.o
diff --git a/commands/smc.c b/commands/smc.c
new file mode 100644
index 000000000000..2a00e1586790
--- /dev/null
+++ b/commands/smc.c
@@ -0,0 +1,107 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <common.h>
+#include <command.h>
+#include <getopt.h>
+
+#include <asm/psci.h>
+#include <asm/secure.h>
+#include <linux/arm-smccc.h>
+
+void second_entry(void)
+{
+	struct arm_smccc_res res;
+
+	psci_printf("2nd CPU online, now turn off again\n");
+
+	arm_smccc_smc(ARM_PSCI_0_2_FN_CPU_OFF,
+		      0, 0, 0, 0, 0, 0, 0, &res);
+
+	psci_printf("2nd CPU still alive?\n");
+
+	while (1);
+}
+
+static const char *psci_xlate_str(long err)
+{
+       static char errno_string[sizeof "error 0x123456789ABCDEF0"];
+
+       switch(err)
+       {
+       case ARM_PSCI_RET_SUCCESS:
+	       return "Success";
+       case ARM_PSCI_RET_NOT_SUPPORTED:
+	       return "Operation not supported";
+       case ARM_PSCI_RET_INVAL:
+	       return "Invalid argument";
+       case ARM_PSCI_RET_DENIED:
+	       return "Operation not permitted";
+       case ARM_PSCI_RET_ALREADY_ON:
+	       return "CPU already on";
+       case ARM_PSCI_RET_ON_PENDING:
+	       return "CPU_ON in progress";
+       case ARM_PSCI_RET_INTERNAL_FAILURE:
+	       return "Internal failure";
+       case ARM_PSCI_RET_NOT_PRESENT:
+	       return "Trusted OS not present on core";
+       case ARM_PSCI_RET_DISABLED:
+	       return "CPU is disabled";
+       case ARM_PSCI_RET_INVALID_ADDRESS:
+	       return "Bad address";
+       }
+
+       sprintf(errno_string, "error 0x%lx", err);
+       return errno_string;
+}
+
+static int do_smc(int argc, char *argv[])
+{
+	long ret;
+	int opt;
+	struct arm_smccc_res res = {
+		.a0 = 0xdeadbee0,
+		.a1 = 0xdeadbee1,
+		.a2 = 0xdeadbee2,
+		.a3 = 0xdeadbee3,
+	};
+
+	if (argc < 2)
+		return COMMAND_ERROR_USAGE;
+
+	while ((opt = getopt(argc, argv, "nic")) > 0) {
+		switch (opt) {
+		case 'n':
+			armv7_secure_monitor_install();
+			break;
+		case 'i':
+			arm_smccc_smc(ARM_PSCI_0_2_FN_PSCI_VERSION,
+				      0, 0, 0, 0, 0, 0, 0, &res);
+			printf("found psci version %ld.%ld\n", res.a0 >> 16, res.a0 & 0xffff);
+			break;
+		case 'c':
+			arm_smccc_smc(ARM_PSCI_0_2_FN_CPU_ON,
+				      1, (unsigned long)second_entry, 0, 0, 0, 0, 0, &res);
+			ret = (long)res.a0;
+			printf("CPU_ON returns with: %s\n", psci_xlate_str(ret));
+			if (ret)
+				return COMMAND_ERROR;
+		}
+	}
+
+
+	return 0;
+}
+BAREBOX_CMD_HELP_START(smc)
+BAREBOX_CMD_HELP_TEXT("Secure monitor code test command")
+BAREBOX_CMD_HELP_TEXT("")
+BAREBOX_CMD_HELP_TEXT("Options:")
+BAREBOX_CMD_HELP_OPT ("-n",  "Install secure monitor and switch to nonsecure mode")
+BAREBOX_CMD_HELP_OPT ("-i",  "Show information about installed PSCI version")
+BAREBOX_CMD_HELP_OPT ("-c",  "Start secondary CPU core")
+BAREBOX_CMD_HELP_END
+
+BAREBOX_CMD_START(smc)
+	.cmd = do_smc,
+	BAREBOX_CMD_DESC("secure monitor test command")
+	BAREBOX_CMD_GROUP(CMD_GRP_MISC)
+BAREBOX_CMD_END
-- 
2.20.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 2/5] ARM: psci: properly wire in command help
  2019-11-15  7:52 [PATCH 1/5] ARM: psci: factor out smc command into commands/ Ahmad Fatoum
@ 2019-11-15  7:52 ` Ahmad Fatoum
  2019-11-15  7:52 ` [PATCH 3/5] commands: psci: make locally-used function static Ahmad Fatoum
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ahmad Fatoum @ 2019-11-15  7:52 UTC (permalink / raw)
  To: barebox

This was supposed to happen in 9efa1f8b ("ARM: psci: wire in smc command
help") along with some other changes. After rebases, the other changes
remained but this one was lost.. Do this right this time and specify the
appropriate BAREBOX_CMD_HELP.

Fixes: 9efa1f8b ("ARM: psci: wire in smc command help")
Signed-off-by: Ahmad Fatoum <ahmad@a3f.at>
---
 commands/smc.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/commands/smc.c b/commands/smc.c
index 2a00e1586790..67ca4ee9022f 100644
--- a/commands/smc.c
+++ b/commands/smc.c
@@ -103,5 +103,6 @@ BAREBOX_CMD_HELP_END
 BAREBOX_CMD_START(smc)
 	.cmd = do_smc,
 	BAREBOX_CMD_DESC("secure monitor test command")
+	BAREBOX_CMD_HELP(cmd_smc_help)
 	BAREBOX_CMD_GROUP(CMD_GRP_MISC)
 BAREBOX_CMD_END
-- 
2.20.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 3/5] commands: psci: make locally-used function static
  2019-11-15  7:52 [PATCH 1/5] ARM: psci: factor out smc command into commands/ Ahmad Fatoum
  2019-11-15  7:52 ` [PATCH 2/5] ARM: psci: properly wire in command help Ahmad Fatoum
@ 2019-11-15  7:52 ` Ahmad Fatoum
  2019-11-15  7:52 ` [PATCH 4/5] commands: smc: verify PSCI_POWER_ON with interprocessor handshake Ahmad Fatoum
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Ahmad Fatoum @ 2019-11-15  7:52 UTC (permalink / raw)
  To: barebox

Fixes a warning that the function is global, but without prototype.
No functional change.

Signed-off-by: Ahmad Fatoum <ahmad@a3f.at>
---
 commands/smc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/commands/smc.c b/commands/smc.c
index 67ca4ee9022f..eb96e581dc02 100644
--- a/commands/smc.c
+++ b/commands/smc.c
@@ -8,7 +8,7 @@
 #include <asm/secure.h>
 #include <linux/arm-smccc.h>
 
-void second_entry(void)
+static void second_entry(void)
 {
 	struct arm_smccc_res res;
 
-- 
2.20.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 4/5] commands: smc: verify PSCI_POWER_ON with interprocessor handshake
  2019-11-15  7:52 [PATCH 1/5] ARM: psci: factor out smc command into commands/ Ahmad Fatoum
  2019-11-15  7:52 ` [PATCH 2/5] ARM: psci: properly wire in command help Ahmad Fatoum
  2019-11-15  7:52 ` [PATCH 3/5] commands: psci: make locally-used function static Ahmad Fatoum
@ 2019-11-15  7:52 ` Ahmad Fatoum
  2019-11-15  7:52 ` [PATCH 5/5] commands: smc: make command usable when ARM_PSCI is undefined Ahmad Fatoum
  2019-11-19 10:58 ` [PATCH 1/5] ARM: psci: factor out smc command into commands/ Sascha Hauer
  4 siblings, 0 replies; 6+ messages in thread
From: Ahmad Fatoum @ 2019-11-15  7:52 UTC (permalink / raw)
  To: barebox

The use of psci_printf here, at least for the phytec-phycore-imx7,
is racy, because access to the UART is not synchronized. This may
lead to characters being swallowed and most certainly to garbled
text. One way around this would be using separate UART ports for
each core or even more generically, just dropping psci_printf and
resorting to inter-core communication over shared-memory to check
whether code execution succeeded.

Signed-off-by: Ahmad Fatoum <ahmad@a3f.at>
---
 arch/arm/cpu/Makefile |  2 +-
 commands/smc.c        | 61 ++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 56 insertions(+), 7 deletions(-)

diff --git a/arch/arm/cpu/Makefile b/arch/arm/cpu/Makefile
index 09b3bc2eeab9..75cd42a5e271 100644
--- a/arch/arm/cpu/Makefile
+++ b/arch/arm/cpu/Makefile
@@ -2,7 +2,7 @@ obj-y += cpu.o
 
 obj-$(CONFIG_ARM_EXCEPTIONS) += exceptions$(S64).o interrupts$(S64).o
 obj-$(CONFIG_MMU) += mmu$(S64).o mmu-common.o
-lwl-y += lowlevel$(S64).o
+obj-pbl-y += lowlevel$(S64).o
 obj-pbl-$(CONFIG_MMU) += mmu-early$(S64).o
 obj-pbl-$(CONFIG_CPU_32v7) += hyp.o
 AFLAGS_hyp.o :=-Wa,-march=armv7-a -Wa,-mcpu=all
diff --git a/commands/smc.c b/commands/smc.c
index eb96e581dc02..997103676eba 100644
--- a/commands/smc.c
+++ b/commands/smc.c
@@ -3,23 +3,47 @@
 #include <common.h>
 #include <command.h>
 #include <getopt.h>
+#include <dma.h>
+#include <linux/iopoll.h>
+#include <asm/barebox-arm-head.h>
 
 #include <asm/psci.h>
 #include <asm/secure.h>
 #include <linux/arm-smccc.h>
 
-static void second_entry(void)
+#define STACK_SIZE 100
+#define HANDSHAKE_MAGIC	0xBA12EB0C
+#define ERROR_MAGIC	0xDEADBEEF
+
+struct cpu_context {
+	unsigned long stack[STACK_SIZE];
+	long handshake;
+};
+
+static void noinline cpu_handshake(long *handshake)
 {
 	struct arm_smccc_res res;
 
-	psci_printf("2nd CPU online, now turn off again\n");
+	writel(HANDSHAKE_MAGIC, handshake);
 
 	arm_smccc_smc(ARM_PSCI_0_2_FN_CPU_OFF,
 		      0, 0, 0, 0, 0, 0, 0, &res);
 
-	psci_printf("2nd CPU still alive?\n");
+	writel(ERROR_MAGIC, handshake);
+
+	while (1)
+		;
+}
+
+static void __naked second_entry(unsigned long arg0)
+{
+	struct cpu_context *context = (void*)arg0;
+
+	arm_cpu_lowlevel_init();
+	arm_setup_stack((unsigned long)&context->stack[STACK_SIZE]);
+	barrier();
 
-	while (1);
+	cpu_handshake(&context->handshake);
 }
 
 static const char *psci_xlate_str(long err)
@@ -54,6 +78,8 @@ static const char *psci_xlate_str(long err)
        return errno_string;
 }
 
+static struct cpu_context *context;
+
 static int do_smc(int argc, char *argv[])
 {
 	long ret;
@@ -79,12 +105,35 @@ static int do_smc(int argc, char *argv[])
 			printf("found psci version %ld.%ld\n", res.a0 >> 16, res.a0 & 0xffff);
 			break;
 		case 'c':
+			if (!context)
+				context = dma_alloc_coherent(sizeof(*context),
+							     DMA_ADDRESS_BROKEN);
+
+			if (!context) {
+				printf("Out of memory\n");
+				return COMMAND_ERROR;
+			}
+
 			arm_smccc_smc(ARM_PSCI_0_2_FN_CPU_ON,
-				      1, (unsigned long)second_entry, 0, 0, 0, 0, 0, &res);
+				      1, (unsigned long)second_entry, (unsigned long)context,
+				      0, 0, 0, 0, &res);
 			ret = (long)res.a0;
 			printf("CPU_ON returns with: %s\n", psci_xlate_str(ret));
-			if (ret)
+			if (ret) {
+				unsigned long magic = readl(&context->handshake);
+				if (magic == ERROR_MAGIC)
+					printf("Turning off CPU had failed\n");
 				return COMMAND_ERROR;
+			}
+
+			readl_poll_timeout(&context->handshake, ret,
+					   ret != HANDSHAKE_MAGIC, USEC_PER_SEC);
+			if (ret == 0) {
+				printf("Second CPU handshake timed out.\n");
+				return COMMAND_ERROR;
+			}
+
+			printf("Second CPU handshake successful.\n");
 		}
 	}
 
-- 
2.20.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 5/5] commands: smc: make command usable when ARM_PSCI is undefined
  2019-11-15  7:52 [PATCH 1/5] ARM: psci: factor out smc command into commands/ Ahmad Fatoum
                   ` (2 preceding siblings ...)
  2019-11-15  7:52 ` [PATCH 4/5] commands: smc: verify PSCI_POWER_ON with interprocessor handshake Ahmad Fatoum
@ 2019-11-15  7:52 ` Ahmad Fatoum
  2019-11-19 10:58 ` [PATCH 1/5] ARM: psci: factor out smc command into commands/ Sascha Hauer
  4 siblings, 0 replies; 6+ messages in thread
From: Ahmad Fatoum @ 2019-11-15  7:52 UTC (permalink / raw)
  To: barebox

The smc command can be useful whenever PSCI is used, regardless of
whether barebox provides the secure monitor or not. Have it depend
on ARM_SMCCC instead.

Signed-off-by: Ahmad Fatoum <ahmad@a3f.at>
---
 commands/Kconfig | 2 +-
 commands/smc.c   | 5 +++++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/commands/Kconfig b/commands/Kconfig
index 08b3af8b20f2..7784966282ac 100644
--- a/commands/Kconfig
+++ b/commands/Kconfig
@@ -1869,7 +1869,7 @@ config CMD_POWEROFF
 
 config CMD_SMC
 	bool
-	depends on ARM_PSCI
+	depends on ARM_SMCCC
 	prompt "PSCI test command"
 	default CONFIG_ARM_PSCI_DEBUG
 	help
diff --git a/commands/smc.c b/commands/smc.c
index 997103676eba..84102f3249bc 100644
--- a/commands/smc.c
+++ b/commands/smc.c
@@ -97,6 +97,11 @@ static int do_smc(int argc, char *argv[])
 	while ((opt = getopt(argc, argv, "nic")) > 0) {
 		switch (opt) {
 		case 'n':
+			if (!IS_ENABLED(CONFIG_ARM_SECURE_MONITOR)) {
+				printf("secure monitor support not compiled in\n");
+				return COMMAND_ERROR;
+			}
+
 			armv7_secure_monitor_install();
 			break;
 		case 'i':
-- 
2.20.1


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* Re: [PATCH 1/5] ARM: psci: factor out smc command into commands/
  2019-11-15  7:52 [PATCH 1/5] ARM: psci: factor out smc command into commands/ Ahmad Fatoum
                   ` (3 preceding siblings ...)
  2019-11-15  7:52 ` [PATCH 5/5] commands: smc: make command usable when ARM_PSCI is undefined Ahmad Fatoum
@ 2019-11-19 10:58 ` Sascha Hauer
  4 siblings, 0 replies; 6+ messages in thread
From: Sascha Hauer @ 2019-11-19 10:58 UTC (permalink / raw)
  To: Ahmad Fatoum; +Cc: barebox

On Fri, Nov 15, 2019 at 08:52:53AM +0100, Ahmad Fatoum wrote:
> So far, the smc command was only usable when barebox also provides the
> secure monitor. It's useful to have it when barebox is a PSCI consumer
> as well to test whether the secure monitor works.
> Factor out the code into commands/ in preparation to do so.
> No functional change.
> 
> Signed-off-by: Ahmad Fatoum <ahmad@a3f.at>
> ---
>  arch/arm/cpu/psci.c | 105 -------------------------------------------
>  commands/Kconfig    |  15 +++++++
>  commands/Makefile   |   1 +
>  commands/smc.c      | 107 ++++++++++++++++++++++++++++++++++++++++++++
>  4 files changed, 123 insertions(+), 105 deletions(-)
>  create mode 100644 commands/smc.c

Applied, thanks

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

end of thread, other threads:[~2019-11-19 10:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-15  7:52 [PATCH 1/5] ARM: psci: factor out smc command into commands/ Ahmad Fatoum
2019-11-15  7:52 ` [PATCH 2/5] ARM: psci: properly wire in command help Ahmad Fatoum
2019-11-15  7:52 ` [PATCH 3/5] commands: psci: make locally-used function static Ahmad Fatoum
2019-11-15  7:52 ` [PATCH 4/5] commands: smc: verify PSCI_POWER_ON with interprocessor handshake Ahmad Fatoum
2019-11-15  7:52 ` [PATCH 5/5] commands: smc: make command usable when ARM_PSCI is undefined Ahmad Fatoum
2019-11-19 10:58 ` [PATCH 1/5] ARM: psci: factor out smc command into commands/ Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox