- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For anyone who has issues with ECC memory and scrubbing in the U-Boot preloader:
There are some issues with the sdram.c file that ships with the u-boot that comes with Quartus. In general, the buffer sizes for the pl330 DMA initialization are too small for RAM sizes >1 GiB. We are running a Cyclone V with 2 GiB of RAM with ECC, leading to a 40-bit wide interface with two chip selects. In order to fix the buffer error, it is necessary to choose a buffer size that is dynamically calculated using preloader parameters, or by hard-coding the size in to the preloader. After some testing (see attached), I was able to work out that pl330_buf1 needed to be 2208 words deep. It is also necessary to change the variable used in sdram_scrub_boot_region by removing the "buf" variable and implementing this change on line 1534 in sdram.c: - pl330.buf_size = sizeof(buf); - pl330.buf = buf; + pl330.buf_size = sizeof(pl330_buf1); + pl330.buf = pl330_buf1; If anyone has any questions about this, just post or send me a note.
160406_SDRAM_Scrubbing_Test.txt
(Virus scan in progress ...)
Link Copied
0 Replies

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page