stm32l4x.c: Use explicit 64-bit flash access as reference manual implies.

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
This commit is contained in:
Uwe Bonnes 2015-11-30 12:12:42 +01:00 committed by Freddie Chopin
parent 54908d9fb9
commit a28b94e9ab
2 changed files with 12 additions and 15 deletions

View File

@ -52,7 +52,7 @@
* *
* Clobbered: * Clobbered:
* r5 - rp * r5 - rp
* r6 - temp * r6/7 - temp (64-bit)
* r8 - wp, tmp * r8 - wp, tmp
*/ */
@ -70,10 +70,8 @@ wait_fifo:
ldr r6, STM32_PROG ldr r6, STM32_PROG
str r6, [r4, #STM32_FLASH_CR_OFFSET] str r6, [r4, #STM32_FLASH_CR_OFFSET]
ldr r6, [r5], #0x04 /* read one word from src, increment ptr */ ldrd r6, [r5], #0x08 /* read one word from src, increment ptr */
str r6, [r2], #0x04 /* write one word to dst, increment ptr */ strd r6, [r2], #0x08 /* 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 */
dsb dsb
busy: busy:
ldr r6, [r4, #STM32_FLASH_SR_OFFSET] ldr r6, [r4, #STM32_FLASH_SR_OFFSET]

View 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[] = { static const uint8_t stm32l4_flash_write_code[] = {
0xd0, 0xf8, 0x00, 0x80, 0xb8, 0xf1, 0x00, 0x0f, 0x22, 0xd0, 0x45, 0x68, 0xd0, 0xf8, 0x00, 0x80, 0xb8, 0xf1, 0x00, 0x0f, 0x1e, 0xd0, 0x45, 0x68,
0xb8, 0xeb, 0x05, 0x06, 0x07, 0x2e, 0xf5, 0xd3, 0xdf, 0xf8, 0x3c, 0x60, 0xb8, 0xeb, 0x05, 0x06, 0x07, 0x2e, 0xf5, 0xd3, 0xdf, 0xf8, 0x34, 0x60,
0x66, 0x61, 0x55, 0xf8, 0x04, 0x6b, 0x42, 0xf8, 0x04, 0x6b, 0x55, 0xf8, 0x66, 0x61, 0xf5, 0xe8, 0x02, 0x67, 0xe2, 0xe8, 0x02, 0x67, 0xbf, 0xf3,
0x04, 0x6b, 0x42, 0xf8, 0x04, 0x6b, 0xbf, 0xf3, 0x4f, 0x8f, 0x26, 0x69, 0x4f, 0x8f, 0x26, 0x69, 0x16, 0xf4, 0x80, 0x3f, 0xfb, 0xd1, 0x16, 0xf0,
0x16, 0xf4, 0x80, 0x3f, 0xfb, 0xd1, 0x16, 0xf0, 0xfa, 0x0f, 0x07, 0xd1, 0xfa, 0x0f, 0x07, 0xd1, 0x8d, 0x42, 0x28, 0xbf, 0x00, 0xf1, 0x08, 0x05,
0x8d, 0x42, 0x28, 0xbf, 0x00, 0xf1, 0x08, 0x05, 0x45, 0x60, 0x01, 0x3b, 0x45, 0x60, 0x01, 0x3b, 0x13, 0xb1, 0xdd, 0xe7, 0x00, 0x21, 0x41, 0x60,
0x13, 0xb1, 0xd9, 0xe7, 0x00, 0x21, 0x41, 0x60, 0x30, 0x46, 0x00, 0xbe, 0x30, 0x46, 0x00, 0xbe, 0x01, 0x00, 0x00, 0x00
0x01, 0x00, 0x00, 0x00
}; };
if (target_alloc_working_area(target, sizeof(stm32l4_flash_write_code), if (target_alloc_working_area(target, sizeof(stm32l4_flash_write_code),