A-6 DSP56012 User’s Manual MOTOROLA

Bootstrap ROM Contents
; “shild” is the routine that loads from the Serial Host Interface.
; MC:MB:MA = 101—bootstrap from SHI (SPI)
; MC:MB:MA = 111—bootstrap from SHI (IIC)
; If MC:MB:MA = 1X1, the internal Program RAM is loaded with 256 words
; received through the Serial Host Interface (SHI).
; The SHI operates in the Slave mode
; with the 10-word FIFO enabled, and with the HREQ pin enabled for
; receive operation. The word size for transfer is 24 bits. The SHI
; operates in the SPI or in the IIC mode, according to the bootstrap mode.
shild jclr #mb,omr,shi_loop ; If MC:MB:MA = 101, select SPI mode
bset #hi2c,r1 ; otherwise select I2C mode.
shi_loop movep r1,x:hcsr ; enable SHI
do #256,_loop2
jclr #hrne,x:hcsr,* ; wait for HRX not empty
movep x:hrx,p:(r0)+ ; store in Program RAM
_loop2
; Exit bootstrap ROM
exit
clr a a0,r0 ; r0 points to destination address
andi #$ec,omr ; set operating mode to 0
; (and trigger an exit from
; bootstrap mode).
movep a1,x:bcr ; Delay needed for Op. Mode change
; used to clear BCR register.
jmp (r0) ; Then go to destination address.
; This code fills the unused bootstrap ROM locations with their address
dup $020-*
dc *
endm