?? uclinux44b0.patch
字號(hào):
- 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
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -