Re: [PATCH v5 13/15] MIPS: JZ4770: Workaround for corrupted DMA transfers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux