Hi,
Hi,

[...]

 +/*
+ * We have seen MMC DMA transfers read corrupted data from SDRAM when a burst + * interval ends at physical address 0x10000000. To avoid this problem, we
 + * remove the final page of low memory from the memory map.
 + */
 +void __init jz4770_reserve_unsafe_for_dma(void)
 +{
 +       int i;
 +
 +       for (i = 0; i < boot_mem_map.nr_map; i++) {
+ struct boot_mem_map_entry *entry = boot_mem_map.map + i;
 +
 +               if (entry->type != BOOT_MEM_RAM)
 +                       continue;
 +
 +               if (entry->addr + entry->size != 0x10000000)
 +                       continue;
 +
 +               entry->size -= PAGE_SIZE;
 +               break;
 +       }
 +}
 +

Just a wild idea (probably bad too). Changing the memory node in the
device tree to skip this physical address would work I think. What is
your opinion about that?

I guess it would work as well, but I don't think this fix should be in devicetree.

-Paul

Reply via email to