This is an automated email from Gerrit.

"Jian-Hong Pan <chienhung....@gmail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/7346

-- gerrit

commit dc1e6d4d463d59c60a1b41fbde8b0de00a14ee76
Author: Jian-Hong Pan <chienhung....@gmail.com>
Date:   Sun Nov 13 12:43:14 2022 +0800

    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....@gmail.com>
    Change-Id: I9adea24c2b3c97319a9b015cf50257f3d131dc26

diff --git a/contrib/loaders/flash/numicro_m4/Makefile 
b/contrib/loaders/flash/numicro/Makefile
similarity index 82%
rename from contrib/loaders/flash/numicro_m4/Makefile
rename to contrib/loaders/flash/numicro/Makefile
index 0f9c507cd5..e4f44417c1 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 0000000000..3f6034c087
--- /dev/null
+++ b/contrib/loaders/flash/numicro/numicro_m0.S
@@ -0,0 +1,70 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+/***************************************************************************
+ *   Copyright (C) 2017 Zale Yu                                            *
+ *   c...@nuvoton.com                                                      *
+ *                                                                         *
+ *   Copyright (C) 2022 Jian-Hong Pan                                      *
+ *   chienhung....@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 0000000000..db9c7742f3
--- /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
similarity index 100%
rename from contrib/loaders/flash/numicro_m4/numicro_m4.S
rename to 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
similarity index 100%
rename from contrib/loaders/flash/numicro_m4/numicro_m4.inc
rename to contrib/loaders/flash/numicro/numicro_m4.inc
diff --git a/src/flash/nor/numicro.c b/src/flash/nor/numicro.c
index cbd2450b0e..0b04ce4b79 100644
--- a/src/flash/nor/numicro.c
+++ b/src/flash/nor/numicro.c
@@ -681,66 +681,11 @@ static uint32_t numicro_fmc_cmd(struct target *target, 
uint32_t cmd, uint32_t ad
 
 /* NuMicro Program-LongWord Microcodes */
 static const uint8_t numicro_flash_write_code[] = {
-       /* 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++){ */
-       0x04, 0x1C,                             /* mov    r4, r0          */
-       0x00, 0x23,                             /* mov    r3, #0          */
-       /* .L2: */
-       0x0D, 0x1A,                             /* sub    r5, r1, r0      */
-       0x67, 0x19,                             /* add    r7, r4, r7      */
-       0x93, 0x42,                             /* cmp    r3, r2                
  */
-       0x0C, 0xD0,                             /* beq    .L7             */
-       /* .L4: */
-       /* NUMICRO_FLASH_ISPADR = faddr; */
-       0x08, 0x4E,                             /* ldr  r6, .L8           */
-       0x37, 0x60,                             /* str  r7, [r6]          */
-       /* NUMICRO_FLASH_ISPDAT = *pLW; */
-       0x80, 0xCC,                             /* ldmia        r4!, {r7}     */
-       0x08, 0x4D,                             /* ldr  r5, .L8+4         */
-       0x2F, 0x60,                             /* str  r7, [r5]                
  */
-       /* faddr += 4; */
-       /* pLW++; */
-       /*  Trigger write action  */
-       /* NUMICRO_FLASH_ISPTRG = ISPTRG_ISPGO; */
-       0x08, 0x4D,                             /* ldr  r5, .L8+8         */
-       0x01, 0x26,                             /* mov  r6, #1            */
-       0x2E, 0x60,                             /* str  r6, [r5]          */
-       /* .L3: */
-       /* while((NUMICRO_FLASH_ISPTRG & ISPTRG_ISPGO) == ISPTRG_ISPGO){}; */
-       0x2F, 0x68,                             /* ldr  r7, [r5]          */
-       0xFF, 0x07,                             /* lsl  r7, r7, #31       */
-       0xFC, 0xD4,                             /* bmi  .L3               */
-
-       0x01, 0x33,                             /* add  r3, r3, #1        */
-       0xEE, 0xE7,                             /* b    .L2               */
-       /* .L7: */
-       /* return (NUMICRO_FLASH_ISPCON & ISPCON_ISPFF); */
-       0x05, 0x4B,                             /* ldr  r3, .L8+12        */
-       0x18, 0x68,                             /* ldr  r0, [r3]          */
-       0x40, 0x21,                             /* mov  r1, #64           */
-       0x08, 0x40,                             /* and  r0, r1            */
-       /* .L9: */
-       0x00, 0xBE,                             /* bkpt    #0             */
-       /* .L8: */
-       0x04, 0xC0, 0x00, 0x50,/* .word 1342226436    */
-       0x08, 0xC0, 0x00, 0x50,/* .word 1342226440    */
-       0x10, 0xC0, 0x00, 0x50,/* .word 1342226448    */
-       0x00, 0xC0, 0x00, 0x50 /* .word 1342226432    */
+#include "../../../contrib/loaders/flash/numicro/numicro_m0.inc"
 };
 
 static const uint8_t numicro_m4_flash_write_code[] = {
-#include "../../../contrib/loaders/flash/numicro_m4/numicro_m4.inc"
+#include "../../../contrib/loaders/flash/numicro/numicro_m4.inc"
 };
 
 /* Program LongWord Block Write */

-- 

Reply via email to