Our end goal is to have U-Boot on our boards and that in-turn will load our non-Linux images on the rest of the cores.
To start with, I'm experimenting with the EZ-Board. My setup is this:
- ADZS-SC584 EZ-BOARD 1.4, BOM REV 2.4, with all jumpers and switches to the default position
- ICE-1000
- Windows 10
- CCES 2.9.4
I'm using ADI's U-Boot, lnxdsp-u-boot and more specifically 09225f2bf4e9466c8bdd055af96370912f75c9b5 commit id.
I've built U-Boot for the board in a Ubuntu 20.04 box (WSL2):
$ make sc584-ezkit_defconfig $ CROSS_COMPILE=/opt/analog/cces/2.9.4/ARM/arm-none-eabi/bin/arm-none-eabi- make
I then transferred the generated files to my Windows so that I can proceed with programming U-Boot on SPI flash.
I've followed the "Installing U-boot" guide, and I was successful in "Flash U-Boot for the First Time" section. I managed to get the U-Boot run on the board.
However, we really want to make the procedure shorter and program Das U-Boot directly on Flash via OpenOCD or any other command line tool.
I've tried with OpenOCD but I failed:
$ /c/Analog\ Devices/CrossCore\ Embedded\ Studio\ 2.9.4/ARM/openocd/bin/openocd.exe -s /c/Analog\ Devices/CrossCore\ Embedded\ Studio\ 2.9.4/ARM/openocd/share/openocd/scripts/ -f interface/ice1000.cfg -f board/adspsc584_ezbrd.cfg -c "program ../u-boot-builds/u-boot-sc584-ezkit verify reset exit"
Open On-Chip Debugger (Analog Devices CCES 2.9.0 OpenOCD 0.9.0-ga44a178) 0.9.0 Licensed under GNU GPL v2 Report bugs to <processor.tools.support@analog.com> adapter speed: 1000 kHz Info : transports supported by the debug adapter: "jtag", "swd" Info : auto-select transport "jtag" trst_only separate trst_push_pull adspsc58x_init Info : ICE-1000 firmware version is 1.0.2 Info : clock speed 1000 kHz Info : JTAG tap: adspsc584.adjc tap/device found: 0x228080cb (mfg: 0x065, part: 0x2808, ver: 0x2) Info : JTAG tap: adspsc584.dap enabled Info : adspsc584.dap: hardware has 3 breakpoints, 2 watchpoints Info : adspsc584.dap: but you can only set 1 watchpoint Info : ttbcr 0ttbr0 0ttbr1 0 Info : adspsc584.dap rev 1, partnum c05, arch f, variant 0, implementor 41 Info : number of cache level 1 Info : adspsc584.dap cluster 0 core 0 mono core Info : JTAG tap: adspsc584.adjc tap/device found: 0x228080cb (mfg: 0x065, part: 0x2808, ver: 0x2) Info : JTAG tap: adspsc584.dap enabled Info : adspsc584.dap: hardware has 3 breakpoints, 2 watchpoints Info : adspsc584.dap: but you can only set 1 watchpoint Boot Mode 1 start system reset ... system reset asserted background polling: off TAP: adspsc584.dap (enabled) target state: running target state: halted target halted in Thumb state due to debug-request, current mode: Supervisor cpsr: 0x800001f3 pc: 0x00004884 MMU: disabled, D-Cache: disabled, I-Cache: disabled system reset done REG_RCU0_STAT 0x00002128 HWRST : 0 (0x00) SSRST : 0 (0x00) SWRST : 1 (0x01) SWRST RSTOUT : 1 (0x01) RSTOUT BMODE : 1 (0x01) TESTMODE : 0 (0x00) STESTMODE : 1 (0x01) STESTMODE OTPLOCK : 0 (0x00) STESTROUTINE : 0 (0x00) ADDRERR : 0 (0x00) LWERR : 0 (0x00) RSTOUTERR : 0 (0x00) REG_RCU0_MSG 0x00460600 BOOTERROR : 0 (0x000) C0IDLE : 0 (0x00) C1IDLE : 1 (0x01) Core 1 is IDLE C2IDLE : 1 (0x01) Core 2 is IDLE C0TASK : 0 (0x00) C1TASK : 0 (0x00) C2TASK : 0 (0x00) C0L1INIT : 0 (0x00) C1L1INIT : 1 (0x01) Core 1 L1 initialized C2L1INIT : 1 (0x01) Core 2 L1 initialized L2INIT : 1 (0x01) L2 initialized HALTONAPP : 0 (0x00) HALTONINIT : 0 (0x00) HALTONCALL : 0 (0x00) HALTONERR : 0 (0x00) CALLAPP : 0 (0x00) CALLINIT : 0 (0x00) CALLBACK : 0 (0x00) CALLERR : 0 (0x00) target state: halted target halted in Thumb state due to debug-request, current mode: Supervisor cpsr: 0x800001f3 pc: 0x00004884 MMU: disabled, D-Cache: disabled, I-Cache: disabled ** Programming Started ** ** Programming Failed ** shutdown command invoked embedded:startup.tcl:490: Error: in procedure 'flash' called at file "embedded:startup.tcl", line 490
I've tried with CLDP but I failed again:
$ /c/Analog\ Devices/CrossCore\ Embedded\ Studio\ 2.9.4/cldp -proc ADSP-SC584 -core 0 -emu 1000 -driver /c/Analog\ Devices/ADSP-SC5xx_EZ-KIT_Lite-Rel2.0.2/ADSP-SC5xx_EZ-KIT/Examples/Device_Programmer/sc584/sharc/sc584_w25q128fv_dpia_Core0/w25q128fv_dpia_SC584_SHARC_Core0 -cmd prog -erase affected -format bin -file ../u-boot-builds/u-boot-sc584-ezkit.ldr
Target Emulation Debug Target Platform ADSP-SC584 via ICE-1000 Processor ADSP-SC584 Core 0 Driver C:/Analog Devices/ADSP-SC5xx_EZ-KIT_Lite-Rel2.0.2/ADSP-SC5xx_EZ-KIT/Examples/Device_Programmer/sc584/sharc/sc584_w25q128fv_dpia_Core0/w25q128fv_dpia_SC584_SHARC_Core0 Error: [TpsdkServer] Failed to load file: C:/Analog Devices/ADSP-SC5xx_EZ-KIT_Lite-Rel2.0.2/ADSP-SC5xx_EZ-KIT/Examples/Device_Programmer/sc584/sharc/sc584_w25q128fv_dpia_Core0/w25q128fv_dpia_SC584_SHARC_Core0 [Error: Failed to connect to target., Code=0x80047344]
Do you have any ideas on why I cannot program U-Boot directly on SPI Flash with any of the above tools?