Motorola DSP56301 User Manual
Page 304

A
-8
DSP56301 User’s Manual
bra <UB1HOSTLD ; MD:MC:MB:MA=1111, UB single strobe
;========================================================================
; This is the routine that loads from the Host Interface in UB (UNIVERSAL) mode,
; with single-strob pin configuration (RD/WR,DS).
; MD:MC:MB:MA=x111 - Host UB
UB1HOSTLD
bset #13,x1 ; HDSM=1 (Double-strob pin mode disabled)
;========================================================================
; This is the routine that loads from the Host Interface in UB (UNIVERSAL) mode,
; with double-strobe pin configuration (RD,WR).
; MD:MC:MB:MA=x110 - Host UB
UB2HOSTLD
movep x1,X:M_DCTR ; Configure HI32 in UB mode Single or Double strobe
do #6,_LOOP0 ; read # of words and start address
jclr #2,X:M_DSR,* ; Wait for SRRQ to go high (i.e. data ready)
movep X:M_DRXR,a2 ;
asr #8,a,a ; Shift 8 bit data into A1
_LOOP0 ;
move a1,r0 ; starting address for load
move a1,r1 ; save it in r1
; a0 holds the number of words
; Download P memory through UB
do a0,_LOOP1 ; Load instruction words
do #3,_LOOP2 ; for each byte
_LBLA
jset #2,X:M_DSR,_LBLB ; Wait for SRRQ to go high (i.e. data ready)
jclr #3,X:M_DSR,_LBLA ; If HF0=1, stop loading new data.
enddo ; Must terminate the do loop
bra <TERMINATE ; Terminate loop (enddo) and finish
_LBLB
movep X:M_DRXR,a2 ; Store 16-bit data in accumulator
asr #8,a,a ; Shift 8 bit data into A1
_LOOP2 ; and go get another 24-bit word.
movem a1,p:(r0)+ ; Store 24-bit data in P mem
nop ; movem cannot be at LA.
_LOOP1 ; and go get another 24-bit word.
bra <FINISH ; finish bootstrap
;========================================================================
; This routine loads from the Host Interface in ISA (UNIVERSAL) mode.
; MD:MC:MB:MA=x101 - Host ISA
; 16-bit wide dual-strobe Universal Bus mode (e.g to support
; ISA (slave) glue less connection).
; Using self configuration mode, the base address in CBMA is written with
; $2f which corresponds to an ISA HTXR address of $2fe (Serial Port 2 Modem
; Status read only register).
ISAHOSTLD
move #$5a,b ; b1=$5a0000
movep b1,X:M_DCTR ; Configure HI32 as Self-Config
movep #$00002f,X:M_DPMC ; write to DPMC
rep #4
movep X0,X:M_DPAR ; write to DPAR (CSTR+CCMR,CCCR+CRID,CLAT,CBMA)
; completing 32 bit write