]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
pcm052: add 'm4go' command
authorAlbert ARIBAUD \(3ADEV\) <albert.aribaud@3adev.fr>
Mon, 26 Sep 2016 07:08:05 +0000 (09:08 +0200)
committerStefano Babic <sbabic@denx.de>
Thu, 6 Oct 2016 07:06:16 +0000 (09:06 +0200)
Add the 'm4go' command to pcm052-based targets.
It loads scatter file images.

Signed-off-by: Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr>
board/phytec/pcm052/pcm052.c

index e4f61e1b927c31ce569b89e1256e67561cb594a4..7341899015b3256ebcb7820e2e03e6972ed60920 100644 (file)
@@ -513,3 +513,41 @@ int checkboard(void)
 
        return 0;
 }
+
+static int do_m4go(cmd_tbl_t *cmdtp, int flag, int argc,
+                      char * const argv[])
+{
+       ulong addr;
+
+       /* Consume 'm4go' */
+       argc--; argv++;
+
+       /*
+        * Parse provided address - default to load_addr in case not provided.
+        */
+
+       if (argc)
+               addr = simple_strtoul(argv[0], NULL, 16);
+       else
+               addr = load_addr;
+
+       /*
+        * Write boot address in PERSISTENT_ENTRY1[31:0] aka SRC_GPR2[31:0]
+        */
+       writel(addr + 0x401, 0x4006E028);
+
+       /*
+        * Start secondary processor by enabling its clock
+        */
+       writel(0x15a5a, 0x4006B08C);
+
+       return 1;
+}
+
+U_BOOT_CMD(
+       m4go, 2 /* one arg max */, 1 /* repeatable */, do_m4go,
+       "start the secondary Cortex-M4 from scatter file image",
+       "[<addr>]\n"
+       "    - start secondary Cortex-M4 core using a scatter file image\n"
+       "The argument needs to be a scatter file\n"
+);