jtag: linuxgpiod: drop extra parenthesis
[openocd.git] / contrib / loaders / flash / sim3x.s
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2
3 /***************************************************************************
4 * Copyright (C) 2014 by Ladislav Bábel *
5 * ladababel@seznam.cz *
6 ***************************************************************************/
7
8 #define INITIAL_UNLOCK 0x5A
9 #define MULTIPLE_UNLOCK 0xF2
10
11 #define FLASHCTRL_KEY 0x4002E0C0
12 #define FLASHCTRL_CONFIG 0x4002E000
13 #define FLASHCTRL_WRADDR 0x4002E0A0
14 #define FLASHCTRL_WRDATA 0x4002E0B0
15 #define BUSYF 0x00100000
16
17
18 /* Write the initial unlock value to KEY (0xA5) */
19 movs r6, #INITIAL_UNLOCK
20 str r6, [r0, #FLASHCTRL_KEY]
21
22 /* Write the multiple unlock value to KEY (0xF2) */
23 movs r6, #MULTIPLE_UNLOCK
24 str r6, [r0, #FLASHCTRL_KEY]
25
26 wait_fifo:
27 ldr r6, [r2, #0]
28 cmp r6, #0
29 beq exit
30 ldr r5, [r2, #4]
31 cmp r5, r6
32 beq wait_fifo
33
34 /* wait for BUSYF flag */
35 wait_busy1:
36 ldr r6, [r0, #FLASHCTRL_CONFIG]
37 tst r6, #BUSYF
38 bne wait_busy1
39
40 /* Write the destination address to WRADDR */
41 str r4, [r0, #FLASHCTRL_WRADDR]
42
43 /* Write the data half-word to WRDATA in right-justified format */
44 ldrh r6, [r5]
45 str r6, [r0, #FLASHCTRL_WRDATA]
46
47 adds r5, #2
48 adds r4, #2
49
50 /* wrap rp at end of buffer */
51 cmp r5, r3
52 bcc no_wrap
53 mov r5, r2
54 adds r5, #8
55
56 no_wrap:
57 str r5, [r2, #4]
58 subs r1, r1, #1
59 cmp r1, #0
60 beq exit
61 b wait_fifo
62
63 exit:
64 movs r6, #MULTIPLE_LOCK
65 str r6, [r0, #FLASHCTRL_KEY]
66
67 /* wait for BUSYF flag */
68 wait_busy2:
69 ldr r6, [r0, #FLASHCTRL_CONFIG]
70 tst r6, #BUSYF
71 bne wait_busy2
72
73 bkpt #0

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)