/* SPDX-License-Identifier: GPL-2.0-or-later */ /*************************************************************************** * Copyright (C) 2010 by Spencer Oliver * * spen@spen-soft.co.uk * ***************************************************************************/ .text .arm .arch armv5t .section .init /* r0 source address (in) r1 target address (in) r2 word count (in) r3 result (out) */ write: bic r4, r1, #3 /* word address */ mov r3, #0x40 /* write command */ strh r3, [r4, #0] ldrh r3, [r0], #2 /* read data */ strh r3, [r1], #2 /* write data */ mov r3, #0x70 /* status command */ strh r3, [r4, #0] busy: ldrb r3, [r4, #0] /* status */ tst r3, #0x80 beq busy mov r5, #0x50 /* clear status command */ strh r5, [r4, #0] mov r5, #0xFF /* read array */ strh r5, [r4, #0] tst r3, #0x12 bne exit subs r2, r2, #1 /* decrement word count */ bne write exit: bkpt #0 .end