From mboxrd@z Thu Jan 1 00:00:00 1970 From: msalter@redhat.com (Mark Salter) Date: Mon, 20 Oct 2014 14:49:54 -0400 Subject: [PATCH] efi: efi-stub: notify on DTB absence In-Reply-To: <1413829782-12891-1-git-send-email-mark.rutland@arm.com> References: <1413829782-12891-1-git-send-email-mark.rutland@arm.com> Message-ID: <1413830994.2985.55.camel@deneb.redhat.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Mon, 2014-10-20 at 19:29 +0100, Mark Rutland wrote: > In the absence of an DTB configuration table, the EFI stub will happily > continue attempting to boot a kernel, despite the fact that this kernel > may not function without a description of the hardware. In this case, as > with a typo'd "dtb=" option (e.g. "dbt=") or many other possible > failures, the only output seen by the user will be the rather terse > output from the EFI stub: > > EFI stub: Booting Linux Kernel... > > To aid those attempting to debug such failures, this patch adds a notice > when no DTB is found, making the output more helpful: > > EFI stub: Booting Linux Kernel... > EFI stub: Generating empty DTB > > Similarly, a positive acknowledgement is added when a user-specified DTB > is in use: > > EFI stub: Booting Linux Kernel... > EFI stub: Using DTB from command line Should we also include a positive acknowledgement of loader-provided DTB? This could be UEFI itself or grub devicetree command or grub generated minimal tree. > > Signed-off-by: Mark Rutland > Acked-by: Leif Lindholm > Cc: Ard Biesheuvel > Cc: Mark Salter > Cc: Matt Fleming > Cc: Roy Franz > --- > drivers/firmware/efi/libstub/arm-stub.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/firmware/efi/libstub/arm-stub.c b/drivers/firmware/efi/libstub/arm-stub.c > index 480339b..10abf24 100644 > --- a/drivers/firmware/efi/libstub/arm-stub.c > +++ b/drivers/firmware/efi/libstub/arm-stub.c > @@ -243,9 +243,16 @@ unsigned long __init efi_entry(void *handle, efi_system_table_t *sys_table, > goto fail_free_cmdline; > } > } > - if (!fdt_addr) > + > + if (fdt_addr) { > + pr_efi(sys_table, "Using DTB from command line\n"); > + } else { > /* Look for a device tree configuration table entry. */ > fdt_addr = (uintptr_t)get_fdt(sys_table); > + } > + > + if (!fdt_addr) > + pr_efi(sys_table, "Generating empty DTB\n"); > > status = handle_cmdline_files(sys_table, image, cmdline_ptr, > "initrd=", dram_base + SZ_512M,