we are currently having some issues with booting from Flash on our custom design XS1-L4A board (relevant parts of the schematics are attached, all ports are used, I just removed anything that's not related to the problem).
The symptoms are, that the XMOS doesn't try to boot from SPI-Flash _most_ of the time, meaning 1 out of 20 boots (via complete power cycle) work, the others show no activity on the SPI lines to the flash. The XMOS seems to catch an exception in ROM code in those situations:
Code: Select all
$ xrun --dump-state-no-xexrun: Program received signal ET_ECALL, Application exception. 0xffffc174 in ?? () ***** Active Cores ***** * 1 tile[0] core[0] 0xffffc174 in ?? () Thread 1 (tile[0] core[0]): ***** Call Stack ***** #0 0xffffc174 in ?? () ***** Disassembly ***** 0xffffc174: ecallt (1r) r10 0xffffc176: setc (ru6) res[r0], 0x0 * 0xffffc178: setc (ru6) res[r1], 0x0 * 0xffffc17a: setc (ru6) res[r2], 0x0 * 0xffffc17c: bu (lu6) -0x53 ***** Registers ***** r0 0x200100 2097408 r1 0x100200 1049088 r2 0x100300 1049344 r3 0x2 2 r4 0xffffffff -1 r5 0x0 0 r6 0x0 0 r7 0x0 0 r8 0x10000 65536 r9 0xedb88320 -306674912 r10 0x9add2096 -1696784234 r11 0x0 0 cp 0x0 0 dp 0xffffc344 -15548 sp 0x0 0 lr 0xffffc164 -16028 pc 0xffffc174 -16012 sr 0x51 81 spc 0xffffc174 -16012 ssr 0x0 0 et 0x8 8 ed 0x0 0 sed 0x0 0 kep 0xffffc300 -15616 ksp 0xffffc300 -15616
Restarting the NCP1521 1V (U10) supply while the rest of the system stays powered by shortly pulling the EN to ground does sometimes work.
It seems _not_ to work when the GND level is applied and released cleanly from the EN pin.
On the other hand, it does seem to work when there are some glitches on the 1V output, because (one or more spikes down, GND level is applied via hand, and therefore not debounced).
The original design doesn't use the first RESET circuit (left U11) and was basically the same as on the various devkits, we added it to play with different hold-off times for the 1V supply. This didn't work, infact if we configured the left NCP303... to assert it's output for 0.5 seconds we never managed to boot the XMOS again.
All power levels and the switch-on timing look fine on the scope.
We tried:
- To pull the MODE 2+3 pins high with additional pull-ups (no effect)
- Use 10 ms up to 500 ms resets for both U11 (shorter timings worked more ofter, but that's probably caused by the power-on bounces)
- Power-On without the first U11, the 1V supply is enabled when 3V3 is ready. (no effect)
- Manually playing around with the RST_N, holding RST_N down manually and then releasing it when everything is stable had no effect. Asserting RST_N in the faulty state had no effect.
- Connecting the XTAG-2 to the debug connector had no effect in itself. But the XTAG-2 was always able to reset the device, reflash it or run a program via JTAG when it didn't start correctly.
We are currently pretty much out of ideas of what to try next. Any input would be appreciated!
Is there any more info on POR reset timing requirements. Are there any restrictions besides the "VDDIO must reach 3.3V before VDD reaches 0.4V" for the supply voltages? Is there a complete timing diagram for the 3.3V, 1V, RST_N, TRST_N, MODEx lines for a successful POR?
Thanks in advance
Björn