I've been trying to boot the ADSP21489 from an ARM9 processor(EP9302) as the master through the SPI port. I was hoping my DSP programs could be part of the source files for the ARM9 platform and downloaded to the SHARC as running boot. I've been able to setup the SPI link by which ordinary data transfer between the SHARC(slave) and the ARM9(master) works perfectly in either core or DMA mode. But I failed to boot the SHARC as an SPI slave. My test program was really simple: if the boot succeed then one of the LEDs on board would keep blinking.
Attentions had been made to many points:
(0) The SPI configuration for the ARM9 master was: SPHA=1 and SPOL=1; Seamless data transfer, 29kbps baudrate.
(1) Since the ARM9 processor only supports 16-bit word and MSB first format in SPI transfer, I generated the boot loader in 16-bit word and bit-reverse fromat.
(2) In the "load" tag of the buid options, "SPI slave", "include" format were chosen.
(3) The boot config pins were configured as "boot as SPI slave" by BOOTCFG=0.
(4) The transfer started after the RESETOUT_ pin became deasserted.
With such a slow baudrate, I sent the loader file in one shot because the zero initialization issues mentioned in EE177 appnote would not be a problem here. A single 32-bit word transfer would take 32bit*400MHz/30kHz = 441379cycles, which might be enough for the init process. I don't know whether I understand it right or not, should I stick strictly to EE177 or did I miss any thing else? Any clue is appreciated.