beautypg.com

Motorola DSP56301 User Manual

Page 307

background image

DSP56301 User’s Manual

A

-11

bra

;========================================================================

; 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

;========================================================================

; 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

;========================================================================

; 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