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

📄 uclinux040408.44b0.patch

📁 44b0x处理器uclinux内核编译补丁
💻 PATCH
📖 第 1 页 / 共 5 页
字号:
-	if (register_framebuffer(&fb_info.gen.info) < 0)-		return -EINVAL;-	printk(KERN_INFO "fb%d: %s frame buffer device\n", GET_FB_IDX(fb_info.gen.info.node),-	       fb_info.gen.info.modename);+	/* fill the disp element */+	disp.screen_base    = fb_info.gen.info.screen_base; /* add -- luhzl */+#ifdef FBCON_HAS_CFB2+	disp.dispsw         = &fbcon_cfb2;  /* add -- luzhl */+#endif+#ifdef FBCON_HAS_CFB4+	disp.dispsw		    = &fbcon_cfb4; /* add -- luzhl */+#endif+#ifdef FBCON_HAS_CFB8+	disp.dispsw         = &fbcon_cfb8;+#endif+	disp.dispsw_data	= NULL; /* add -- luzhl */++	/* This should give a reasonable default video mode */+	fbgen_get_var(&disp.var, -1, &fb_info.gen.info); /* mod -- luzhl */+	fbgen_do_set_var(&disp.var, 1, &fb_info.gen); /* mod -- luzhl */+	fbgen_set_disp(-1, &fb_info.gen); /* mod -- luzhl */+	fbgen_install_cmap(0, &fb_info.gen); /* mod -- luzhl */  	/*********************************************          *  set framebuffer memory to zero@@ -661,11 +697,16 @@ 	/********************************************* 	 * init the lcd controller 	 *********************************************/-	 	s3c44b0xfb_init_lcd_controller(p_lcd); 	 	-+	if (register_framebuffer(&fb_info.gen.info) < 0)+	{ /* mod -- luzhl */+		kfree(fbuf);+		return -EINVAL;+	}+	printk(KERN_INFO "fb%d: %08x: %s frame buffer device\n", GET_FB_IDX(fb_info.gen.info.node), fbuf,+	       fb_info.gen.info.modename);       /* uncomment this if your driver cannot be unloaded */diff -Nur uClinux-dist.040408.original/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/memory.h uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/memory.h--- uClinux-dist.040408.original/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/memory.h	2004-04-08 08:17:11.000000000 +0800+++ uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/memory.h	2005-03-29 09:57:34.109375000 +0800@@ -11,9 +11,11 @@ #define TASK_SIZE	(0x01a00000UL) #define TASK_SIZE_26	TASK_SIZE -#define PHYS_OFFSET     (DRAM_BASE + 2*1024*1024)+//#define PHYS_OFFSET     (DRAM_BASE + 2*1024*1024) //commented by Embest+#define PHYS_OFFSET     (DRAM_BASE) #define PAGE_OFFSET 	(PHYS_OFFSET)-#define END_MEM		(DRAM_BASE + DRAM_SIZE - 2*1024*1024)+//#define END_MEM		(DRAM_BASE + DRAM_SIZE - 2*1024*1024)  //commented by Embest+#define END_MEM			(DRAM_BASE + DRAM_SIZE)  #define __virt_to_phys__is_a_macro #define __virt_to_phys(vpage) ((unsigned long) (vpage))diff -Nur uClinux-dist.040408.original/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/time.h uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/time.h--- uClinux-dist.040408.original/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/time.h	2004-04-08 08:17:11.000000000 +0800+++ uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/time.h	2005-03-29 09:57:34.156250000 +0800@@ -21,14 +21,18 @@ extern void s3c44b0x_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs);  /* TODO: THE, 2003-08-13, do timer setup like in eCos */-#define S3C44B0X_TIMER5_PRESCALER 16+// #define S3C44B0X_TIMER5_PRESCALER 16  	Commented by Embest+#define S3C44B0X_TIMER5_PRESCALER 32  extern __inline__ void setup_timer (void) { 	u_int32_t tmod; 	u_int32_t period;+	__u32 rw_tmp;							// Commented by Embest  	period = (CONFIG_ARM_CLK/S3C44B0X_TIMER5_PRESCALER)/HZ;+	//t1 = CONFIG_ARM_CLK; t2=S3C44B0X_TIMER5_PRESCALER; t3=HZ;+ 	outl(period, S3C44B0X_TCNTB5);  	tmod=0;@@ -36,9 +40,16 @@ 	outl(tmod, S3C44B0X_TCON);  	/* initialize the timer period and prescaler */-	outl((5-1) << 16, S3C44B0X_TCFG0);-	outl( (0x3 <<20), S3C44B0X_TCFG1); /* prescaler */-+//	outl((5-1) << 16, S3C44B0X_TCFG0);		// Commented by Embest+//	outl( (0x3 <<20), S3C44B0X_TCFG1); /* prescaler */+	rw_tmp  = inl(S3C44B0X_TCFG0);			// Added by Embest+	rw_tmp &= ~(0xff<<16);+	rw_tmp |= (16-1)<<16;+	outl(rw_tmp, S3C44B0X_TCFG0);		// prescaler = 1/16+	rw_tmp  = inl(S3C44B0X_TCFG1);+	rw_tmp &= ~(0xf<<20);+	rw_tmp |= 0<<20;+	outl(rw_tmp, S3C44B0X_TCFG1);		// mux = 1/2 	/* 	 * @todo do those really need to be function pointers ? 	 */diff -Nur uClinux-dist.040408.original/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/uncompress.c uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/uncompress.c--- uClinux-dist.040408.original/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/uncompress.c	1970-01-01 08:00:00.000000000 +0800+++ uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/uncompress.c	2005-03-29 09:57:34.234375000 +0800@@ -0,0 +1,32 @@+/*+ * linux/include/asm/arch-s3c44b0/uncompress.c+ */++#include <asm/hardware.h>+#include <asm/io.h>++#define REGL(addr)	(*(volatile unsigned int *)(addr))++static int s3c44b0_decomp_setup()+{+	REGL(S3C44B0X_UBRDIV0) = 0x22;+	REGL(S3C44B0X_ULCON0) = 0x03;+	REGL(S3C44B0X_UCON0) = 0x5;+	REGL(S3C44B0X_UFCON0) = 0x0;+	REGL(S3C44B0X_UMCON0) = 0x0;+}++static int s3c44b0_putc(char c)+{+	while(!(REGL(S3C44B0X_UTRSTAT0)&0x02));+	REGL(S3C44B0X_UTXH0) = c;++	if(c == '\n')+		s3c44b0_putc('\r');+}++static void s3c44b0_puts(const char *s)+{+	while(*s != '\0')+		s3c44b0_putc(*s++);+}diff -Nur uClinux-dist.040408.original/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/uncompress.h uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/uncompress.h--- uClinux-dist.040408.original/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/uncompress.h	1970-01-01 08:00:00.000000000 +0800+++ uClinux-dist/linux-2.4.x/include/asm-armnommu/arch-S3C44B0X/uncompress.h	2005-03-29 09:57:34.250000000 +0800@@ -0,0 +1,50 @@+/*+ * asm/arch/uncompress.c:+ *         Optional routines to aid in debugging the decompression phase+ *         of kernel boot.+ * copyright:+ *         (C) 2001 RidgeRun, Inc. (http://www.ridgerun.com)+ * author: Gordon McNutt <gmcnutt@ridgerun.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 <asm/arch/uncompress.c>+/*+ * This is used by arch/armnommu/boot/compressed/misc.c to write progress info+ * out the serial port so that the user can see debug messages up to the point+ * where the kernel is decompressed. The STANDALONE_DEBUG macro chooses between+ * this and the standard printf. Punt.+ * --gmcnutt+ */+#define puts(s)			s3c44b0_puts(s)++/*+ * Not sure what this is for. Probably an optional watchdog to check if the+ * decompress got hung so we can warn the user. Punt.+ */+#define arch_decomp_wdog()++/*+ * If we need to do some setup prior to decompression (like initializing the+ * UART if we want to use puts() above) then we define it here. Punt.+ */+#define arch_decomp_setup()	s3c44b0_decomp_setup()diff -Nur uClinux-dist.040408.original/linux-2.4.x/include/asm-armnommu/proc/system.h uClinux-dist/linux-2.4.x/include/asm-armnommu/proc/system.h--- uClinux-dist.040408.original/linux-2.4.x/include/asm-armnommu/proc/system.h	2004-04-08 08:17:11.000000000 +0800+++ uClinux-dist/linux-2.4.x/include/asm-armnommu/proc/system.h	2005-03-29 09:57:34.328125000 +0800@@ -42,6 +42,12 @@ #define vectors_base()	(0) #endif +#ifdef CONFIG_BOARD_MBA44+#undef vectors_base()+/* Bootloader use "add pc, pc, #0x0c000000"    Embest*/+#define vectors_base()  (DRAM_BASE+0x08)+#endif+ /*  * A couple of speedups for the ARM  */diff -Nur uClinux-dist.040408.original/user/busybox/Makefile uClinux-dist/user/busybox/Makefile--- uClinux-dist.040408.original/user/busybox/Makefile	2004-04-08 08:23:25.000000000 +0800+++ uClinux-dist/user/busybox/Makefile	2005-03-29 09:57:33.968750000 +0800@@ -476,7 +476,7 @@ 	- rm -f *.gdb *.elf 	- rm -f $(CONFIG_H)- ifneq ($(CONFIG_H),Config.h)-	- rm -f $(CONFIG_H)+#	- rm -f $(CONFIG_H) endif  distclean: clean@@ -536,7 +536,7 @@ 	if [ -f "$$ROMFSDIR/bin/busybox" ]; then \ 		inode=`ls -i $$ROMFSDIR/bin/busybox | awk '{print $$1}'`; \ 		ls -iL "$$ROMFSDIR/bin" | grep "^ *$$inode" | awk '{print $$2}' | \-			sed "s:^:$$ROMFSDIR/bin/:" | env -i xargs rm -f; \+			sed "s:^:$$ROMFSDIR/bin/:" | env -i /bin/xargs /bin/rm -f; \ 	fi 	$(COPYPROG) $(PROG) $(ROMFSDIR)/bin/$(PROG) 	$(SHELL) $< $(TARGETDIR)diff -Nur uClinux-dist.040408.original/user/busybox/busybox.sh uClinux-dist/user/busybox/busybox.sh--- uClinux-dist.040408.original/user/busybox/busybox.sh	2004-04-08 08:23:25.000000000 +0800+++ uClinux-dist/user/busybox/busybox.sh	2005-03-29 09:57:34.000000000 +0800@@ -6,10 +6,10 @@ RAW=` \     $CC -E -dM ${1:-Config.h} | \     sed -n -e '/^.*BB_FEATURE.*$/d;s/^#define.*\<BB_\(.*\)\>/\1.c/gp;' \-    | tr A-Z a-z | sort+    | tr A-Z a-z | sort \ ` test "${RAW}" != "" ||  exit 0 if [ -d "$BB_SRC_DIR" ]; then cd $BB_SRC_DIR; fi # By running $RAW through "ls", we avoid listing # source files that don't exist.-ls $RAW 2>/dev/null | tr '\n' ' '+ls $RAW 2>/dev/null | tr '\n' ' ' | tr -d '\r'diff -Nur uClinux-dist.040408.original/user/sash/sash.c uClinux-dist/user/sash/sash.c--- uClinux-dist.040408.original/user/sash/sash.c	2004-04-08 08:25:33.000000000 +0800+++ uClinux-dist/user/sash/sash.c	2005-03-29 09:57:33.906250000 +0800@@ -415,10 +415,6 @@ 	int 	bg; 	char   *c; -	char last_exit_code[10];--	sprintf(last_exit_code, "%d", exit_code);- 	intflag = FALSE; 	exit_code = 0; @@ -468,9 +464,6 @@ 	} else 		bg = 0; -	/* Set the last exit code */-	setenv("?", last_exit_code, 1);-	 	if ((cmd = expandenvvar(cmd)) == NULL) 		return; @@ -1053,14 +1046,9 @@ 	//;'pa990523 changed from 6... 	char buf[60]; 	-	if ((cp = getenv("PS1")) != NULL) {-		printf("%s", cp);-	}-	else {-		*buf = '\0';-		getcwd(buf, sizeof(buf) - 1);-		printf("%s> ", buf);-	}+	*buf = '\0';+	getcwd(buf, sizeof(buf) - 1);+	printf("%s> ", buf); 	fflush(stdout); }	 diff -Nur uClinux-dist/vendors/Embest/S3CEV40/Makefile uClinux-dist/vendors/Embest.bak/S3CEV40/Makefile--- uClinux-dist/vendors/Embest/S3CEV40/Makefile	1970-01-01 08:00:00.000000000 +0800+++ uClinux-dist/vendors/Embest.bak/S3CEV40/Makefile	2005-03-30 14:28:14.843750000 +0800@@ -0,0 +1,80 @@+#+#	Makefile -- Build instructions for Samsung/4510B+#++ROMFSIMG = $(IMAGEDIR)/romfs.img+IMAGE    = $(IMAGEDIR)/image.bin+ELFIMAGE = $(IMAGEDIR)/image.elf+++ROMFS_DIRS = bin dev etc home lib mnt proc usr var++DEVICES = \+	tty,c,5,0	console,c,5,1	cua0,c,5,64	cua1,c,5,65 \+	\+	mem,c,1,1	kmem,c,1,2	null,c,1,3 \+	zero,c,1,5	random,c,1,8	urandom,c,1,9  \+	\+	ram0,b,1,0	ram1,b,1,1 \+	\+	ptyp0,c,2,0	ptyp1,c,2,1	ptyp2,c,2,2	ptyp3,c,2,3 \+	ptyp4,c,2,4	ptyp5,c,2,5	ptyp6,c,2,6	ptyp7,c,2,7 \+	ptyp8,c,2,8	ptyp9,c,2,9	ptypa,c,2,10	ptypb,c,2,11 \+	ptypc,c,2,12	ptypd,c,2,13	ptype,c,2,14	ptypf,c,2,15 \+	\+	rom0,b,31,0	rom1,b,31,1	rom2,b,31,2	rom3,b,31,3 \+	rom4,b,31,4	rom5,b,31,5	rom6,b,31,6	rom7,b,31,7 \+	rom8,b,31,8	rom9,b,31,9 \+	\+	tty0,c,4,0	tty1,c,4,1	tty2,c,4,2	tty3,c,4,3 \+	ttyS0,c,4,64	ttyS1,c,4,65 \+	\+	ttyp0,c,3,0	ttyp1,c,3,1	ttyp2,c,3,2	ttyp3,c,3,3 \+	ttyp4,c,3,4	ttyp5,c,3,5	ttyp6,c,3,6	ttyp7,c,3,7 \+	ttyp8,c,3,8	ttyp9,c,3,9	ttypa,c,3,10	ttypb,c,3,11 \+	ttypc,c,3,12	ttypd,c,3,13	ttype,c,3,14	ttypf,c,3,15 \+	\+	fb0,c,29,0++clean:++romfs:+	[ -d $(ROMFSDIR)/$$i ] || mkdir -p $(ROMFSDIR)+	for i in $(ROMFS_DIRS); do \+		[ -d $(ROMFSDIR)/$$i ] || mkdir -p $(ROMFSDIR)/$$i; \+	done+	for i in $(DEVICES); do \+		touch $(ROMFSDIR)/dev/@$$i; \+	done+	$(ROMFSINST) -s /var/tmp /tmp+	$(ROMFSINST) -s /bin /sbin+	$(ROMFSINST) /etc/rc+	$(ROMFSINST) /etc/inittab+	$(ROMFSINST) ../../Generic/romfs/etc/services /etc/services+	case "$(LINUXDIR)" in \+	*2.4.*) ;; \+	*) echo "ttyS0:linux:/bin/sh" >> $(ROMFSDIR)/etc/inittab ;; \+	esac+	$(ROMFSINST) /etc/motd+#	$(ROMFSINST) /etc/boa.conf+#	$(ROMFSINST) index.html /home/index.html+	$(ROMFSINST) /etc/passwd+	echo "$(VERSIONSTR) -- " `date` > $(ROMFSDIR)/etc/version++image:+	[ -d $(IMAGEDIR) ] || mkdir -p $(IMAGEDIR)+	genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR)+	arm-elf-ld -r -o $(ROOTDIR)/$(LINUXDIR)/romfs.o -b binary $(ROMFSIMG)+#	$(CROSS_COMPILE)objcopy -O binary --remove-section=.romvec \+			--remove-section=.text --remove-section=.ramvec \+			--remove-section=.init \+			--remove-section=.bss --remove-section=.eram \+			$(ROOTDIR)/$(LINUXDIR)/linux $(IMAGEDIR)/linux.data+#	$(CROSS_COMPILE)objcopy -O binary --remove-section=.ramvec \+			--remove-section=.bss --remove-section=.data \+			--remove-section=.eram \+			--set-section-flags=.romvec=CONTENTS,ALLOC,LOAD,READONLY,CODE \+			$(ROOTDIR)/$(LINUXDIR)/linux $(IMAGEDIR)/linux.text+#	cat $(IMAGEDIR)/linux.text $(IMAGEDIR)/linux.data $(ROMFSIMG) > $(IMAGE)+#	cat $(IMAGEDIR)/linux.text $(IMAGEDIR)/linux.data > linux.bin+	$(MAKEARCH) -C $(ROOTDIR)/$(LINUXDIR) zImagediff -Nur uClinux-dist.040408.original/vendors/Embest/S3CEV40/config.arch uClinux-dist/vendors/Embest/S3CEV40/config.arch--- uClinux-dist.040408.original/vendors/Embest/S3CEV40/config.arch	1970-01-01 08:00:00.000000000 +0800+++ uClinux-dist/vendors/Embest/S3CEV40/config.arch	2005-03-29 09:57:33.703125000 +0800@@ -0,0 +1,22 @@+.EXPORT_ALL_VARIABLES:+############################################################################+#+# Vendor specific settings+#++CONSOLE_BAUD_RATE = 19200++############################################################################++CPUFLAGS :=+VENDOR_CFLAGS :=+DISABLE_XIP := 1+DISABLE_MOVE_RODATA := 1       # until we get a toolchain release+# LOPT := -O2                  # library is alway 02+# UOPT := -Os                  # user apps are always Os++############################################################################++include $(ROOTDIR)/vendors/config/armnommu/config.arch++############################################################################diff -Nur uClinux-dist.040408.original/vendors/Embest/S3CEV40/config.linux-2.4.x uClinux-dist/vendors/Embest/S3CEV40/config.linux-2.4.x--- uClinux-dist.040408.original/vendors/Embest/S3CEV40/config.linux-2.4.x	1970-01-01 08:00:00.000000000 +0800+++ uClinux-dist/vendors/Embest/S3CEV40/config.linux-2.4.x	2005-03-29 09:57:33.718750000 +0800@@ -0,0 +1,396 @@+#+# Automatically generated make config: don't edit+#+CONFIG_ARM=y+# CONFIG_SBUS is not set+CONFIG_UID16=y+CONFIG_RWSEM_GENERIC_SPINLOCK=y+CONFIG_UCLINUX=y+MAGIC_ROM_PTR=y++#+# Code maturity level options+#+# CONFIG_EXPERIMENTAL is not set+# CONFIG_OBSOLETE is not set++#+# Loadable module support+#+# CONFIG_MODULES is not set++#+# System Type+#+# CONFIG_ARCH_DSC21 is not set+# CONFIG_ARCH_C5471 is not set+# CONFIG_ARCH_CNXT is not set+# CONFIG_ARCH_NETARM is not set+# CONFIG_ARCH_TA7S is not set+# CONFIG_ARCH_TA7V is not set+# CONFIG_ARCH_SWARM is not set+CONFIG_ARCH_SAMSUNG=y+# CONFIG_ARCH_ATMEL is not set+# CONFIG_CPU_BIG_ENDIAN is not set+C

⌨️ 快捷键说明

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