diff mbox

[U-Boot,1/6] ARM: keystone2: Split monitor code / command code

Message ID 1458140588-28276-1-git-send-email-trini@konsulko.com
State Accepted
Commit aadd3360e61fe605eb53efe65e537dd5c1e8a4d1
Delegated to: Tom Rini
Headers show

Commit Message

Tom Rini March 16, 2016, 3:03 p.m. UTC
When we switch to including all linker lists in U-Boot it is important
to not include commands as that may lead to link errors due to other
things we have already discarded.  In this case, we split the code for
supporting the monitor out from the code for loading it.

Cc: Vitaly Andrianov <vitalya@ti.com>
Cc: Nishanth Menon <nm@ti.com>
Cc: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
---
 arch/arm/mach-keystone/Makefile           |    3 ++
 arch/arm/mach-keystone/cmd_mon.c          |   51 +----------------------
 arch/arm/mach-keystone/include/mach/mon.h |    6 ++-
 arch/arm/mach-keystone/mon.c              |   63 +++++++++++++++++++++++++++++
 4 files changed, 71 insertions(+), 52 deletions(-)
 create mode 100644 arch/arm/mach-keystone/mon.c

Comments

Albert ARIBAUD March 16, 2016, 5:15 p.m. UTC | #1
Hello Tom,

On Wed, 16 Mar 2016 11:03:03 -0400, Tom Rini <trini@konsulko.com> wrote:
> When we switch to including all linker lists in U-Boot it is important
> to not include commands as that may lead to link errors due to other
> things we have already discarded.  In this case, we split the code for
> supporting the monitor out from the code for loading it.

Not sure I'm understanding this commit message. Can you clarify?

Amicalement,
Tom Rini March 16, 2016, 7:02 p.m. UTC | #2
On Wed, Mar 16, 2016 at 06:15:19PM +0100, Albert ARIBAUD wrote:
> Hello Tom,
> 
> On Wed, 16 Mar 2016 11:03:03 -0400, Tom Rini <trini@konsulko.com> wrote:
> > When we switch to including all linker lists in U-Boot it is important
> > to not include commands as that may lead to link errors due to other
> > things we have already discarded.  In this case, we split the code for
> > supporting the monitor out from the code for loading it.
> 
> Not sure I'm understanding this commit message. Can you clarify?

sigh, I missed a word in this series, "... linker lists in U-Boot SPL it is
..."
Tom Rini March 17, 2016, 1:56 a.m. UTC | #3
On Wed, Mar 16, 2016 at 11:03:03AM -0400, Tom Rini wrote:

> When we switch to including all linker lists in U-Boot it is important
> to not include commands as that may lead to link errors due to other
> things we have already discarded.  In this case, we split the code for
> supporting the monitor out from the code for loading it.
> 
> Cc: Vitaly Andrianov <vitalya@ti.com>
> Cc: Nishanth Menon <nm@ti.com>
> Cc: Lokesh Vutla <lokeshvutla@ti.com>
> Signed-off-by: Tom Rini <trini@konsulko.com>

Reworded slightly and applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/arch/arm/mach-keystone/Makefile b/arch/arm/mach-keystone/Makefile
index 9713fe4..7f12009 100644
--- a/arch/arm/mach-keystone/Makefile
+++ b/arch/arm/mach-keystone/Makefile
@@ -8,8 +8,11 @@ 
 obj-y	+= init.o
 obj-y	+= psc.o
 obj-y	+= clock.o
+obj-y	+= mon.o
+ifndef CONFIG_SPL_BUILD
 obj-y	+= cmd_clock.o
 obj-y	+= cmd_mon.o
+endif
 obj-y	+= msmc.o
 obj-y	+= ddr3.o cmd_ddr3.o
 obj-y	+= keystone.o
diff --git a/arch/arm/mach-keystone/cmd_mon.c b/arch/arm/mach-keystone/cmd_mon.c
index a539d5d..6a9bdc9 100644
--- a/arch/arm/mach-keystone/cmd_mon.c
+++ b/arch/arm/mach-keystone/cmd_mon.c
@@ -9,25 +9,9 @@ 
 
 #include <common.h>
 #include <command.h>
+#include <mach/mon.h>
 asm(".arch_extension sec\n\t");
 
-static int mon_install(u32 addr, u32 dpsc, u32 freq)
-{
-	int result;
-
-	__asm__ __volatile__ (
-		"stmfd r13!, {lr}\n"
-		"mov r0, %1\n"
-		"mov r1, %2\n"
-		"mov r2, %3\n"
-		"blx r0\n"
-		"ldmfd r13!, {lr}\n"
-		: "=&r" (result)
-		: "r" (addr), "r" (dpsc), "r" (freq)
-		: "cc", "r0", "r1", "r2", "memory");
-	return result;
-}
-
 static int do_mon_install(cmd_tbl_t *cmdtp, int flag, int argc,
 			  char * const argv[])
 {
@@ -64,39 +48,6 @@  static void core_spin(void)
 	}
 }
 
-int mon_power_on(int core_id, void *ep)
-{
-	int result;
-
-	asm volatile (
-		"stmfd  r13!, {lr}\n"
-		"mov r1, %1\n"
-		"mov r2, %2\n"
-		"mov r0, #0\n"
-		"smc	#0\n"
-		"ldmfd  r13!, {lr}\n"
-		: "=&r" (result)
-		: "r" (core_id), "r" (ep)
-		: "cc", "r0", "r1", "r2", "memory");
-	return  result;
-}
-
-int mon_power_off(int core_id)
-{
-	int result;
-
-	asm volatile (
-		"stmfd  r13!, {lr}\n"
-		"mov r1, %1\n"
-		"mov r0, #1\n"
-		"smc	#1\n"
-		"ldmfd  r13!, {lr}\n"
-		: "=&r" (result)
-		: "r" (core_id)
-		: "cc", "r0", "r1", "memory");
-	return  result;
-}
-
 int do_mon_power(cmd_tbl_t *cmdtp, int flag, int argc,
 			char * const argv[])
 {
diff --git a/arch/arm/mach-keystone/include/mach/mon.h b/arch/arm/mach-keystone/include/mach/mon.h
index 33a2876..eb7aa93 100644
--- a/arch/arm/mach-keystone/include/mach/mon.h
+++ b/arch/arm/mach-keystone/include/mach/mon.h
@@ -7,9 +7,11 @@ 
  * SPDX-License-Identifier:     GPL-2.0+
  */
 
-#ifndef _MON_H_
-#define _MON_H_
+#ifndef _MACH_MON_H_
+#define _MACH_MON_H_
 
+int mon_install(u32 addr, u32 dpsc, u32 freq);
+int mon_power_on(int core_id, void *ep);
 int mon_power_off(int core_id);
 
 #endif
diff --git a/arch/arm/mach-keystone/mon.c b/arch/arm/mach-keystone/mon.c
new file mode 100644
index 0000000..256f630
--- /dev/null
+++ b/arch/arm/mach-keystone/mon.c
@@ -0,0 +1,63 @@ 
+/*
+ * K2HK: secure kernel command file
+ *
+ * (C) Copyright 2012-2014
+ *     Texas Instruments Incorporated, <www.ti.com>
+ *
+ * SPDX-License-Identifier:     GPL-2.0+
+ */
+
+#include <common.h>
+#include <command.h>
+#include <mach/mon.h>
+asm(".arch_extension sec\n\t");
+
+int mon_install(u32 addr, u32 dpsc, u32 freq)
+{
+	int result;
+
+	__asm__ __volatile__ (
+		"stmfd r13!, {lr}\n"
+		"mov r0, %1\n"
+		"mov r1, %2\n"
+		"mov r2, %3\n"
+		"blx r0\n"
+		"ldmfd r13!, {lr}\n"
+		: "=&r" (result)
+		: "r" (addr), "r" (dpsc), "r" (freq)
+		: "cc", "r0", "r1", "r2", "memory");
+	return result;
+}
+
+int mon_power_on(int core_id, void *ep)
+{
+	int result;
+
+	asm volatile (
+		"stmfd  r13!, {lr}\n"
+		"mov r1, %1\n"
+		"mov r2, %2\n"
+		"mov r0, #0\n"
+		"smc	#0\n"
+		"ldmfd  r13!, {lr}\n"
+		: "=&r" (result)
+		: "r" (core_id), "r" (ep)
+		: "cc", "r0", "r1", "r2", "memory");
+	return  result;
+}
+
+int mon_power_off(int core_id)
+{
+	int result;
+
+	asm volatile (
+		"stmfd  r13!, {lr}\n"
+		"mov r1, %1\n"
+		"mov r0, #1\n"
+		"smc	#1\n"
+		"ldmfd  r13!, {lr}\n"
+		: "=&r" (result)
+		: "r" (core_id)
+		: "cc", "r0", "r1", "memory");
+	return  result;
+}