/* | |
* Copyright (c) 2021 Raspberry Pi (Trading) Ltd. | |
* | |
* SPDX-License-Identifier: BSD-3-Clause | |
*/ | |
#ifndef _BOOT2_HELPER_WAIT_SSI_READY | |
#define _BOOT2_HELPER_WAIT_SSI_READY | |
wait_ssi_ready: | |
push {r0, r1, lr} | |
// Command is complete when there is nothing left to send | |
// (TX FIFO empty) and SSI is no longer busy (CSn deasserted) | |
1: | |
ldr r1, [r3, #SSI_SR_OFFSET] | |
movs r0, #SSI_SR_TFE_BITS | |
tst r1, r0 | |
beq 1b | |
movs r0, #SSI_SR_BUSY_BITS | |
tst r1, r0 | |
bne 1b | |
pop {r0, r1, pc} | |
#endif |