Originally posted by
robertferanec- Hmm, so, the test is running directly from DRAM or Cache or internal CPU RAM?
Yes the test code is loaded into DRAM and both data/instruction CACHEs are enabled. The reason why I went this way is to replicate how the final product sw will behave. I did some testing from internal SRAM but this won't be running in the same condition as the final sw.
DDR tests will then be testing the available space (we have 512MB of DDR3L) usually the test code will reside in the first quarter and the rest will be continually tested
Originally posted by
robertferanecAre you using exactly same memory chips? This still may be some problem with register settings.
Yes the same chips (MT41K128M16JT-125:K) used in the reference design, the first spin we had to use the extended temp (XIT) variant of that chip and thought that it might be doing that problem but in the next spin we used exactly the same chips and still have the problems appearing. The tuning procedure is automatic by the driver; I tried running some different values but that didn't help either. The calibration is fairly obscure process and I don't really understand how it's done. It's not like a specific tool that runs and find out the optimal values, I guess that's due to the fact that the CPU doesn't support write leveling or ODT.
Originally posted by
robertferanecOr, what I have seen - some boards were failing, because of heat. Is CPU temperature/board temperature higher for V2?
So in ambient testing the failure rate will be around 20-30% but in the chamber, this will increase to 50-60%. The test profile is 5-55C and this should be a problem for neither the CPU nor the DRAM, emmc chips. The high limit was dictated by the batteries op limit of 60C.
The same test profile was used when testing both versions of that board (V1 & V2)
Originally posted by
robertferanecPS: I tried memtest86, but I ended up with using stressapptest (
https://github.com/stressapptest/stressapptest ) ... if the board was wrong, stressaptest was able to fail the boards within 1 hour even if memtest86 was showing everything ok or only crashed occasionally.
Our test suite is not as extensive as memtest86 or stressaptest, but still employs the same mechanism of tests (bit fading, hammering etc). the problem is that porting these libraries to a bare-metal app is a very time-consuming project. Also our test suite could be utilised as a production test as it can test all interfaces running from DRAM. The issue here is that we have a test code that fail on V2 and doesnt on V1 in the chamber/ambient testing. The first question is why we have these failures given that the ddr interface is exactly the same.
I did some checks on DDR_VREF it seems that the ripple vp-p on this rail when the board is performing DDR tests is very limited ~10mv. However, when the mmc test start I could see peaks getting bigger. Although the supply for mmc interface is from LDO on the original PMIC used in the ref design. I don't know if that can lead me somewhere