On Wed, 7 Sep 2022, Andreas Schwab wrote: > On Sep 07 2022, Geert Uytterhoeven wrote: > > > So if the initrd is stored at the end of motherboard RAM: > > > > initrd: 0783283d - 08000000 > > > > The code > > > > memcmp(data, BOOTCONFIG_MAGIC, BOOTCONFIG_MAGIC_LEN) > > > > works. When the initrd is stored at the end of WarpEngine RAM: > > > > initrd: 0f7f81c2 - 10000000 > > > > it crashes, probably because it is not mapped. > > > > According to > > > > Initmem setup node 0 [mem 0x000000000a000000-0x000000000fffffff] > > > > the memory should be mapped, shouldn't it? > > But in the success case, the initrd is located _before_ the node 0 > region: > > [ 0.000000] Initmem setup node 0 [mem > 0x0000000008000000-0x000000000fffffff] > [ 0.000000] initrd: 0783283d - 08000000 >
So we see an ATC fault when reading from an address that's mapped but no fault when the initrd is located in "unused" memory. I find that surprising. Yet the fault address is initrd_end - BOOTCONFIG_MAGIC_LEN. Anyway, it appears Geert is right and I was wrong about the memory chunk at 0x7800000:0x800000 being the cause of the fault. But it does look like the use of that chunk may have prevented the fault in the success case.