Other Parts Discussed in Thread: AM3352
Hello,
We have a board with AM3352 which boots from SPI Flash. At some point we started noticing the following two issues, but it is difficult to say if it was there all the time because we have been in prototyping phase.
(1) Running programs in emulator (Blackhawk XDS560USB v2) control got more challenging. It took the following sequence to run a program:
- Power up the board
- Connect emulator (from CCS)
- Disconnect emulator (from CCS)
- Re-connect the emulator again
and only now you could make all the necessary clocks run (e.g. the SPI clock)
and
(2) The SPI-based (2nd phase) bootloader started crashing at WDT1 disable instructions. It turned out to be the case that we are missing the clocks again.
I have been debugging both failure patterns and it turns out that for some reason, the ROM boot code cannot make the WDT1 setup and PLL etc. configuration work. The processor however runs all the way through the ROM code, which is being indicated by the fact that we do end up running our own SPI based boot code.
Looking for anything that would be similar to this in E2E, I found a discussion about EMU pins. AM335x TRM states that EMU0/1 pins determine whether the the device goes to WIR (wait in reset) mode or not. There are also bit combinations which, if applied to EMU0&1, make the processor go to undefined state. When emulator is attached, we have 0 and 1 for EMU0 and 1, respectively. This means the processor goes to WIR state which is expected. Errata/Advisory 1.0.36 reads that EMU pins are only latched at falling edge of WARMRST – which is an OUTPUT (and not rising edge of the reset input) . We see these WARMRST falling edges when connecting with with emulator. However, when booting up from SPI Flash, we see no life at WARMRST. EMU0&1 are pulled up and both are logical high when no emulator is attached so if they are latched we know they get the correct values. However, The errata would suggest that a WARMRST falling edge is needed in order to latch correct emu values to processor, and we do not have that.
There ae cases at E2E where someone left EMU01 pins either floating or pulled them down and they have issues starting the processors. Our case is different in that way that we do have the EMU pins configured correctly – we just do not have the WARMRST which might be needed to latch it. Theoretically, we might have a situation that some emulation-time latching for EMU pin values was still there, or some other way not having specifically latched the EMU pins, could now cause the instability we were seeing in the BL.
Any thoughts?