From a58f294ac49c0b499e9eb427f81fe85a6e7a4338 Mon Sep 17 00:00:00 2001 From: Andrey Yurovsky Date: Fri, 20 Sep 2013 22:21:10 -0700 Subject: [PATCH] sam4s flash: remove unused bootstrap routine Remove the static const array containing ARM instructions for a bootstrap program. Despite what the comment says, the DAP can write to the Flash and in fact this program is not referenced anywhere in openocd so it's a bit confusing having it in there. There should be no functionality change from this. Change-Id: I4ca4206f090a896628ee9b675d1f04450ada1563 Signed-off-by: Andrey Yurovsky Reviewed-on: http://openocd.zylin.com/1641 Tested-by: jenkins Reviewed-by: Andreas Fritiofson --- src/flash/nor/at91sam4.c | 87 ---------------------------------------- 1 file changed, 87 deletions(-) diff --git a/src/flash/nor/at91sam4.c b/src/flash/nor/at91sam4.c index c7385c4f34..2615c3d750 100644 --- a/src/flash/nor/at91sam4.c +++ b/src/flash/nor/at91sam4.c @@ -1838,93 +1838,6 @@ static int sam4_page_read(struct sam4_bank_private *pPrivate, unsigned pagenum, return r; } -/* The code below is basically this: */ -/* compiled with */ -/* arm-none-eabi-gcc -mthumb -mcpu = cortex-m3 -O9 -S ./foobar.c -o foobar.s */ -/* */ -/* Only the *CPU* can write to the flash buffer. */ -/* the DAP cannot... so - we download this 28byte thing */ -/* Run the algorithm - (below) */ -/* to program the device */ -/* */ -/* ======================================== */ -/* #include */ -/* */ -/* struct foo { */ -/* uint32_t *dst; */ -/* const uint32_t *src; */ -/* int n; */ -/* volatile uint32_t *base; */ -/* uint32_t cmd; */ -/* }; */ -/* */ -/* */ -/* uint32_t sam4_function(struct foo *p) */ -/* { */ -/* volatile uint32_t *v; */ -/* uint32_t *d; */ -/* const uint32_t *s; */ -/* int n; */ -/* uint32_t r; */ -/* */ -/* d = p->dst; */ -/* s = p->src; */ -/* n = p->n; */ -/* */ -/* do { */ -/* *d++ = *s++; */ -/* } while (--n) */ -/* ; */ -/* */ -/* v = p->base; */ -/* */ -/* v[ 1 ] = p->cmd; */ -/* do { */ -/* r = v[8/4]; */ -/* } while (!(r&1)) */ -/* ; */ -/* return r; */ -/* } */ -/* ======================================== */ - -static const uint8_t - sam4_page_write_opcodes[] = { - /* 24 0000 0446 mov r4, r0 */ - 0x04, 0x46, - /* 25 0002 6168 ldr r1, [r4, #4] */ - 0x61, 0x68, - /* 26 0004 0068 ldr r0, [r0, #0] */ - 0x00, 0x68, - /* 27 0006 A268 ldr r2, [r4, #8] */ - 0xa2, 0x68, - /* 28 @ lr needed for prologue */ - /* 29 .L2: */ - /* 30 0008 51F8043B ldr r3, [r1], #4 */ - 0x51, 0xf8, 0x04, 0x3b, - /* 31 000c 12F1FF32 adds r2, r2, #-1 */ - 0x12, 0xf1, 0xff, 0x32, - /* 32 0010 40F8043B str r3, [r0], #4 */ - 0x40, 0xf8, 0x04, 0x3b, - /* 33 0014 F8D1 bne .L2 */ - 0xf8, 0xd1, - /* 34 0016 E268 ldr r2, [r4, #12] */ - 0xe2, 0x68, - /* 35 0018 2369 ldr r3, [r4, #16] */ - 0x23, 0x69, - /* 36 001a 5360 str r3, [r2, #4] */ - 0x53, 0x60, - /* 37 001c 0832 adds r2, r2, #8 */ - 0x08, 0x32, - /* 38 .L4: */ - /* 39 001e 1068 ldr r0, [r2, #0] */ - 0x10, 0x68, - /* 40 0020 10F0010F tst r0, #1 */ - 0x10, 0xf0, 0x01, 0x0f, - /* 41 0024 FBD0 beq .L4 */ - 0xfb, 0xd0, - 0x00, 0xBE /* bkpt #0 */ -}; - static int sam4_page_write(struct sam4_bank_private *pPrivate, unsigned pagenum, uint8_t *buf) { uint32_t adr; -- 2.30.2