lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 17 Feb 2020 11:50:04 +0100 From: Matthias Brugger <matthias.bgg@...il.com> To: LABBE Corentin <clabbe@...libre.com>, James Morse <james.morse@....com> Cc: nsaenzjulienne@...e.de, linux-kernel@...r.kernel.org, u-boot@...ts.denx.de, bcm-kernel-feedback-list@...adcom.com, linux-rpi-kernel@...ts.infradead.org, linux-arm-kernel@...ts.infradead.org Subject: Re: RPI4: fail too boot with an initrd On 17/02/2020 11:37, LABBE Corentin wrote: > On Fri, Feb 14, 2020 at 06:15:27PM +0000, James Morse wrote: >> Hi Corentin, >> >> On 14/02/2020 13:27, LABBE Corentin wrote: >>> Since the inclusion of the "enable network support in RPi4 config" serie on uboot, I >>> have started to work on adding the rpi4 in kernelCI. >>> But I fail to succeed in using a kernel/dtb/ramdisk downloaded via tftp. >>> >>> Using booti I hit: >>> [ 0.000000] Linux version 5.6.0-rc1-next-20200212 (clabbe@...ld2-bionic-1804) (gcc version 7.4.1 20181213 [linaro-7.4-2019.02 revision 56ec6f6b99cc167ff0c2f8e1a2eed33b1edc85d4] (Linaro GCC 7.4-2019.02)) #66 SMP PREEMPT Wed Feb 12 10:14:20 UTC 2020 >>> [ 0.000000] Machine model: Raspberry Pi 4 Model B >>> [ 0.000000] earlycon: uart0 at MMIO32 0x00000000fe215040 (options '') >>> [ 0.000000] printk: bootconsole [uart0] enabled >>> [ 0.000000] efi: Getting EFI parameters from FDT: >>> [ 0.000000] efi: UEFI not found. >> >> So no EFI, >> >>> [ 0.000000] OF: reserved mem: failed to allocate memory for node 'linux,cma' >> >> Out of memory. >> >>> [ 0.000000] cma: Failed to reserve 32 MiB >>> [ 0.000000] Kernel panic - not syncing: Failed to allocate page table page >> >> Out of memory... >> >>> [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.6.0-rc1-next-20200212 #66 >>> [ 0.000000] Hardware name: Raspberry Pi 4 Model B (DT) >>> [ 0.000000] Call trace: >>> [ 0.000000] dump_backtrace+0x0/0x1a0 >>> [ 0.000000] show_stack+0x14/0x20 >>> [ 0.000000] dump_stack+0xbc/0x104 >>> [ 0.000000] panic+0x16c/0x37c >>> [ 0.000000] early_pgtable_alloc+0x30/0xa0 >> >> ... really early! >> >>> [ 0.000000] __create_pgd_mapping+0x36c/0x588 >>> [ 0.000000] map_kernel_segment+0x70/0xa4 >>> [ 0.000000] paging_init+0xf4/0x528 >>> [ 0.000000] setup_arch+0x250/0x5d8 >>> [ 0.000000] start_kernel+0x90/0x6d8 >>> >>> >>> Since the same kernel boot with bootefi and that bootefi lack ramdisk address, >> >> Booting with EFI will cause linux to use the EFI memory map. >> >> Does your DT have a memory node? (or does it expect EFI to provide the information) >> >> >>> I tried to add the address in the dtb via: >>> fdt addr 0x02400000; fdt resize; fdt set /chosen linux,initrd-start 0x02700000; fdt set /chosen linux,initrd-end 0x10000000; bootefi 0x00080000 0x02400000 >>> But with that, I get: >>> initrd not fully accessible via the linear mapping -- please check your bootloader ... >> >> So this one is an EFI boot, but you can't find where to put the initramfs such that the >> kernel agrees its in memory. >> >> If you boot with 'efi=debug', linux will print the EFI memory map. Could you compare that >> to where U-Boot thinks memory is? >> >> (it sounds like your DT memory node is missing, and your EFI memory map is surprisingly small) > > Hello > > Thanks for your advices. > > In the dtb of mainline linux: > /* Will be filled by the bootloader */ > memory@0 { > device_type = "memory"; > reg = <0 0 0>; > }; > > In uboot I have: > static struct mm_region bcm2711_mem_map[] = { > { > .virt = 0x00000000UL, > .phys = 0x00000000UL, > .size = 0xfe000000UL, > .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | > PTE_BLOCK_INNER_SHARE > }, { > .virt = 0xfc000000UL, > .phys = 0xfc000000UL, > .size = 0x03800000UL, > .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | > PTE_BLOCK_NON_SHARE | > PTE_BLOCK_PXN | PTE_BLOCK_UXN > }, { > /* List terminator */ > 0, > } > }; > But I dont know if uboot use that for filling the memory node. No it doesn't. U-Boot uses the DT from the firmware and passes this to the kernel. But it seems you pass instead your own device-tree to the kernel, so you will need to update the memory node to show the available memory on you board. Regards, Matthias > > > Booting the rpi4 with efi=debug give: > EFI stub: Booting Linux Kernel... > EFI stub: EFI_RNG_PROTOCOL unavailable, no randomness supplied > EFI stub: Using DTB from configuration table > EFI stub: Exiting boot services and installing virtual address map... > [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083] > [ 0.000000] Linux version 5.6.0-rc1-next-20200214 (clabbe@...ld2-bionic-1804) (gcc version 7.4.1 20181213 [linaro-7.4-2019.02 revision 56ec6f6b99cc167ff0c2f8e1a2eed33b1edc85d4] (Linaro GCC 7.4-2019.02)) #70 SMP PREEMPT Fri Feb 14 10:54:54 UTC 2020 > [ 0.000000] Machine model: Raspberry Pi 4 Model B > [ 0.000000] earlycon: uart0 at MMIO32 0x00000000fe215040 (options '') > [ 0.000000] printk: bootconsole [uart0] enabled > [ 0.000000] efi: Getting EFI parameters from FDT: > [ 0.000000] efi: System Table: 0x000000003b365590 > [ 0.000000] efi: MemMap Address: 0x0000000038484040 > [ 0.000000] efi: MemMap Size: 0x00000410 > [ 0.000000] efi: MemMap Desc. Size: 0x00000028 > [ 0.000000] efi: MemMap Desc. Version: 0x00000001 > [ 0.000000] efi: EFI v2.80 by Das U-Boot > [ 0.000000] efi: SMBIOS=0x39f46000 MEMRESERVE=0x38487040 > [ 0.000000] efi: Processing EFI memory map: > [ 0.000000] efi: 0x000000000000-0x000000000fff [Reserved | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000000001000-0x00000007ffff [Conventional Memory| | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000000080000-0x000001b3ffff [Loader Data | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000001b40000-0x000007efffff [Conventional Memory| | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000007f00000-0x000007f08fff [Boot Data | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000007f09000-0x0000381fffff [Conventional Memory| | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000038200000-0x0000383fffff [Loader Data | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000038400000-0x00003846ffff [Conventional Memory| | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000038470000-0x00003847ffff [Loader Data | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000038480000-0x000038483fff [Conventional Memory| | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000038484000-0x000038487fff [Loader Data | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000038488000-0x000039f40fff [Loader Code | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000039f41000-0x000039f44fff [Reserved | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000039f45000-0x000039f45fff [Boot Data | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000039f46000-0x000039f46fff [Runtime Data |RUN| | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000039f47000-0x000039f48fff [Boot Data | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000039f49000-0x000039f4cfff [Reserved | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000039f4d000-0x000039f4efff [Boot Data | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000039f4f000-0x000039f52fff [Reserved | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000039f53000-0x000039f53fff [Runtime Data |RUN| | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000039f54000-0x000039f54fff [Reserved | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000039f55000-0x00003b35ffff [Loader Data | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x00003b360000-0x00003b36ffff [Runtime Code |RUN| | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x00003b370000-0x00003b3fffff [Loader Data | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x000040000000-0x0000fbffffff [Boot Data | | | | | | | | | |WB| | | ] > [ 0.000000] efi: 0x0000fe100000-0x0000fe100fff [Memory Mapped I/O |RUN| | | | | | | | | | | | ] > [ 0.000000] ------------[ cut here ]------------ > [ 0.000000] initrd not fully accessible via the linear mapping -- please check your bootloader ... > > Regards > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@...ts.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel >
Powered by blists - more mailing lists