mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	 1b93b3c3e9
			
		
	
	
		1b93b3c3e9
		
	
	
	
	
		
			
			This patch helps to generate smaller kernel images for linux-MIPS, Here is the effect when using lzma: $ ls -sh vmlinux 7.1M vmlinux $ ls -sh vmlinuz 1.5M vmlinuz Have tested the 32bit kernel on Qemu/Malta and 64bit kernel on FuLoong Mini PC. both of them work well. and also, tested by Alexander Clouter on an AR7 based Linksys WAG54Gv2, and by Manuel Lauss on an Alchemy board. This -v2 version incorporate the feedback from Ralf, and add the following changes: 1. add .ecoff, .bin, .erec format support 2. only enable it and the debug source code for the machines we tested 3. a dozen of fixups and cleanups and if you want to enable it for your board, please try to select SYS_SUPPORTS_ZBOOT for it, and if the board have an 16550 compatible uart, you can select SYS_SUPPORTS_ZBOOT_UART16550 directly. and then sending the relative patches to Ralf. Tested-by: Manuel Lauss <manuel.lauss@googlemail.com> Tested-by: Alexander Clouter <alex@digriz.org.uk> Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*
 | |
|  * This file is subject to the terms and conditions of the GNU General Public
 | |
|  * License.  See the file "COPYING" in the main directory of this archive
 | |
|  * for more details.
 | |
|  *
 | |
|  * Copyright (C) 1994, 1995 Waldorf Electronics
 | |
|  * Written by Ralf Baechle and Andreas Busse
 | |
|  * Copyright (C) 1995 - 1999 Ralf Baechle
 | |
|  * Copyright (C) 1996 Paul M. Antoine
 | |
|  * Modified for DECStation and hence R3000 support by Paul M. Antoine
 | |
|  * Further modifications by David S. Miller and Harald Koerfgen
 | |
|  * Copyright (C) 1999 Silicon Graphics, Inc.
 | |
|  */
 | |
| 
 | |
| #include <asm/asm.h>
 | |
| #include <asm/regdef.h>
 | |
| 
 | |
| 	.set noreorder
 | |
| 	.cprestore
 | |
| 	LEAF(start)
 | |
| start:
 | |
| 	/* Save boot rom start args */
 | |
| 	move	s0, a0
 | |
| 	move	s1, a1
 | |
| 	move	s2, a2
 | |
| 	move	s3, a3
 | |
| 
 | |
| 	/* Clear BSS */
 | |
| 	PTR_LA	a0, _edata
 | |
| 	PTR_LA	a2, _end
 | |
| 1:	sw	zero, 0(a0)
 | |
| 	bne	a2, a0, 1b
 | |
| 	 addiu	a0, a0, 4
 | |
| 
 | |
| 	PTR_LA	a0, (.heap)          /* heap address */
 | |
| 	PTR_LA  sp, (.stack + 8192)  /* stack address */
 | |
| 
 | |
| 	PTR_LA	ra, 2f
 | |
| 	PTR_LA	k0, decompress_kernel
 | |
| 	jr	k0
 | |
| 	 nop
 | |
| 2:
 | |
| 	move	a0, s0
 | |
| 	move	a1, s1
 | |
| 	move	a2, s2
 | |
| 	move	a3, s3
 | |
| 	PTR_LI	k0, KERNEL_ENTRY
 | |
| 	jr	k0
 | |
| 	 nop
 | |
| 3:
 | |
| 	b	3b
 | |
| 	 nop
 | |
| 	END(start)
 | |
| 
 | |
| 	.comm .heap,BOOT_HEAP_SIZE,4
 | |
| 	.comm .stack,4096*2,4
 |