aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorJian-Hong Pan <chienhung.pan@gmail.com>2022-11-13 12:43:14 +0800
committerAntonio Borneo <borneo.antonio@gmail.com>2023-01-15 15:04:25 +0000
commit9ffda10298eff870bde12dec580f98de6f497257 (patch)
tree106e8da1ee3874c8d3362ca23e67f92c447cb8c4 /contrib
parent63336f4aaf672899db78de4ce6781c9451851472 (diff)
downloadriscv-openocd-9ffda10298eff870bde12dec580f98de6f497257.zip
riscv-openocd-9ffda10298eff870bde12dec580f98de6f497257.tar.gz
riscv-openocd-9ffda10298eff870bde12dec580f98de6f497257.tar.bz2
flash/nor, contrib/loaders: move numicro M0 write assembly to contrib/loaders
Simply move numicro M0 flash write assembly to contrib/loaders. Also, modify corresponding Makefile and generated numicro_m0.inc. To make the path more general, this patch rename the path "contrib/loaders/flash/numicro_m4" to "contrib/loaders/flash/numicro" as well. Signed-off-by: Jian-Hong Pan <chienhung.pan@gmail.com> Change-Id: I9adea24c2b3c97319a9b015cf50257f3d131dc26 Reviewed-on: https://review.openocd.org/c/openocd/+/7346 Tested-by: jenkins Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Diffstat (limited to 'contrib')
-rw-r--r--contrib/loaders/flash/numicro/Makefile (renamed from contrib/loaders/flash/numicro_m4/Makefile)4
-rw-r--r--contrib/loaders/flash/numicro/numicro_m0.S73
-rw-r--r--contrib/loaders/flash/numicro/numicro_m0.inc5
-rw-r--r--contrib/loaders/flash/numicro/numicro_m4.S (renamed from contrib/loaders/flash/numicro_m4/numicro_m4.S)0
-rw-r--r--contrib/loaders/flash/numicro/numicro_m4.inc (renamed from contrib/loaders/flash/numicro_m4/numicro_m4.inc)0
5 files changed, 80 insertions, 2 deletions
diff --git a/contrib/loaders/flash/numicro_m4/Makefile b/contrib/loaders/flash/numicro/Makefile
index 0f9c507..e4f4441 100644
--- a/contrib/loaders/flash/numicro_m4/Makefile
+++ b/contrib/loaders/flash/numicro/Makefile
@@ -9,9 +9,9 @@ OBJCOPY=$(CROSS_COMPILE)objcopy
OBJDUMP=$(CROSS_COMPILE)objdump
-AFLAGS = -static -nostartfiles -mlittle-endian -mcpu=cortex-m4 -Wa,-EL
+AFLAGS = -static -nostartfiles -mlittle-endian -Wa,-EL
-all: numicro_m4.inc
+all: numicro_m0.inc numicro_m4.inc
.PHONY: clean
diff --git a/contrib/loaders/flash/numicro/numicro_m0.S b/contrib/loaders/flash/numicro/numicro_m0.S
new file mode 100644
index 0000000..37d4355
--- /dev/null
+++ b/contrib/loaders/flash/numicro/numicro_m0.S
@@ -0,0 +1,73 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+/***************************************************************************
+ * Copyright (C) 2015 Nemui Trinomius *
+ * nemuisan_kawausogasuki@live.jp *
+ * *
+ * Copyright (C) 2017 Zale Yu *
+ * CYYU@nuvoton.com *
+ * *
+ * Copyright (C) 2022 Jian-Hong Pan *
+ * chienhung.pan@gmail.com *
+ ***************************************************************************/
+
+ .text
+ .cpu cortex-m0
+ .thumb
+
+ /* Params:
+ * r0 - workarea buffer / result
+ * r1 - target address
+ * r2 - wordcount
+ * Clobbered:
+ * r4 - tmp
+ * r5 - tmp
+ * r6 - tmp
+ * r7 - tmp
+ */
+
+.L1:
+ /* for(register uint32_t i=0;i<wcount;i++){ */
+ mov r4, r0
+ mov r3, #0
+.L2:
+ sub r5, r1, r0
+ add r7, r4, r5
+ cmp r3, r2
+ beq .L7
+.L4:
+ /* NUMICRO_FLASH_ISPADR = faddr; */
+ ldr r6, .L8
+ str r7, [r6]
+ /* NUMICRO_FLASH_ISPDAT = *pLW; */
+ ldmia r4!, {r7}
+ ldr r5, .L8+4
+ str r7, [r5]
+ /* faddr += 4; */
+ /* pLW++; */
+ /* Trigger write action */
+ /* NUMICRO_FLASH_ISPTRG = ISPTRG_ISPGO; */
+ ldr r5, .L8+8
+ mov r6, #1
+ str r6, [r5]
+.L3:
+ /* while((NUMICRO_FLASH_ISPTRG & ISPTRG_ISPGO) == ISPTRG_ISPGO){}; */
+ ldr r7, [r5]
+ lsl r7, r7, #31
+ bmi .L3
+
+ add r3, r3, #1
+ b .L2
+.L7:
+ /* return (NUMICRO_FLASH_ISPCON & ISPCON_ISPFF); */
+ ldr r3, .L8+12
+ ldr r0, [r3]
+ mov r1, #64
+ and r0, r1
+.L9:
+ bkpt #0
+.L8:
+ .word 0x5000C004
+ .word 0x5000C008
+ .word 0x5000C010
+ .word 0x5000C000
diff --git a/contrib/loaders/flash/numicro/numicro_m0.inc b/contrib/loaders/flash/numicro/numicro_m0.inc
new file mode 100644
index 0000000..db9c774
--- /dev/null
+++ b/contrib/loaders/flash/numicro/numicro_m0.inc
@@ -0,0 +1,5 @@
+/* Autogenerated with ../../../../src/helper/bin2char.sh */
+0x04,0x1c,0x00,0x23,0x0d,0x1a,0x67,0x19,0x93,0x42,0x0c,0xd0,0x08,0x4e,0x37,0x60,
+0x80,0xcc,0x08,0x4d,0x2f,0x60,0x08,0x4d,0x01,0x26,0x2e,0x60,0x2f,0x68,0xff,0x07,
+0xfc,0xd4,0x01,0x33,0xee,0xe7,0x05,0x4b,0x18,0x68,0x40,0x21,0x08,0x40,0x00,0xbe,
+0x04,0xc0,0x00,0x50,0x08,0xc0,0x00,0x50,0x10,0xc0,0x00,0x50,0x00,0xc0,0x00,0x50,
diff --git a/contrib/loaders/flash/numicro_m4/numicro_m4.S b/contrib/loaders/flash/numicro/numicro_m4.S
index 6c59cca..6c59cca 100644
--- a/contrib/loaders/flash/numicro_m4/numicro_m4.S
+++ b/contrib/loaders/flash/numicro/numicro_m4.S
diff --git a/contrib/loaders/flash/numicro_m4/numicro_m4.inc b/contrib/loaders/flash/numicro/numicro_m4.inc
index c3e6052..c3e6052 100644
--- a/contrib/loaders/flash/numicro_m4/numicro_m4.inc
+++ b/contrib/loaders/flash/numicro/numicro_m4.inc