Newbie question: I noticed while writing some test automation with QEMU and U-Boot that the Malta kernel appears to ignore any DTB provided by the bootloader, in favour of using the one embedded into the kernel image. Is there a reason behind this, or is it just not a thing that's been changed since the board was converted to use device tree? I patched my own kernel to check $a1 as the "mips generic" kernel does, and it seems to work, but maybe I'm missing something? I did have to rebuild U-Boot with different CONFIG options to make use of it (I don't khow what real hardware Malta uses for a bootloader) so perhaps it has limited use. If the change is acceptable in principle I'll tidy it up and submit a patch with all the proper procedure. Opinions welcome -dan diff --git a/arch/mips/mti-malta/malta-setup.c b/arch/mips/mti-malta/malta-setup.c index 21cb3ac1237b..52e731f9b4e2 100644 --- a/arch/mips/mti-malta/malta-setup.c +++ b/arch/mips/mti-malta/malta-setup.c @@ -192,7 +192,9 @@ static void __init bonito_quirks_setup(void) void __init *plat_get_fdt(void) { - return (void *)__dtb_start; + return (fw_arg0 == -2) ? + (void *) (KSEG1ADDR(fw_arg1)) : + (void *) __dtb_start; } void __init plat_mem_setup(void)