view target-utils/libbase/osmodelay.S @ 718:098fea21ba13

doc/Host-tools-overview: tiffs-mkfs description updated The first version of tiffs-mkfs did not include a journal file in the created FFS, expecting the firmware to create it on first boot. All historical firmwares prior to a recent FC fix (2020-05) contain a bug in that code path, thus images made with the first version of tiffs-mkfs were only acceptable to very recent FC firmwares. tiffs-mkfs has now been extended to include an empty journal in the created FFS, thus the restriction of working with recent fw only has been lifted.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 23 Aug 2020 04:55:02 +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