We have designed and built our own twin IMX6UL application PCBs.
Using a bare-metal application of ours to deal with all non-volatile programming on this board, we have programmed serial NOR flash memory with a 2nd stage boot loader, main application software(ThreadX based), data sets, etc.
All of this works fine when boot is controlled Internal mode by GPIO pin settings on our breadboard PCBs. The iMX6ULs boot as expected, reading from ecSPI4 (CCS0), handing off to 2nd stage boot loader, loading main app and launching... both processors.
Our release PCB design does not have the GPIO pin connects, so we must boot by eFuse. WE have "dress rehearsed" this on our breadboards with discouraging resutls: Of four iMX6UL's that had been booting successfully from GPIO pin override, but then had the eFuse's set:
1) One of the four iMX6's will boot properly. The software loads in through the ecSPI4 channel just fine.
2) Three of the four IMX6's fail to boot. Chip select asserts but no communications take place to the NOR flash.
When we inspect by JTAG the eFUSE configuration for all four processors after power up (by JTAG connect), we see what we programmed (attached):
OCOTP_CFG4: 0x0B000003 = BootCFG4 : 0 : BootCFG2 : BootCFG1 for using ecSPI4 with CCS 0 to Serial ROM
OCOTP_CFG5: 0x00000010 = BT_FUSE_SEL (at bit 4)
Note: Don't know if related: On the three that fail to boot in eFUSE, corrupted values of fuses appear in the shadow registers when we do re-load-to-Shadow operations. This is not the case on the one processor that is successfully booting. The corruption often had bit7 of each eFuse byte reporting as "1". However, after power up when the ROM boot loader loads the shadow registers, inspection over JTAG always reports the values we expect (exactly what we believe the fuses should be).
Can you confirm we have proper values set the _CFG4 and _CFG5 eFuse words?
Why is this problem "marginal"... works on one, but not the other three iMX6UL?
Again, before burning these eFuses, all four processors were successfully booting from serial NOR flash using GPIO override.
Thanks for any help you can provide