Freescale Semiconductor DSP56364 Bread Maker User Manual


 
Bootstrap ROM
DSP56364 24-Bit Digital Signal Processor Users Manual, Rev. 2
A-4 Freescale Semiconductor
;========================================================================
; This is the routine that loads from external EPROM.
; MD:MC:MB:MA=0101
EPROMLD
move #BOOT,r2 ; r2 = address of external EPROM
movep #AARV,X:M_AAR1 ; aar1 configured for SRAM types of access
do #6,_LOOP9 ; read number of words and starting address
movem p:(r2)+,a2 ; Get the 8 LSB from ext. P mem.
asr #8,a,a ; Shift 8 bit data into A1
_LOOP9 ;
move a1,r0 ; starting address for load
move a1,r1 ; save it in r1
; a0 holds the number of words
do a0,_LOOP10 ; read program words
do #3,_LOOP11 ; Each instruction has 3 bytes
movem p:(r2)+,a2 ; Get the 8 LSB from ext. P mem.
asr #8,a,a ; Shift 8 bit data into A1
_LOOP11 ; Go get another byte.
movem a1,p:(r0)+ ; Store 24-bit result in P mem.
nop ; pipeline delay
_LOOP10 ; and go get another 24-bit word.
; Boot from EPROM done
;========================================================================
; This is the exit handler that returns execution to normal
; expanded mode and jumps to the RESET vector.
FINISH
andi #$0,ccr ; Clear CCR as if RESET to 0.
jmp (r1) ; Then go to starting Prog addr.
;========================================================================
; MD:MC:MB:MA=0111 is Burn-in code
; MD:MC:MB:MA=0110 is reserved
BURN_RES
jset #MA,omr,BURN ; If MD:MC:MB:MA=0111, go to BURN
;========================================================================
; The following modes are reserved:
; MD:MC:MB:MA=0110 is reserved
; MD:MC:MB:MA=1100 is reserved
; MD:MC:MB:MA=X0XX are reserved
OMRX0XX
RESERVED