From mboxrd@z Thu Jan 1 00:00:00 1970 From: tony@atomide.com (Tony Lindgren) Date: Wed, 6 Sep 2017 11:22:48 -0700 Subject: [PATCH v2 00/29] implement KASLR for ARM In-Reply-To: References: <20170906162222.GI5024@atomide.com> <20170906163100.GJ5024@atomide.com> <20170906171253.GK5024@atomide.com> <20170906175308.GL5024@atomide.com> Message-ID: <20170906182247.GM5024@atomide.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org * Ard Biesheuvel [170906 11:05]: > On 6 September 2017 at 18:53, Tony Lindgren wrote: > > * Ard Biesheuvel [170906 10:31]: > >> On 6 September 2017 at 18:12, Tony Lindgren wrote: > >> > Kernel image @ 0x81000000 [ 0x000000 - 0x426300 ] > >> > ## Flattened Device Tree blob at 84000000 > >> > Booting using the fdt blob at 0x84000000 > >> > Loading Device Tree to 86feb000, end 86fff2d5 ... OK > >> > > >> > Starting kernel ... > >> > > >> > regions.image_size:00e00000 > >> > regions.pa_start:80000000 > >> > regions.pa_end:87200000 > >> > regions.zimage_start:81000000 > >> > regions.zimage_size:00437320 > >> > regions.dtb_start:86feb000 > >> > regions.dtb_size:00012000 > >> > regions.initrd_start:00000000 > >> > regions.initrd_size:00000000 > >> > num:00000028 > >> > num:00000025 > >> > *kaslr_offset:05e00000 > >> > Uncompressing Linux... done, booting the kernel. > >> > Warning: Neither atags nor dtb found > >> > >> OK, so in this case, 80000000 + 00e00000 + 05e00000 == 86c00000, which > >> is still below the DTB, but apparently, it has corrupted it anyway. > >> > >> I will try to figure out what's going on here. > > > > Do you need to have kaslr_offset beyond the uncompressed > > kernel size maybe? > > > > I think the problem is in the rounding of region.pa_start. > > I have now changed this to > > regions.image_size = image_base % SZ_128M + round_up(image_size, SZ_2M); > regions.pa_start = round_down(image_base, SZ_128M); ... > I have updated my arm-kaslr-v3 with all the fixes from this discussion > (and more) Looks like your branch at commit 5221c86ad2e7 still failed after boot attempt #4, see below. Is that the right commit? Regards, Tony 8< ----------------- regions.zimage_size:004379e8 regions.dtb_start:86feb000 regions.dtb_size:00012000 regions.initrd_start:00000000 regions.initrd_size:00000000 count:00000028 num:00000025 *kaslr_offset:05e00000 Uncompressing Linux... done, booting the kernel. Warning: Neither atags nor dtb found