stm32l4x.c: Use explicit 64-bit flash access as reference manual implies. 39/3139/3
authorUwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Mon, 30 Nov 2015 11:12:42 +0000 (12:12 +0100)
committerFreddie Chopin <freddie.chopin@gmail.com>
Wed, 4 May 2016 21:53:23 +0000 (22:53 +0100)
Change-Id: I87b540c1ee7158a9d697e9fbc845a603c6bbe74d
Signed-off-by: Uwe Bonnes <bon@elektron.ikp.physik.tu-darmstadt.de>
Reviewed-on: http://openocd.zylin.com/3139
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
Tested-by: jenkins
contrib/loaders/flash/stm32l4x.S
src/flash/nor/stm32l4x.c

index 587cc33a99abcde691956de3926628153ce80ec4..045f9d0d6b16c045ce495dbe7823e9c4cced8447 100644 (file)
@@ -51,9 +51,9 @@
  * r4 = flash base
  *
  * Clobbered:
- * r5 - rp
- * r6 - temp
- * r8 - wp, tmp
+ * r5   - rp
+ * r6/7 - temp (64-bit)
+ * r8   - wp, tmp
  */
 
 #define STM32_FLASH_CR_OFFSET  0x14    /* offset of CR register in FLASH struct */
@@ -70,10 +70,8 @@ wait_fifo:
 
        ldr     r6, STM32_PROG
        str     r6, [r4, #STM32_FLASH_CR_OFFSET]
-       ldr     r6, [r5], #0x04 /* read one word from src, increment ptr */
-       str     r6, [r2], #0x04 /* write one word to dst, increment ptr */
-       ldr     r6, [r5], #0x04 /* read one word from src, increment ptr */
-       str     r6, [r2], #0x04 /* write one word to dst, increment ptr */
+       ldrd    r6, [r5], #0x08 /* read one word from src, increment ptr */
+       strd    r6, [r2], #0x08 /* write one word to dst, increment ptr */
        dsb
 busy:
        ldr     r6, [r4, #STM32_FLASH_SR_OFFSET]
index 2c9a8bdf6fa8f74053dbc422a8f13b7671853719..42e90bc746adc3de045b8da4d1c38dd7bf6e237a 100644 (file)
@@ -463,14 +463,13 @@ static int stm32l4_write_block(struct flash_bank *bank, const uint8_t *buffer,
         */
 
        static const uint8_t stm32l4_flash_write_code[] = {
-               0xd0, 0xf8, 0x00, 0x80, 0xb8, 0xf1, 0x00, 0x0f, 0x22, 0xd0, 0x45, 0x68,
-               0xb8, 0xeb, 0x05, 0x06, 0x07, 0x2e, 0xf5, 0xd3, 0xdf, 0xf8, 0x3c, 0x60,
-               0x66, 0x61, 0x55, 0xf8, 0x04, 0x6b, 0x42, 0xf8, 0x04, 0x6b, 0x55, 0xf8,
-               0x04, 0x6b, 0x42, 0xf8, 0x04, 0x6b, 0xbf, 0xf3, 0x4f, 0x8f, 0x26, 0x69,
-               0x16, 0xf4, 0x80, 0x3f, 0xfb, 0xd1, 0x16, 0xf0, 0xfa, 0x0f, 0x07, 0xd1,
-               0x8d, 0x42, 0x28, 0xbf, 0x00, 0xf1, 0x08, 0x05, 0x45, 0x60, 0x01, 0x3b,
-               0x13, 0xb1, 0xd9, 0xe7, 0x00, 0x21, 0x41, 0x60, 0x30, 0x46, 0x00, 0xbe,
-               0x01, 0x00, 0x00, 0x00
+               0xd0, 0xf8, 0x00, 0x80, 0xb8, 0xf1, 0x00, 0x0f, 0x1e, 0xd0, 0x45, 0x68,
+               0xb8, 0xeb, 0x05, 0x06, 0x07, 0x2e, 0xf5, 0xd3, 0xdf, 0xf8, 0x34, 0x60,
+               0x66, 0x61, 0xf5, 0xe8, 0x02, 0x67, 0xe2, 0xe8, 0x02, 0x67, 0xbf, 0xf3,
+               0x4f, 0x8f, 0x26, 0x69, 0x16, 0xf4, 0x80, 0x3f, 0xfb, 0xd1, 0x16, 0xf0,
+               0xfa, 0x0f, 0x07, 0xd1, 0x8d, 0x42, 0x28, 0xbf, 0x00, 0xf1, 0x08, 0x05,
+               0x45, 0x60, 0x01, 0x3b, 0x13, 0xb1, 0xdd, 0xe7, 0x00, 0x21, 0x41, 0x60,
+               0x30, 0x46, 0x00, 0xbe, 0x01, 0x00, 0x00, 0x00
        };
 
        if (target_alloc_working_area(target, sizeof(stm32l4_flash_write_code),

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)