view target-utils/libbase/osmodelay.S @ 416:30f6d1c32c6f

doc/Flash-boot-defect article removed (no longer relevant) This article is no longer relevant because the issue in question only affected one (1) defective FCDEV3B board which was not and never will be sold.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 26 Oct 2018 07:11:08 +0000
parents e7502631a0f9
children
line wrap: on
line source

/*
 * This assembly module provides a replica of OsmocomBB's bogo-millisecond
 * delay_ms() function.  It is literally a copy of what OsmocomBB's delay_ms()
 * compiles to with their gcc version and their optimization settings, as seen
 * by doing arm-elf-objdump on their lib/delay.o.
 *
 * This hack is intended for those cases where we have to copy OsmocomBB's
 * black magic voodoo operations with no ability to understand what is actually
 * needed, such as SPCA552E initialization on the Pirelli DP-L10.
 */

	.text
	.code	32
	.globl	osmo_delay_ms
osmo_delay_ms:
	mov     r3, #0
	sub     sp, sp, #4
	str     r3, [sp]
	ldr     r3, =1300
	mul     r3, r0, r3
	b       2f
1:	ldr     r2, [sp]
	ldr     r2, [sp]
	add     r2, r2, #1
	str     r2, [sp]
2:	ldr     r2, [sp]
	cmp     r2, r3
	bcc     1b
	add     sp, sp, #4
	bx      lr