mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	* properly format/comment all patches * merge debloat patches * merge Kconfig patches * merge swconfig patches * merge hotplug patches * drop 200-fix_localversion.patch - upstream * drop 222-arm_zimage_none.patch - unused * drop 252-mv_cesa_depends.patch - no longer required * drop 410-mtd-move-forward-declaration-of-struct-mtd_info.patch - unused * drop 661-fq_codel_keep_dropped_stats.patch - outdated * drop 702-phy_add_aneg_done_function.patch - upstream * drop 840-rtc7301.patch - unused * drop 841-rtc_pt7c4338.patch - upstream * drop 921-use_preinit_as_init.patch - unused * drop spio-gpio-old and gpio-mmc - unused Signed-off-by: John Crispin <john@phrozen.org>
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 690e7f2cad271595ff68cace1c45fb10779bde41 Mon Sep 17 00:00:00 2001
 | |
| From: Alexey Brodkin <abrodkin@synopsys.com>
 | |
| Date: Fri, 15 Jan 2016 00:34:01 +0300
 | |
| Subject: [PATCH 2/2] openwrt: arc - add OWRTDTB section
 | |
| 
 | |
| This change allows OpenWRT to patch resulting kernel binary with
 | |
| external .dtb.
 | |
| 
 | |
| That allows us to re-use exactky the same vmlinux on different boards
 | |
| given its ARC core configurations match (at least cache line sizes etc).
 | |
| 
 | |
| ""patch-dtb" searches for ASCII "OWRTDTB:" strign and copies external
 | |
| .dtb right after it, keeping the string in place.
 | |
| 
 | |
| Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
 | |
| ---
 | |
|  arch/arc/kernel/head.S        | 10 ++++++++++
 | |
|  arch/arc/kernel/setup.c       |  4 +++-
 | |
|  arch/arc/kernel/vmlinux.lds.S | 13 +++++++++++++
 | |
|  3 files changed, 26 insertions(+), 1 deletion(-)
 | |
| 
 | |
| --- a/arch/arc/kernel/head.S
 | |
| +++ b/arch/arc/kernel/head.S
 | |
| @@ -49,6 +49,16 @@
 | |
|  1:
 | |
|  .endm
 | |
|  
 | |
| +; Here "patch-dtb" will embed external .dtb
 | |
| +; Note "patch-dtb" searches for ASCII "OWRTDTB:" string
 | |
| +; and pastes .dtb right after it, hense the string precedes
 | |
| +; __image_dtb symbol.
 | |
| +	.section .owrt, "aw",@progbits
 | |
| +	.ascii	"OWRTDTB:"
 | |
| +ENTRY(__image_dtb)
 | |
| +	.fill	0x4000
 | |
| +END(__image_dtb)
 | |
| +
 | |
|  	.section .init.text, "ax",@progbits
 | |
|  
 | |
|  ;----------------------------------------------------------------
 | |
| --- a/arch/arc/kernel/setup.c
 | |
| +++ b/arch/arc/kernel/setup.c
 | |
| @@ -366,6 +366,8 @@ static inline int is_kernel(unsigned lon
 | |
|  	return 0;
 | |
|  }
 | |
|  
 | |
| +extern struct boot_param_header __image_dtb;
 | |
| +
 | |
|  void __init setup_arch(char **cmdline_p)
 | |
|  {
 | |
|  #ifdef CONFIG_ARC_UBOOT_SUPPORT
 | |
| @@ -379,7 +381,7 @@ void __init setup_arch(char **cmdline_p)
 | |
|  #endif
 | |
|  	{
 | |
|  		/* No, so try the embedded one */
 | |
| -		machine_desc = setup_machine_fdt(__dtb_start);
 | |
| +		machine_desc = setup_machine_fdt(&__image_dtb);
 | |
|  		if (!machine_desc)
 | |
|  			panic("Embedded DT invalid\n");
 | |
|  
 | |
| --- a/arch/arc/kernel/vmlinux.lds.S
 | |
| +++ b/arch/arc/kernel/vmlinux.lds.S
 | |
| @@ -30,6 +30,19 @@ SECTIONS
 | |
|  
 | |
|  	. = CONFIG_LINUX_LINK_BASE;
 | |
|  
 | |
| +	/*
 | |
| +	 * In OpenWRT we want to patch built binary embedding .dtb of choice.
 | |
| +	 * This is implemented with "patch-dtb" utility which searches for
 | |
| +	 * "OWRTDTB:" string in first 16k of image and if it is found
 | |
| +	 * copies .dtb right after mentioned string.
 | |
| +	 *
 | |
| +	 * Note: "OWRTDTB:" won't be overwritten with .dtb, .dtb will follow it.
 | |
| +	 */
 | |
| +	.owrt : {
 | |
| +		*(.owrt)
 | |
| +		. = ALIGN(PAGE_SIZE);
 | |
| +	}
 | |
| +
 | |
|  	_int_vec_base_lds = .;
 | |
|  	.vector : {
 | |
|  		*(.vector)
 |