⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zimage.patch

📁 patches for linux-2.6.
💻 PATCH
📖 第 1 页 / 共 3 页
字号:
diff -Naur --exclude=CVS linux-2.6-orig/arch/mips/boot/compressed/au1xxx/head.S linux-2.6-dev/arch/mips/boot/compressed/au1xxx/head.S--- linux-2.6-orig/arch/mips/boot/compressed/au1xxx/head.S	1969-12-31 16:00:00.000000000 -0800+++ linux-2.6-dev/arch/mips/boot/compressed/au1xxx/head.S	2005-01-08 02:28:46.000000000 -0800@@ -0,0 +1,119 @@+/*+ * arch/mips/kernel/head.S+ *+ * 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.+ *+ * Head.S contains the MIPS exception handler and startup code.+ *+ **************************************************************************+ *  9 Nov, 2000.+ *  Added Cache Error exception handler and SBDDP EJTAG debug exception.+ *+ *  Kevin Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com+ *  Copyright (C) 2000 MIPS Technologies, Inc.  All rights reserved.+ **************************************************************************+ */+#include <linux/config.h>+#include <linux/threads.h>++#include <asm/asm.h>+#include <asm/cacheops.h>+#include <asm/mipsregs.h>+#include <asm/cachectl.h>+#include <asm/regdef.h>++#define IndexInvalidate_I       0x00+#define IndexWriteBack_D        0x01++	.set noreorder+	.cprestore+	LEAF(start)+start:+	bal	locate+	nop+locate:+	subu	s8, ra, 8	/* Where we were loaded */+	la	sp, (.stack + 8192)++	move	s0, a0		/* Save boot rom start args */+	move	s1, a1+	move	s2, a2+	move	s3, a3++	la	a0, start	/* Where we were linked to run */++	move	a1, s8+	la	a2, _edata+	subu	t1, a2, a0+	srl	t1, t1, 2++	/* copy text section */+	li	t0, 0+1:	lw	v0, 0(a1)+	nop+	sw	v0, 0(a0)+	xor	t0, t0, v0+	addu	a0, 4+	bne	a2, a0, 1b+	addu	a1, 4++	/* Clear BSS */+	la	a0, _edata+	la	a2, _end+2:	sw	zero, 0(a0)+	bne	a2, a0, 2b+	addu	a0, 4++	/* push the D-Cache and invalidate I-Cache */+	li	k0, 0x80000000  # start address+	li	k1, 0x80004000  # end address (16KB I-Cache)+	subu	k1, 128++1:+	.set mips3+	cache	IndexWriteBack_D, 0(k0)+	cache	IndexWriteBack_D, 32(k0)+	cache	IndexWriteBack_D, 64(k0)+	cache	IndexWriteBack_D, 96(k0)+	cache	IndexInvalidate_I, 0(k0)+	cache	IndexInvalidate_I, 32(k0)+	cache	IndexInvalidate_I, 64(k0)+	cache	IndexInvalidate_I, 96(k0)+	.set mips0++	bne	k0, k1, 1b+	addu	k0, k0, 128+	/* done */++	move	a0, s8		     /* load address */+	move	a1, t1               /* length in words */+	move	a2, t0               /* checksum */+	move	a3, sp++	la	ra, 1f+	la	k0, decompress_kernel+	jr	k0+	nop+1:++	move	a0, s0+	move	a1, s1+	move	a2, s2+	move	a3, s3+	li	k0, KERNEL_ENTRY+	jr	k0+	nop+3:+	b 3b+	END(start)+	.comm .stack,4096*2,4diff -Naur --exclude=CVS linux-2.6-orig/arch/mips/boot/compressed/au1xxx/Makefile linux-2.6-dev/arch/mips/boot/compressed/au1xxx/Makefile--- linux-2.6-orig/arch/mips/boot/compressed/au1xxx/Makefile	1969-12-31 16:00:00.000000000 -0800+++ linux-2.6-dev/arch/mips/boot/compressed/au1xxx/Makefile	2005-01-08 02:28:03.000000000 -0800@@ -0,0 +1,110 @@+# arch/mips/boot/compressed/au1xxx/Makefile+# +# Makefile for AMD Alchemy Semiconductor Au1x based boards.+# All of the boot loader code was derived from the ppc+# boot code.+#+# Copyright 2001,2002 MontaVista Software Inc.+#+# Author: Mark A. Greer+#	  mgreer@mvista.com+#+# Copyright 2004 Embedded Alley Solutions, Inc+# Ported and modified for mips 2.6 support by +# Pete Popov <ppopov@embeddedalley.com>+#+# This program is free software; you can redistribute  it and/or modify it+# under  the terms of  the GNU General  Public License as published by the+# Free Software Foundation;  either version 2 of the  License, or (at your+# option) any later version.++boot		:= arch/mips/boot+compressed	:= $(boot)/compressed+utils		:= $(compressed)/utils+lib		:= $(compressed)/lib+images		:= $(compressed)/images+common		:= $(compressed)/common++#########################################################################+# START BOARD SPECIFIC VARIABLES++# These two variables control where the zImage is stored+# in flash and loaded in memory.  It only controls how the srec+# file is generated, the code is the same.+RAM_RUN_ADDR = 0x81000000++ifdef CONFIG_MIPS_XXS1500+FLASH_LOAD_ADDR = 0xBF000000+else+FLASH_LOAD_ADDR = 0xBFD00000+endif++# These two variables specify the free ram region+# that can be used for temporary malloc area+AVAIL_RAM_START=0x80500000+AVAIL_RAM_END=0x80900000++# This one must match the LOADADDR in arch/mips/Makefile!+LOADADDR=0x80100000++# WARNING WARNING WARNING+# Note that with a LOADADDR of 0x80100000 and AVAIL_RAM_START of+# 0x80500000, the max decompressed kernel size can be 4MB. Else we+# start overwriting ourselve. You can change these vars as needed;+# it would be much better if we just figured everything out on the fly.++# END BOARD SPECIFIC VARIABLES+#########################################################################++OBJECTS	:= $(obj)/head.o $(common)/misc-common.o $(common)/misc-simple.o \+	$(common)/au1k_uart.o+LIBS := $(lib)/lib.a++ENTRY := $(utils)/entry+OFFSET := $(utils)/offset+SIZE := $(utils)/size++LD_ARGS := -T $(compressed)/ld.script -Ttext $(RAM_RUN_ADDR) -Bstatic++ifdef CONFIG_CPU_LITTLE_ENDIAN+OBJCOPY_ARGS = -O elf32-tradlittlemips+else+OBJCOPY_ARGS = -O elf32-tradbigmips+endif++$(obj)/head.o: $(obj)/head.S $(TOPDIR)/vmlinux+	$(CC) $(AFLAGS) \+	-DKERNEL_ENTRY=$(shell sh $(ENTRY) $(NM) $(TOPDIR)/vmlinux ) \+	-c -o $*.o $<++$(common)/misc-simple.o:+	$(CC) $(CFLAGS) -DINITRD_OFFSET=0 -DINITRD_SIZE=0 -DZIMAGE_OFFSET=0 \+		-DAVAIL_RAM_START=$(AVAIL_RAM_START) \+		-DAVAIL_RAM_END=$(AVAIL_RAM_END) \+		-DLOADADDR=$(LOADADDR) \+		-DZIMAGE_SIZE=0 -c -o $@ $*.c++$(obj)/zvmlinux: $(OBJECTS) $(LIBS) $(srctree)/$(compressed)/ld.script $(images)/vmlinux.gz $(common)/dummy.o+	$(OBJCOPY) \+		--add-section=.image=$(images)/vmlinux.gz \+		--set-section-flags=.image=contents,alloc,load,readonly,data \+		$(common)/dummy.o $(common)/image.o+	$(LD) $(LD_ARGS) -o $@ $(OBJECTS) $(common)/image.o $(LIBS)+	$(OBJCOPY) $(OBJCOPY_ARGS) $@ $@ -R __kcrctab -R __ksymtab_strings \+	-R .comment -R .stab -R .stabstr -R .initrd -R .sysmap++# Here we manipulate the image in order to get it the necessary+# srecord file we need.+zImage: $(obj)/zvmlinux+	mv $(obj)/zvmlinux $(images)/zImage+	$(OBJCOPY) -O srec $(images)/zImage $(images)/zImage.srec+	$(OBJCOPY) -O binary $(images)/zImage $(images)/zImage.bin++zImage.flash: zImage+	( \+	flash=${FLASH_LOAD_ADDR} ; \+	ram=${RAM_RUN_ADDR} ; \+	adjust=$$[ $$flash - $$ram ] ; \+	$(OBJCOPY) -O srec --adjust-vma `printf '0x%08x' $$adjust` \+		$(images)/zImage $(images)/zImage.flash.srec ; \+	)diff -Naur --exclude=CVS linux-2.6-orig/arch/mips/boot/compressed/common/au1k_uart.c linux-2.6-dev/arch/mips/boot/compressed/common/au1k_uart.c--- linux-2.6-orig/arch/mips/boot/compressed/common/au1k_uart.c	1969-12-31 16:00:00.000000000 -0800+++ linux-2.6-dev/arch/mips/boot/compressed/common/au1k_uart.c	2004-12-12 22:42:29.000000000 -0800@@ -0,0 +1,103 @@+/*+ * BRIEF MODULE DESCRIPTION+ *	Simple Au1000 uart routines.+ *+ * Copyright 2001 MontaVista Software Inc.+ * Author: MontaVista Software, Inc.+ *		ppopov@mvista.com or source@mvista.com+ *+ *  This program is free software; you can redistribute	 it and/or modify it+ *  under  the terms of	 the GNU General  Public License as published by the+ *  Free Software Foundation;  either version 2 of the	License, or (at your+ *  option) any later version.+ *+ *  THIS  SOFTWARE  IS PROVIDED	  ``AS	IS'' AND   ANY	EXPRESS OR IMPLIED+ *  WARRANTIES,	  INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF+ *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN+ *  NO	EVENT  SHALL   THE AUTHOR  BE	 LIABLE FOR ANY	  DIRECT, INDIRECT,+ *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT+ *  NOT LIMITED	  TO, PROCUREMENT OF  SUBSTITUTE GOODS	OR SERVICES; LOSS OF+ *  USE, DATA,	OR PROFITS; OR	BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON+ *  ANY THEORY OF LIABILITY, WHETHER IN	 CONTRACT, STRICT LIABILITY, OR TORT+ *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF+ *  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+ *+ *  You should have received a copy of the  GNU General Public License along+ *  with this program; if not, write  to the Free Software Foundation, Inc.,+ *  675 Mass Ave, Cambridge, MA 02139, USA.+ */+#include <linux/config.h>+#include <asm/io.h>+#include <asm/mach-au1x00/au1000.h>+#include "ns16550.h"++typedef         unsigned char uint8;+typedef         unsigned int  uint32;++#define         UART16550_BAUD_2400             2400+#define         UART16550_BAUD_4800             4800+#define         UART16550_BAUD_9600             9600+#define         UART16550_BAUD_19200            19200+#define         UART16550_BAUD_38400            38400+#define         UART16550_BAUD_57600            57600+#define         UART16550_BAUD_115200           115200++#define         UART16550_PARITY_NONE           0+#define         UART16550_PARITY_ODD            0x08+#define         UART16550_PARITY_EVEN           0x18+#define         UART16550_PARITY_MARK           0x28+#define         UART16550_PARITY_SPACE          0x38++#define         UART16550_DATA_5BIT             0x0+#define         UART16550_DATA_6BIT             0x1+#define         UART16550_DATA_7BIT             0x2+#define         UART16550_DATA_8BIT             0x3++#define         UART16550_STOP_1BIT             0x0+#define         UART16550_STOP_2BIT             0x4++/* It would be nice if we had a better way to do this.+ * It could be a variable defined in one of the board specific files.+ */+#undef UART_BASE+#ifdef CONFIG_COGENT_CSB250+#define UART_BASE UART3_ADDR+#else+#define UART_BASE UART0_ADDR+#endif++/* memory-mapped read/write of the port */+#define UART16550_READ(y)    (au_readl(UART_BASE + y) & 0xff)+#define UART16550_WRITE(y,z) (au_writel(z&0xff, UART_BASE + y))++/*+ * We use uart 0, which is already initialized by+ * yamon. + */+volatile struct NS16550 *+serial_init(int chan)+{+	volatile struct NS16550 *com_port;+	com_port = (struct NS16550 *) UART_BASE;+	return (com_port);+}++void+serial_putc(volatile struct NS16550 *com_port, unsigned char c)+{+	while ((UART16550_READ(UART_LSR)&0x40) == 0);+	UART16550_WRITE(UART_TX, c);+}++unsigned char+serial_getc(volatile struct NS16550 *com_port)+{+	while((UART16550_READ(UART_LSR) & 0x1) == 0);+	return UART16550_READ(UART_RX);+}++int+serial_tstc(volatile struct NS16550 *com_port)+{+	return((UART16550_READ(UART_LSR) & LSR_DR) != 0);+}diff -Naur --exclude=CVS linux-2.6-orig/arch/mips/boot/compressed/common/dummy.c linux-2.6-dev/arch/mips/boot/compressed/common/dummy.c--- linux-2.6-orig/arch/mips/boot/compressed/common/dummy.c	1969-12-31 16:00:00.000000000 -0800+++ linux-2.6-dev/arch/mips/boot/compressed/common/dummy.c	2004-12-12 22:42:29.000000000 -0800@@ -0,0 +1,4 @@+int main(void)+{+	return 0;+}diff -Naur --exclude=CVS linux-2.6-orig/arch/mips/boot/compressed/common/Makefile linux-2.6-dev/arch/mips/boot/compressed/common/Makefile--- linux-2.6-orig/arch/mips/boot/compressed/common/Makefile	1969-12-31 16:00:00.000000000 -0800+++ linux-2.6-dev/arch/mips/boot/compressed/common/Makefile	2004-12-12 23:43:43.000000000 -0800@@ -0,0 +1,14 @@+#+# arch/mips/boot/compressed/common/Makefile+#+# 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.+#+# Tom Rini	January 2001+#+# Pete Popov, 2004+#++lib-y		:= misc-common.o no_initrd.o dummy.o+lib-$(CONFIG_SOC_AU1X00)	+= au1k_uart.odiff -Naur --exclude=CVS linux-2.6-orig/arch/mips/boot/compressed/common/misc-common.c linux-2.6-dev/arch/mips/boot/compressed/common/misc-common.c--- linux-2.6-orig/arch/mips/boot/compressed/common/misc-common.c	1969-12-31 16:00:00.000000000 -0800+++ linux-2.6-dev/arch/mips/boot/compressed/common/misc-common.c	2004-12-15 01:00:03.000000000 -0800@@ -0,0 +1,434 @@+/*+ * arch/mips/boot/compressed/common/misc-common.c+ * + * Misc. bootloader code (almost) all platforms can use+ *+ * Author: Johnnie Peters <jpeters@mvista.com>+ * Editor: Tom Rini <trini@mvista.com>+ *+ * Derived from arch/ppc/boot/prep/misc.c+ *+ * Ported by Pete Popov <ppopov@mvista.com> to+ * support mips board(s).  I also got rid of the vga console+ * code.+ *+ * Copyright 2000-2001 MontaVista Software Inc.+ *+ * Ported to MIPS 2.6 by Pete Popov, <ppopov@embeddedalley.com>+ *+ * This program is free software; you can redistribute  it and/or modify it+ * under  the terms of  the GNU General  Public License as published by the+ * Free Software Foundation;  either version 2 of the  License, or (at your+ * option) any later version.+ *+ * THIS  SOFTWARE  IS PROVIDED   ``AS  IS'' AND   ANY  EXPRESS OR   IMPLIED+ * WARRANTIES,   INCLUDING, BUT NOT  LIMITED  TO, THE IMPLIED WARRANTIES OF+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN+ * NO  EVENT  SHALL   THE AUTHOR  BE    LIABLE FOR ANY   DIRECT,  INDIRECT,+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT+ * NOT LIMITED   TO, PROCUREMENT OF  SUBSTITUTE GOODS  OR SERVICES; LOSS OF+ * USE, DATA,  OR PROFITS; OR  BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON+ * ANY THEORY OF LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.+ *+ * You should have received a copy of the  GNU General Public License along+ * with this program; if not, write  to the Free Software Foundation, Inc.,+ * 675 Mass Ave, Cambridge, MA 02139, USA.+ */++#include <stdarg.h>	/* for va_ bits */+#include <linux/config.h>+#include <linux/string.h>+#include <linux/zlib.h>++extern char *avail_ram;+extern char *end_avail;+extern char _end[];++void puts(const char *);+void putc(const char c);+void puthex(unsigned long val);+void _bcopy(char *src, char *dst, int len);+void gunzip(void *, int, unsigned char *, int *);+static int _cvt(unsigned long val, char *buf, long radix, char *digits);++void _vprintk(void(*)(const char), const char *, va_list ap);++struct NS16550 *com_port;++int serial_tstc(volatile struct NS16550 *);+unsigned char serial_getc(volatile struct NS16550 *);+void serial_putc(volatile struct NS16550 *, unsigned char);++void pause(void)+{+	puts("pause\n");+}++void exit(void)+{+	puts("exit\n");+	while(1); +}++int tstc(void)+{+	return (serial_tstc(com_port));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -