50 lines
1.8 KiB
Diff
50 lines
1.8 KiB
Diff
|
From 15f37e1588920e010f20b53f04af94e91b8ee714 Mon Sep 17 00:00:00 2001
|
||
|
From: Jonas Gorski <jogo@openwrt.org>
|
||
|
Date: Mon, 20 Jun 2016 11:27:37 +0200
|
||
|
Subject: [PATCH] MIPS: store the appended dtb address in a variable
|
||
|
|
||
|
Instead of rewriting the arguments to match the UHI spec, store the
|
||
|
address of a appended or UHI supplied dtb in fw_supplied_dtb.
|
||
|
|
||
|
That way the original bootloader arugments are kept intact while still
|
||
|
making the use of an appended dtb invisible for mach code.
|
||
|
|
||
|
Mach code can still find out if it is an appended dtb by comparing
|
||
|
fw_arg1 with fw_supplied_dtb.
|
||
|
|
||
|
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||
|
Cc: Kevin Cernekee <cernekee@gmail.com>
|
||
|
Cc: Florian Fainelli <f.fainelli@gmail.com>
|
||
|
Cc: John Crispin <john@phrozen.org>
|
||
|
Cc: Paul Burton <paul.burton@imgtec.com>
|
||
|
Cc: James Hogan <james.hogan@imgtec.com>
|
||
|
Cc: Alban Bedel <albeu@free.fr>
|
||
|
Cc: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
|
||
|
Cc: Antony Pavlov <antonynpavlov@gmail.com>
|
||
|
Cc: linux-mips@linux-mips.org
|
||
|
Patchwork: https://patchwork.linux-mips.org/patch/13699/
|
||
|
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
||
|
---
|
||
|
arch/mips/ath79/setup.c | 4 ++--
|
||
|
arch/mips/bmips/setup.c | 4 ++--
|
||
|
arch/mips/include/asm/bootinfo.h | 4 ++++
|
||
|
arch/mips/kernel/head.S | 21 ++++++++++++++-------
|
||
|
arch/mips/kernel/setup.c | 4 ++++
|
||
|
arch/mips/lantiq/prom.c | 4 ++--
|
||
|
arch/mips/pic32/pic32mzda/init.c | 4 ++--
|
||
|
7 files changed, 30 insertions(+), 15 deletions(-)
|
||
|
|
||
|
--- a/arch/mips/lantiq/prom.c
|
||
|
+++ b/arch/mips/lantiq/prom.c
|
||
|
@@ -74,8 +74,8 @@ void __init plat_mem_setup(void)
|
||
|
|
||
|
set_io_port_base((unsigned long) KSEG1);
|
||
|
|
||
|
- if (fw_arg0 == -2) /* UHI interface */
|
||
|
- dtb = (void *)fw_arg1;
|
||
|
+ if (fw_passed_dtb) /* UHI interface */
|
||
|
+ dtb = (void *)fw_passed_dtb;
|
||
|
else if (__dtb_start != __dtb_end)
|
||
|
dtb = (void *)__dtb_start;
|
||
|
else
|