1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 /***************************************************************************
4 * Copyright (C) 2016 by Maxim Integrated *
5 * Kevin Gillespie <kevin.gillespie@maximintegrated.com *
6 ***************************************************************************/
19 * r3 = count (32bit words)
20 * r4 = pFLASH_CTRL_BASE
31 ldr r8, [r0, #0] /* read wp */
32 cmp r8, #0 /* abort if wp == 0 */
34 ldr r7, [r0, #4] /* read rp */
35 cmp r7, r8 /* wait until rp != wp */
39 str r2, [r4, #0x00] /* FLSH_ADDR - write address */
40 add r2, r2, #4 /* increment target address */
42 str r8, [r4, #0x30] /* FLSH_DATA0 - write data */
43 ldr r5, [r4, #0x08] /* FLSH_CN */
45 str r5, [r4, #0x08] /* FLSH_CN - enable write */
47 ldr r8, [r4, #0x08] /* FLSH_CN */
51 cmp r7, r1 /* wrap rp at end of buffer */
53 addcs r7, r0, #8 /* skip loader args */
54 str r7, [r0, #4] /* store rp */
55 subs r3, r3, #1 /* decrement word count */
56 cbz r3, exit /* loop if not done */