FreeCalypso > hg > freecalypso-tools
view target-utils/compalstage/compalstage.S @ 703:ff3d8167fa94
doc/Target-utils: lunadrv documented
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 07 May 2020 03:18:44 +0000 |
parents | 21eec7569eb8 |
children |
line wrap: on
line source
.text .org 0 #if THUMB_ENTRY .code 16 bx pc nop #endif .code 32 /* delay loop like OsmocomBB does */ mov r1, #0xa0000 1: subs r1, r1, #1 bne 1b /* enable the Calypso boot ROM */ ldr r1, reg_addr mov r2, #0x0100 strh r2, [r1] /* jump to it! */ mov pc, #0 reg_addr: .word 0xFFFFFB10 #if PAD_TO_1003 /* * The older and most familiar versions of C139/140 boot code expect the * signature bytes to be "1003" or greater, but a recently encountered * newer version expects them to be "1004" or greater instead. As the * actual comparison check in all currently known boot code versions is * an inequality (the signature bytes in the downloaded image need to be * greater than or equal to the hard-coded reference values), always * putting "1004" in our compalstage image instead of "1003" should satisfy * all existing C1xx boot code versions, or at least all currently known * ones. However, having an image named compalstage-1003.bin with the * corresponding -c 1003 loadtools option that is actually "1004" inside * feels a little "wrong" in some sense, while getting rid of the -c 1003 * option would break old user instructions, hence let's go ahead and do the * silly exercise of building both "1003" and "1004" versions. */ .org 0x3be0 #if MAGIC_1004 .ascii "1004" #else .ascii "1003" #endif #endif