Unverified Commit 67eebf72 authored by Marcin Nowakowski's avatar Marcin Nowakowski Committed by Paul Burton
Browse files

generic: fix appended dtb support



Appended DTB support is mostly intended to be used on legacy systems,
but it is a valid feature that can be enabled for generic platform,
which currently doesn't support it - if selected, the appended DTB will
be ignored by the platform startup code.

During kernel startup, the appended DTB's location is stored in
fw_passed_dtb if the init code finds what appears to be a valid DTB.
Otherwise (if a0 == -2), a1 is stored in fw_passed_dtb, so either way it
will always point to either a user-passed DTB or built-in DTB.

Signed-off-by: default avatarMarcin Nowakowski <marcin.nowakowski@fungible.com>
Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
Cc: linux-mips@vger.kernel.org
parent e6308b6d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -43,14 +43,14 @@ void __init *plat_get_fdt(void)
		/* Already set up */
		return (void *)fdt;

	if ((fw_arg0 == -2) && !fdt_check_header((void *)fw_arg1)) {
	if ((fw_arg0 == -2) && !fdt_check_header((void *)fw_passed_dtb)) {
		/*
		 * We booted using the UHI boot protocol, so we have been
		 * provided with the appropriate device tree for the board.
		 * Make use of it & search for any machine struct based upon
		 * the root compatible string.
		 */
		fdt = (void *)fw_arg1;
		fdt = (void *)fw_passed_dtb;

		for_each_mips_machine(check_mach) {
			match = mips_machine_is_compatible(check_mach, fdt);