diff options
author | Jian-Hong Pan <chienhung.pan@gmail.com> | 2022-11-13 12:43:14 +0800 |
---|---|---|
committer | Antonio Borneo <borneo.antonio@gmail.com> | 2023-01-15 15:04:25 +0000 |
commit | 9ffda10298eff870bde12dec580f98de6f497257 (patch) | |
tree | 106e8da1ee3874c8d3362ca23e67f92c447cb8c4 /contrib | |
parent | 63336f4aaf672899db78de4ce6781c9451851472 (diff) | |
download | riscv-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.S | 73 | ||||
-rw-r--r-- | contrib/loaders/flash/numicro/numicro_m0.inc | 5 | ||||
-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 |