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

📄 uclinux-20040408-armsys.patch

📁 uClinux-20040408对应s3c44b0x的补丁
💻 PATCH
📖 第 1 页 / 共 5 页
字号:
diff -urN uClinux-dist/linux-2.4.x/arch/armnommu/boot/compressed/head.S linux-2.4.x/arch/armnommu/boot/compressed/head.S--- uClinux-dist/linux-2.4.x/arch/armnommu/boot/compressed/head.S	2004-02-17 20:52:18.000000000 +0800+++ linux-2.4.x/arch/armnommu/boot/compressed/head.S	2004-05-18 09:52:01.000000000 +0800@@ -10,7 +10,7 @@ #include <linux/config.h> #include <linux/linkage.h> -#ifdef CONFIG_BOARD_SNDS100+#if defined(CONFIG_BOARD_SNDS100) || defined(CONFIG_BOARD_MBA44) #include <asm/hardware.h> #endif @@ -154,7 +154,7 @@ 		str	r1, [r0]  		ldr	r0, =IOPDATA-		ldr	r1, =0xEF+		ldr	r1, =0xaa @0xEF 		str	r1, [r0]  		/* copy image to ram */@@ -187,7 +187,7 @@ 		blt	1b  #ifdef CONFIG_CPU_WITH_CACHE-#ifndef CONFIG_BOARD_SNDS100+#if !defined(CONFIG_BOARD_SNDS100) && !defined(CONFIG_BOARD_MBA44) 		mrc	p15, 0, r6, c0, c0	@ get processor ID 		bl	cache_on #endif@@ -199,17 +199,24 @@ 		orr	r2, r2, #6 		str	r2, [r0] #endif++#ifdef CONFIG_BOARD_MBA44+		ldr	r0, =S3C44B0X_SYSCFG+		ldr	r2, [r0]+		orr	r2, r2, #0xe+		str	r2, [r0]+#endif #endif	  		mov	r1, sp			@ malloc space above stack 		add	r2, sp, #0x10000	@ 64k max -#ifndef CONFIG_BOARD_SNDS100+#if !defined(CONFIG_BOARD_SNDS100) && !defined(CONFIG_BOARD_MBA44) 		teq	r4, r5			@ will we overwrite ourselves? 		moveq	r5, r2			@ decompress after image 		movne	r5, r4			@ decompress to final location #endif-#ifdef CONFIG_BOARD_SNDS100+#if defined(CONFIG_BOARD_SNDS100) || defined(CONFIG_BOARD_MBA44) 		mov	r5, r2			@ decompress after image #endif 		mov	r0, r5@@ -429,7 +436,14 @@ 		str	r1, [r0] 		mov	pc, lr #endif-#ifndef CONFIG_BOARD_SNDS100+#ifdef CONFIG_BOARD_MBA44+		ldr	r0, =S3C44B0X_SYSCFG+		ldr	r1, [r0]+		bic	r1, r1, #0xe+		str	r1, [r0]+		mov	pc, lr+#endif+#if !defined(CONFIG_BOARD_SNDS100) && !defined(CONFIG_BOARD_MBA44) #ifdef CONFIG_CPU_ARM610 		eor	r1, r6, #0x41000000 		eor	r1, r1, #0x00560000@@ -485,7 +499,10 @@ 		bne	cache_flush_loop 		mov	pc, lr #endif-#ifndef CONFIG_BOARD_SNDS100+#ifdef CONFIG_BOARD_MBA44+		mov	pc, lr+#endif+#if !defined(CONFIG_BOARD_SNDS100) && !defined(CONFIG_BOARD_MBA44) 		ldr	r1, proc_sa110_type 		eor	r1, r1, r6 		movs	r1, r1, lsr #5		@ catch SA110 and SA1100diff -urN uClinux-dist/linux-2.4.x/arch/armnommu/boot/Makefile linux-2.4.x/arch/armnommu/boot/Makefile--- uClinux-dist/linux-2.4.x/arch/armnommu/boot/Makefile	2004-02-17 20:52:18.000000000 +0800+++ linux-2.4.x/arch/armnommu/boot/Makefile	2004-03-24 22:45:28.000000000 +0800@@ -117,6 +117,11 @@ endif endif +ifeq ($(CONFIG_BOARD_MBA44),y)+ZTEXTADDR	= 0x0c000000+ZRELADDR	= 0x0c008000+endif+ # # If you don't define ZRELADDR above, # then it defaults to ZTEXTADDRdiff -urN uClinux-dist/linux-2.4.x/arch/armnommu/config.in linux-2.4.x/arch/armnommu/config.in--- uClinux-dist/linux-2.4.x/arch/armnommu/config.in	2004-02-17 20:52:18.000000000 +0800+++ linux-2.4.x/arch/armnommu/config.in	2004-05-18 09:51:04.000000000 +0800@@ -349,13 +349,13 @@     define_bool CONFIG_NO_PGT_CACHE         y     define_bool CONFIG_CPU_WITH_CACHE       y     define_bool CONFIG_CPU_WITH_MCR_INSTRUCTION n-    define_int  CONFIG_ARM_CLK              60000000-    define_bool CONFIG_SERIAL_S3C44B0X      y-    define_int  CONFIG_FORCE_MAX_ZONEORDER  5+    define_int  CONFIG_ARM_CLK              64000000 #72000000 #60000000+#    define_bool CONFIG_SERIAL_S3C44B0X      y+#    define_int  CONFIG_FORCE_MAX_ZONEORDER  5     if [ "$CONFIG_SET_MEM_PARAM" = "n" ]; then-       define_hex DRAM_BASE      0x00000000+       define_hex DRAM_BASE      0x0C000000        define_hex DRAM_SIZE      0x00800000-       define_hex FLASH_MEM_BASE 0x01000000+       define_hex FLASH_MEM_BASE 0x00000000        define_hex FLASH_SIZE     0x00200000     fi fi@@ -391,7 +391,7 @@    define_bool CONFIG_CPU_WITH_MCR_INSTRUCTION n    if [ "$CONFIG_SET_MEM_PARAM" = "n" ]; then      define_hex DRAM_BASE 0x00000000-     define_hex DRAM_SIZE 0x00800000+     define_hex DRAM_SIZE 0x01000000      define_hex FLASH_MEM_BASE 0x01000000      define_hex FLASH_SIZE 0x00200000    fi@@ -561,12 +561,16 @@      "$CONFIG_ARCH_EBSA110" = "y" -o   \      "$CONFIG_ARCH_EBSA285" = "y" -o   \      "$CONFIG_ARCH_CO285" = "y" -o     \+     "$CONFIG_BOARD_SNDS100" = "y" -o  \+     "$CONFIG_CPU_S3C44B0X" = "y" -o   \      "$CONFIG_ARCH_SA1100" = "y" ]; then    bool 'Timer and CPU usage LEDs' CONFIG_LEDS    if [ "$CONFIG_LEDS" = "y" ]; then       if [ "$CONFIG_ARCH_NETWINDER" = "y" -o \ 	   "$CONFIG_ARCH_EBSA285" = "y" -o   \ 	   "$CONFIG_ARCH_CO285" = "y" -o     \+     	   "$CONFIG_BOARD_SNDS100" = "y" -o  \+     	   "$CONFIG_CPU_S3C44B0X" = "y" -o   \ 	   "$CONFIG_ARCH_SA1100" = "y" ]; then          bool '  Timer LED' CONFIG_LEDS_TIMER          bool '  CPU usage LED' CONFIG_LEDS_CPUdiff -urN uClinux-dist/linux-2.4.x/arch/armnommu/kernel/head-armv.S linux-2.4.x/arch/armnommu/kernel/head-armv.S--- uClinux-dist/linux-2.4.x/arch/armnommu/kernel/head-armv.S	2004-02-17 20:52:18.000000000 +0800+++ linux-2.4.x/arch/armnommu/kernel/head-armv.S	2004-05-18 11:39:29.000000000 +0800@@ -21,6 +21,10 @@ #include <asm/mach-types.h> #include <asm/mach/arch.h> +#ifdef CONFIG_BOARD_MBA44+#include <asm/arch/hardware.h>+#endif+ #define K(a,b,c)	((a) << 24 | (b) << 12 | (c))  /*@@ -72,6 +76,7 @@ .section ".text.init",#alloc,#execinstr 		.type	stext, #function ENTRY(stext)+#if defined(CONFIG_ROMKERNEL) #if defined(CONFIG_CPU_S3C44B0X) /*  * We assume that there is a bootloader that has jump instructions at all@@ -89,6 +94,7 @@ 		b	vector_FIQ		/* 0x1C FIQ */ 99: #endif+#endif                 mov	r12, r0 /*  * NOTE!  Any code which is placed here should be done for one of@@ -241,6 +247,12 @@ 	str     r2, [r6] 	mov     r2, #MACH_TYPE_SNDS100 	str     r2, [r9]+		+		/* cache/write buffer on */+		ldr	r0, S3C4510_SYSCFG @=SYSCFG+		ldr	r2, [r0]+		orr	r2, r2, #6+		str	r2, [r0]          mov fp, #0         b	start_kernel@@ -253,6 +265,8 @@ 	 S3C4510B_PROCESSOR_TYPE: 	.long	0x36365036+S3C4510_SYSCFG:+	.long	0x03ff0000 #endif  #if defined(CONFIG_ARCH_TA7S) || defined(CONFIG_ARCH_TA7V)@@ -389,6 +403,11 @@ 		str	r3, [r6] #endif #if     defined(CONFIG_CPU_S3C44B0X)+		ldr	r9, =S3C44B0X_SYSCFG+		ldr	r3, [r9]+		orr	r3, r3, #0xe+		str	r3, [r9]	@enable cache and write buffer+ 		ldr	r3, S3C44B0X_PROCESSOR_TYPE 		str	r3, [r5] 		diff -urN uClinux-dist/linux-2.4.x/arch/armnommu/kernel/setup.c linux-2.4.x/arch/armnommu/kernel/setup.c--- uClinux-dist/linux-2.4.x/arch/armnommu/kernel/setup.c	2004-02-17 20:52:18.000000000 +0800+++ linux-2.4.x/arch/armnommu/kernel/setup.c	2004-03-24 23:31:59.000000000 +0800@@ -38,7 +38,7 @@ #endif  #ifndef CONFIG_CMDLINE-#define CONFIG_CMDLINE "root=/dev/rom0"+#define CONFIG_CMDLINE "root=/dev/rom0 init=/linuxrc" #endif    #ifdef CONFIG_ARCH_NETARMdiff -urN uClinux-dist/linux-2.4.x/arch/armnommu/mach-S3C44B0X/arch.c linux-2.4.x/arch/armnommu/mach-S3C44B0X/arch.c--- uClinux-dist/linux-2.4.x/arch/armnommu/mach-S3C44B0X/arch.c	2004-02-17 20:52:21.000000000 +0800+++ linux-2.4.x/arch/armnommu/mach-S3C44B0X/arch.c	2004-03-23 23:44:41.000000000 +0800@@ -31,3 +31,4 @@ 	/* 	 * @todo activate the hardware reset 	 */+}diff -urN uClinux-dist/linux-2.4.x/arch/armnommu/mach-S3C44B0X/fs44b0-leds.c linux-2.4.x/arch/armnommu/mach-S3C44B0X/fs44b0-leds.c--- uClinux-dist/linux-2.4.x/arch/armnommu/mach-S3C44B0X/fs44b0-leds.c	1970-01-01 08:00:00.000000000 +0800+++ linux-2.4.x/arch/armnommu/mach-S3C44B0X/fs44b0-leds.c	2004-05-18 09:57:36.000000000 +0800@@ -0,0 +1,112 @@+/*+ * LED driver for the Atmel AT91RM9200 Development Kit.+ *+ * (c) SAN People (Pty) Ltd+ *+ * 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.+*/++//added by antiscle++#include <linux/config.h>+#include <linux/kernel.h>+#include <linux/module.h>+#include <linux/init.h>++#include <asm/mach-types.h>+#include <asm/leds.h>+#include <asm/io.h>+#include <asm/system.h>+#include <asm/arch/hardware.h>+++static inline void leds_off(void)+{+	outl(inl(S3C44B0X_PDATE)&~(3<<2), S3C44B0X_PDATE);+}++static inline void leds_on(void)+{+	outl(inl(S3C44B0X_PDATE)|(3<<2), S3C44B0X_PDATE);+}++static inline void timer_led_toggle(void)+{+	outl(inl(S3C44B0X_PDATE)^(1<<2), S3C44B0X_PDATE);+}++static inline void busy_led_off(void)+{+	outl(inl(S3C44B0X_PDATE)&~(1<<3), S3C44B0X_PDATE);+}++static inline void busy_led_on(void)+{+	outl(inl(S3C44B0X_PDATE)|(1<<3), S3C44B0X_PDATE);+}++/*+ * Handle LED events.+ */+static void fs44b0_leds_event(led_event_t evt)+{+	unsigned long flags;+		+	local_irq_save(flags);++	switch(evt) {+	case led_start:		/* System startup */+		leds_on();+		break;++	case led_stop:		/* System stop / suspend */+		leds_off();+		break;++#ifdef CONFIG_LEDS_TIMER+	case led_timer:		/* Every 50 timer ticks */+		timer_led_toggle();+		break;+#endif++#ifdef CONFIG_LEDS_CPU+	case led_idle_start:	/* Entering idle state */+		busy_led_off();+		break;++	case led_idle_end:	/* Exit idle state */+		busy_led_on();+		break;+#endif++	default:+		break;+	}++	local_irq_restore(flags);+}+++static int __init leds_init(void)+{+	/* Enable PIO to access the LEDs+	*outl((inl(S3C44B0X_PCONE)&~(0xf0))|0x50, S3C44B0X_PCONE);+	*/+       outl(0x15569, S3C44B0X_PCONE);+ +#ifdef CONFIG_LEDS_TIMER+//	printk("LEDS_TIMER init\n");+#endif+#ifdef CONFIG_LEDS_CPU+//	printk("LEDS_CPU init\n");+#endif+	//leds_event = fs44b0_leds_event;//temp for make++	//leds_event(led_start);//temp for make+	return 0;+}++__initcall(leds_init);diff -urN uClinux-dist/linux-2.4.x/arch/armnommu/mach-S3C44B0X/Makefile linux-2.4.x/arch/armnommu/mach-S3C44B0X/Makefile--- uClinux-dist/linux-2.4.x/arch/armnommu/mach-S3C44B0X/Makefile	2004-02-17 20:52:21.000000000 +0800+++ linux-2.4.x/arch/armnommu/mach-S3C44B0X/Makefile	2004-05-17 11:24:40.000000000 +0800@@ -20,4 +20,8 @@  export-objs		:=  +# LEDs support+leds-$(CONFIG_CPU_S3C44B0X) += fs44b0-leds.o+obj-$(CONFIG_LEDS) += $(leds-y)+ include $(TOPDIR)/Rules.makediff -urN uClinux-dist/linux-2.4.x/arch/armnommu/mach-S3C44B0X/time.c linux-2.4.x/arch/armnommu/mach-S3C44B0X/time.c--- uClinux-dist/linux-2.4.x/arch/armnommu/mach-S3C44B0X/time.c	2004-02-17 20:52:21.000000000 +0800+++ linux-2.4.x/arch/armnommu/mach-S3C44B0X/time.c	2004-05-17 11:25:04.000000000 +0800@@ -23,9 +23,9 @@ { 	return (inw(S3C44B0X_TCNTB5) / CLOCKS_PER_USEC); }-+/* void s3c44b0x_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) { 	do_timer(regs);-}+}*/ diff -urN uClinux-dist/linux-2.4.x/arch/armnommu/mach-snds100/fs4510-leds.c linux-2.4.x/arch/armnommu/mach-snds100/fs4510-leds.c--- uClinux-dist/linux-2.4.x/arch/armnommu/mach-snds100/fs4510-leds.c	1970-01-01 08:00:00.000000000 +0800+++ linux-2.4.x/arch/armnommu/mach-snds100/fs4510-leds.c	2004-05-18 09:57:14.000000000 +0800@@ -0,0 +1,109 @@+/*+ * LED driver for the Atmel AT91RM9200 Development Kit.+ *+ * (c) SAN People (Pty) Ltd+ *+ * 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.+*/++//added by antiscle++#include <linux/config.h>+#include <linux/kernel.h>+#include <linux/module.h>+#include <linux/init.h>++#include <asm/mach-types.h>+#include <asm/leds.h>+#include <asm/io.h>+#include <asm/system.h>+#include <asm/arch/hardware.h>+++static inline void leds_off(void)+{+	outl(inl(IOPDATA)|0x3, IOPDATA);+}++static inline void leds_on(void)+{+	outl(inl(IOPDATA)&~0x3, IOPDATA);+}++static inline void timer_led_toggle(void)+{+	outl(inl(IOPDATA)^0x1, IOPDATA);+}++static inline void busy_led_off(void)+{+	outl(inl(IOPDATA)|0x2, IOPDATA);+}++static inline void busy_led_on(void)+{+	outl(inl(IOPDATA)&~0x2, IOPDATA);+}++/*+ * Handle LED events.+ */+static void fs44b0_leds_event(led_event_t evt)+{+	unsigned long flags;+		+	local_irq_save(flags);++	switch(evt) {+	case led_start:		/* System startup */+		leds_on();+		break;++	case led_stop:		/* System stop / suspend */+		leds_off();+		break;++#ifdef CONFIG_LEDS_TIMER+	case led_timer:		/* Every 50 timer ticks */+		timer_led_toggle();+		break;+#endif

⌨️ 快捷键说明

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