
On 9/8/09 2:49 AM, Stefan Roese wrote:
On Tuesday 08 September 2009 11:19:41 Felix Radensky wrote:
Not exactly related to the subject under discussion, but I thought I'd mention it.
I had problems with ecc_init() on a custom 460EX board with soldered DDR2. Right after ecc_init() u-boot was crashing on PLB access. I've modified the code to use program_ecc_addr() instead of ecc_init(), and problem was solved. I was wandering why use two different ECC initialization routines for SPD and soldered cases, when program_ecc_addr() can do the job in both cases, while ecc_init() apparently has issues ?
Most likely historic reasons. I added Grant Erickson to Cc, IIRC he added/tested this ecc_init() code. Maybe he can shed some more light into this.
But from looking at it, it seems to me that we should get rid of one of those routines. program_ecc_addr() seems more generic to me. Patches welcome. ;)
Thanks.
Cheers, Stefan
Felix:
Stefan is correct. IIRC, bits of the various 4xx/44x RAM initialization functions were evolving in parallel at that time. I believe I used ecc_init at the time because it was more fitting to the soldered DDR2 405EXr board I was using vs. program_ecc_addr which was more tuned to 440, SPD socketed RAM.
Looking at the code today, that no longer appears to be the case. So, I agree with Stefan. For the present, these implementations should be merged and unified and any duplicate code eliminated.
Regards,
Grant