We have designed a board base on the ls1021aiot (SPF28203B.pdf Oct 2015). Our board uses the LS1020a (LS1020AXE7HNB) instead of the ls1021a and uses a memory reduced in size (MT41K256M16HA-107). We have been working with it for the last year without any problem on the DDR3 memory side. It is my understanding that the LS1020 supports ECC and the IOT support ECC by using a third DRR3 chip.
Lately, we have been trying to get ECC to work without success. The system crashes in u-boot get_ram_size() as soon as DDR is accessed. The D_INIT value remains at 1, indicating the initialisation did not complete properly. When error checking is enabled with ECC enabled, the system reports an ACE (Automatic calibration error) which can be seen in the log (failedCalibrationlog2.txt).
The software modifications were inspired by AN3538. Logs are attached to demonstrate register current (and previous content) at key places in the initialisation process. 2 logs were provided: 1- without ECC (successfulCalibrationLog2.txt) , 2- with ECC enabled (failedCalibrationlog2.txt). Also attached are the RCW and DDR controller registers content for our working software (no ECC).
Hardware wise, the schematics for our design and for the IOT are the same the third ddr3 chip.
It is not clear what calibration does and what I can do to find the related problem?
Are there other items, I could check in relation to the described problem?