Motorola DSP56301 User Manual
Page 307

DSP56301 User’s Manual
A
-11
bra <FINISH ;
;========================================================================
; This is the routine for 56301-to-56301 boot.
; MD:MC:MB:MA=x011 - HI32 in UB mode, double strobe, HTA pin active low
UB3HOSTLD
movep #$268000,x:M_DCTR ; HM=$2 (UB)
; HIRD=0 (HIRQ_ pin - drive high disabled, open drain)
; HIRH=1 (HIRQ_ pin - handshake enabled)
; HRSP=1 (HRST pin - active low)
; HDRP=0 (HDRQ pin - active high)
; HTAP=1 (HTA pin - active low)
; HDSM=0 (Double-strobe pin mode enabled)
bra <UB3_CONT ; continue
;========================================================================
; This is the routine that loads from the SCI.
; MD:MC:MB:MA=x010 - external SCI clock
SCILD
movep #$0302,X:M_SCR ; Configure SCI Control Reg
movep #$C000,X:M_SCCR ; Configure SCI Clock Control Reg
movep #7,X:M_PCRE ; Configure SCLK, TXD and RXD
do #6,_LOOP6 ; get 3 bytes for number of
; program words and 3 bytes
; for the starting address
jclr #2,X:M_SSR,* ; Wait for RDRF to go high
movep X:M_SRXL,A2 ; Put 8 bits in A2
jclr #1,X:M_SSR,* ; Wait for TDRE to go high
movep A2,X:M_STXL ; echo the received byte
asr #8,a,a
_LOOP6
move a1,r0 ; starting address for load
move a1,r1 ; save starting address
do a0,_LOOP7 ; Receive program words
do #3,_LOOP8
jclr #2,X:M_SSR,* ; Wait for RDRF to go high
movep X:M_SRXL,A2 ; Put 8 bits in A2
jclr #1,X:M_SSR,* ; Wait for TDRE to go high
movep a2,X:M_STXL ; echo the received byte
asr #8,a,a
_LOOP8
movem a1,p:(r0)+ ; Store 24-bit result in P mem.
nop ; movem cannot be at LA.
_LOOP7
bra <FINISH ; Boot from SCI done
;========================================================================
; This is the routine that loads from external EPROM.
; MD:MC:MB:MA=x001
EPROMLD
move #BOOT,r2 ; r2 = address of external EPROM
movep #AARV,X:M_AAR1 ; aar1 configured for SRAM types of access