diff options
Diffstat (limited to 'target/linux/brcm63xx/patches-3.14/366-MIPS-add-support-for-vmlinux.bin-appended-DTB.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-3.14/366-MIPS-add-support-for-vmlinux.bin-appended-DTB.patch | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/target/linux/brcm63xx/patches-3.14/366-MIPS-add-support-for-vmlinux.bin-appended-DTB.patch b/target/linux/brcm63xx/patches-3.14/366-MIPS-add-support-for-vmlinux.bin-appended-DTB.patch deleted file mode 100644 index 344e78b..0000000 --- a/target/linux/brcm63xx/patches-3.14/366-MIPS-add-support-for-vmlinux.bin-appended-DTB.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 318c1fce4aeef298cbb6153416c499c94ad7cda0 Mon Sep 17 00:00:00 2001 -From: Jonas Gorski <jogo@openwrt.org> -Date: Tue, 24 Jun 2014 10:53:15 +0200 -Subject: [PATCH RFC v3] MIPS: add support for vmlinux.bin appended DTB - -Add support for populating initial_boot_params through a dtb -blob appended to raw vmlinux.bin. - -Signed-off-by: Jonas Gorski <jogo@openwrt.org> ---- -Changes RFC v2 -> v3 - -* fixed !smp kernels (TODO: move it to its own patch - -Changes RFC v1 -> v2 - -* changed all occurences of vmlinux to vmlinux.bin -* clarified this applies to the raw vmlinux.bin without decompressor -* s/initial_device_params/initial_boot_params/ - -Initial comments by me still valid: - -Mostly adapted from how ARM is doing it. - -Sent as an RFC PATCH because I am not sure if this is the right way to -it, and whether storing the pointer in initial_boot_params is a good -idea, or a new variable should be introduced. - -The reasoning for initial_boot_params is that there is no common -MIPS interface yet, so the next best thing was using that. This also -has the advantage of keeping the original fw_args intact. - -This patch works for me on bcm63xx, where the bootloader expects -an lzma compressed kernel, so I didn't want to double compress using -the in-kernel compressed kernel support. - -Completely untested on anything except MIPS32 / big endian. - - arch/mips/Kconfig | 18 ++++++++++++++++++ - arch/mips/kernel/head.S | 19 +++++++++++++++++++ - arch/mips/kernel/vmlinux.lds.S | 7 +++++++ - 3 files changed, 43 insertions(+) - ---- a/arch/mips/Kconfig -+++ b/arch/mips/Kconfig -@@ -2519,6 +2519,24 @@ config RAPIDIO - - source "drivers/rapidio/Kconfig" - -+config MIPS_APPENDED_DTB -+ bool "Use appended device tree blob to vmlinux.bin (EXPERIMENTAL)" -+ depends on OF -+ help -+ With this option, the boot code will look for a device tree binary -+ DTB) appended to raw vmlinux.bin (without decompressor). -+ (e.g. cat vmlinux.bin <filename>.dtb > vmlinux_w_dtb). -+ -+ This is meant as a backward compatibility convenience for those -+ systems with a bootloader that can't be upgraded to accommodate -+ the documented boot protocol using a device tree. -+ -+ Beware that there is very little in terms of protection against -+ this option being confused by leftover garbage in memory that might -+ look like a DTB header after a reboot if no actual DTB is appended -+ to vmlinux.bin. Do not leave this option active in a production kernel -+ if you don't intend to always append a DTB. -+ - endmenu - - menu "Executable file formats" ---- a/arch/mips/kernel/head.S -+++ b/arch/mips/kernel/head.S -@@ -139,6 +139,22 @@ NESTED(kernel_entry, 16, sp) # kernel - mtc0 t0, CP0_STATUS - #endif /* CONFIG_MIPS_MT_SMTC */ - -+#ifdef CONFIG_MIPS_APPENDED_DTB -+ PTR_LA t0, __appended_dtb -+ PTR_LI t3, 0 -+ -+#ifdef CONFIG_CPU_BIG_ENDIAN -+ PTR_LI t1, 0xd00dfeed -+#else -+ PTR_LI t1, 0xedfe0dd0 -+#endif -+ LONG_L t2, (t0) -+ bne t1, t2, not_found -+ -+ PTR_LA t3, __appended_dtb -+ -+not_found: -+#endif - PTR_LA t0, __bss_start # clear .bss - LONG_S zero, (t0) - PTR_LA t1, __bss_stop - LONGSIZE -@@ -152,6 +168,10 @@ NESTED(kernel_entry, 16, sp) # kernel - LONG_S a2, fw_arg2 - LONG_S a3, fw_arg3 - -+#ifdef CONFIG_MIPS_APPENDED_DTB -+ LONG_S t3, initial_boot_params -+#endif -+ - MTC0 zero, CP0_CONTEXT # clear context register - PTR_LA $28, init_thread_union - /* Set the SP after an empty pt_regs. */ ---- a/arch/mips/kernel/vmlinux.lds.S -+++ b/arch/mips/kernel/vmlinux.lds.S -@@ -125,8 +125,14 @@ SECTIONS - .exit.data : { - EXIT_DATA - } -- -+#ifdef CONFIG_SMP - PERCPU_SECTION(1 << CONFIG_MIPS_L1_CACHE_SHIFT) -+#endif -+#ifdef CONFIG_MIPS_APPENDED_DTB -+ __appended_dtb = .; -+ /* leave space for appended DTB */ -+ . = . + 0x100000; -+#endif - /* - * Align to 64K in attempt to eliminate holes before the - * .bss..swapper_pg_dir section at the start of .bss. This |