Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[MIPS] Malta: Handle byteswapping hardare bug in big endian mode. The SOC-it system controller running in big endian mode might forget byteswapping when DMAing to the last word of physical memory. Fixed by ignoring the last page of memory. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

authored by

Elizabeth Oldham and committed by
Ralf Baechle
73499682 427abfa2

+9
+9
arch/mips/mips-boards/generic/memory.c
··· 76 76 memsize = simple_strtol(memsize_str, NULL, 0); 77 77 } 78 78 } 79 + 80 + #ifdef CONFIG_CPU_BIG_ENDIAN 81 + /* 82 + * SOC-it swaps, or perhaps doesn't swap, when DMA'ing the last 83 + * word of physical memory 84 + */ 85 + memsize -= PAGE_SIZE; 86 + #endif 87 + 79 88 memset(mdesc, 0, sizeof(mdesc)); 80 89 81 90 mdesc[0].type = yamon_dontuse;