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

📄 uclinux-20040408-armsys.patch

📁 uClinux-20040408对应s3c44b0x的补丁
💻 PATCH
📖 第 1 页 / 共 5 页
字号:
++#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 */++#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;++	leds_event(led_start);+	return 0;+}++__initcall(leds_init);diff -urN uClinux-dist/linux-2.4.x/arch/armnommu/mach-snds100/Makefile linux-2.4.x/arch/armnommu/mach-snds100/Makefile--- uClinux-dist/linux-2.4.x/arch/armnommu/mach-snds100/Makefile	2004-02-17 20:52:21.000000000 +0800+++ linux-2.4.x/arch/armnommu/mach-snds100/Makefile	2004-05-18 09:53:45.000000000 +0800@@ -18,4 +18,8 @@  export-objs		:=  +# LEDs support+leds-$(CONFIG_CPU_S3C44B0X) += fs4510-leds.o+obj-$(CONFIG_LEDS) += $(leds-y)+ include $(TOPDIR)/Rules.makediff -urN uClinux-dist/linux-2.4.x/arch/armnommu/mach-snds100/time.c linux-2.4.x/arch/armnommu/mach-snds100/time.c--- uClinux-dist/linux-2.4.x/arch/armnommu/mach-snds100/time.c	2004-02-17 20:52:21.000000000 +0800+++ linux-2.4.x/arch/armnommu/mach-snds100/time.c	2004-05-18 10:02:57.000000000 +0800@@ -13,8 +13,8 @@ { 	return 0; }-+/* void samsung_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) {         do_timer(regs);-}+}*/diff -urN uClinux-dist/linux-2.4.x/arch/armnommu/Makefile linux-2.4.x/arch/armnommu/Makefile--- uClinux-dist/linux-2.4.x/arch/armnommu/Makefile	2004-02-17 20:52:18.000000000 +0800+++ linux-2.4.x/arch/armnommu/Makefile	2004-03-23 23:47:56.000000000 +0800@@ -239,10 +239,10 @@ endif  ifeq ($(CONFIG_BOARD_MBA44),y)-TEXTADDR   	 = 0x0c000000+TEXTADDR   	 = 0x0c008000 MACHINE          = S3C44B0X INCDIR           = $(MACHINE)-CORE_FILES	:= $(CORE_FILES) romfs.o+CORE_FILES	:= $(CORE_FILES) #romfs.o endif  ifeq ($(CONFIG_ARCH_C5471), y)diff -urN uClinux-dist/linux-2.4.x/arch/armnommu/mm/init.c linux-2.4.x/arch/armnommu/mm/init.c--- uClinux-dist/linux-2.4.x/arch/armnommu/mm/init.c	2004-02-17 20:52:21.000000000 +0800+++ linux-2.4.x/arch/armnommu/mm/init.c	2004-04-02 00:15:20.000000000 +0800@@ -380,6 +380,9 @@ 	    machine_is_netarm()    || machine_is_evS3C4530HEI() || 	    machine_is_smdk2500() || machine_is_S3C2500REFRGP() ) 		reserve_bootmem_node(pgdat, 0, __pa(&_stext));+	+	if(machine_is_S3C44B0X())+		reserve_bootmem_node(pgdat, DRAM_BASE, __pa(&_stext)-DRAM_BASE);   	/*@@ -659,7 +662,7 @@ 	    !machine_is_cx821xx() && 	    !machine_is_atmel() && 	    !machine_is_netarm() &&-	    !machine_is_ta7v() &&+//	    !machine_is_ta7v() && 	    !machine_is_ta7s()) { 		free_area((unsigned long)(&__init_begin), 			  (unsigned long)(&__init_end),diff -urN uClinux-dist/linux-2.4.x/drivers/block/blkmem.c linux-2.4.x/drivers/block/blkmem.c--- uClinux-dist/linux-2.4.x/drivers/block/blkmem.c	2004-02-17 20:52:52.000000000 +0800+++ linux-2.4.x/drivers/block/blkmem.c	2004-05-18 10:20:56.000000000 +0800@@ -381,7 +381,11 @@ #endif  #ifdef CONFIG_BOARD_SNDS100-	{0, romfs_data, -1},+	{0, 0x01100000, -1},//	{0, romfs_data, -1},+#endif++#ifdef CONFIG_BOARD_MBA44+	{0, 0xc700000, -1},/*{0, 0x100000, -1},*/ #endif  #if defined(CONFIG_ARCH_CNXT) && !defined(CONFIG_ARCH_CX821XX)diff -urN uClinux-dist/linux-2.4.x/drivers/char/Config.in linux-2.4.x/drivers/char/Config.in--- uClinux-dist/linux-2.4.x/drivers/char/Config.in	2004-02-17 20:52:53.000000000 +0800+++ linux-2.4.x/drivers/char/Config.in	2004-03-25 23:31:37.000000000 +0800@@ -239,6 +239,8 @@   fi fi +source drivers/serial/Config.in+ bool 'LED Manager support' CONFIG_LEDMAN bool 'DS1302 Real Time Clock support' CONFIG_DS1302 diff -urN uClinux-dist/linux-2.4.x/drivers/char/Makefile linux-2.4.x/drivers/char/Makefile--- uClinux-dist/linux-2.4.x/drivers/char/Makefile	2004-02-17 20:52:53.000000000 +0800+++ linux-2.4.x/drivers/char/Makefile	2004-03-26 00:43:22.000000000 +0800@@ -237,7 +237,7 @@ obj-$(CONFIG_SERIAL_SAMSUNG) += serial_samsung.o obj-$(CONFIG_SERIAL_S3C2500) += serial_s3c2500.o obj-$(CONFIG_SERIAL_S3C3410) += serial_s3c3410.o-obj-$(CONFIG_SERIAL_S3C44B0X) += serial_s3c44b0x.o+#obj-$(CONFIG_SERIAL_S3C44B0X) += serial_s3c44b0x.o obj-$(CONFIG_SERIAL_S3C4530) += serial_s3c4530.o obj-$(CONFIG_SERIAL_CNXT) += cnxtserial.o obj-$(CONFIG_SERIAL_KS8695) += serial_ks8695.o generic_serial.odiff -urN uClinux-dist/linux-2.4.x/drivers/char/serial_samsung.c linux-2.4.x/drivers/char/serial_samsung.c--- uClinux-dist/linux-2.4.x/drivers/char/serial_samsung.c	2004-02-17 20:52:57.000000000 +0800+++ linux-2.4.x/drivers/char/serial_samsung.c	2004-05-18 09:48:49.000000000 +0800@@ -4466,7 +4466,7 @@ 	static struct async_struct *info; 	struct serial_state *state; 	unsigned cval;-	int	baud = 19200;+	int	baud = 57600; 	int	bits = 8; 	int	parity = 'n'; 	int	doflow = 0;diff -urN uClinux-dist/linux-2.4.x/drivers/Makefile linux-2.4.x/drivers/Makefile--- uClinux-dist/linux-2.4.x/drivers/Makefile	2004-02-17 20:52:48.000000000 +0800+++ linux-2.4.x/drivers/Makefile	2004-03-25 23:23:40.000000000 +0800@@ -8,9 +8,9 @@  mod-subdirs :=	dio hil mtd sbus video macintosh usb input telephony ide \ 		message/i2o message/fusion scsi md ieee1394 pnp isdn atm \-		fc4 net/hamradio i2c acpi bluetooth usb/gadget+		fc4 net/hamradio i2c acpi bluetooth usb/gadget serial -subdir-y :=	parport char block net sound misc media cdrom hotplug+subdir-y :=	parport char block net sound misc media cdrom hotplug serial subdir-m :=	$(subdir-y)  diff -urN uClinux-dist/linux-2.4.x/drivers/mtd/nand/Config.in linux-2.4.x/drivers/mtd/nand/Config.in--- uClinux-dist/linux-2.4.x/drivers/mtd/nand/Config.in	2004-02-17 20:53:08.000000000 +0800+++ linux-2.4.x/drivers/mtd/nand/Config.in	2004-05-15 16:19:32.000000000 +0800@@ -33,4 +33,8 @@ fi fi +if [ "$CONFIG_CPU_S3C44B0X" = "y" ]; then+   dep_tristate '  NAND Flash device on FS44B0-CORE V2.00 board' CONFIG_MTD_NAND_S3C44B0X $CONFIG_MTD_NAND+fi+ endmenudiff -urN uClinux-dist/linux-2.4.x/drivers/mtd/nand/Makefile linux-2.4.x/drivers/mtd/nand/Makefile--- uClinux-dist/linux-2.4.x/drivers/mtd/nand/Makefile	2004-02-17 20:53:08.000000000 +0800+++ linux-2.4.x/drivers/mtd/nand/Makefile	2004-05-15 16:16:11.000000000 +0800@@ -12,5 +12,6 @@ obj-$(CONFIG_MTD_NAND_AUTCPU12)	+= autcpu12.o obj-$(CONFIG_MTD_NAND_EDB7312)  += edb7312.o obj-$(CONFIG_MTD_NAND_IDS)	+= nand_ids.o+obj-$(CONFIG_MTD_NAND_S3C44B0X) += s3c44b0x.o  include $(TOPDIR)/Rules.makediff -urN uClinux-dist/linux-2.4.x/drivers/net/8390.h linux-2.4.x/drivers/net/8390.h--- uClinux-dist/linux-2.4.x/drivers/net/8390.h	2004-02-17 20:53:08.000000000 +0800+++ linux-2.4.x/drivers/net/8390.h	2004-05-17 11:28:08.000000000 +0800@@ -50,7 +50,6 @@ extern int ei_open(struct net_device *dev); extern int ei_close(struct net_device *dev); extern void ei_interrupt(int irq, void *dev_id, struct pt_regs *regs);-extern struct net_device *alloc_ei_netdev(void);  /* Most of these entries should be in 'struct net_device' (or most of the    things in there should be here!) */@@ -115,10 +114,16 @@  *	Only generate indirect loads given a machine that needs them.  *      - removed AMIGA_PCMCIA from this list, handled as ISA io now  */- +#ifdef	CONFIG_NE2000_16b+#define	ETH_ADDR_SFT	(9) //(1)+#else+#define	ETH_ADDR_SFT	(8) //(0)+#endif+ #if defined(CONFIG_MAC) ||  \-    defined(CONFIG_ZORRO8390) || defined(CONFIG_ZORRO8390_MODULE) || \-    defined(CONFIG_HYDRA) || defined(CONFIG_HYDRA_MODULE)+    defined(CONFIG_ARIADNE2) || defined(CONFIG_ARIADNE2_MODULE) || \+    defined(CONFIG_HYDRA) || defined(CONFIG_HYDRA_MODULE) || \+    defined(CONFIG_ARM_ETHERH) || defined(CONFIG_ARM_ETHERH_MODULE) #define EI_SHIFT(x)	(ei_local->reg_offset[x]) #undef inb #undef inb_p@@ -130,10 +135,8 @@ #define inb_p(port)   in_8(port) #define outb_p(val,port)  out_8(port,val) -#elif defined(CONFIG_ARM_ETHERH) || defined(CONFIG_ARM_ETHERH_MODULE)-#define EI_SHIFT(x)    (ei_local->reg_offset[x]) #else-#define EI_SHIFT(x)	(x)+#define EI_SHIFT(x)	((x)<<ETH_ADDR_SFT) #endif  #define E8390_CMD	EI_SHIFT(0x00)  /* The command register (for all pages) */diff -urN uClinux-dist/linux-2.4.x/drivers/net/Config.in linux-2.4.x/drivers/net/Config.in--- uClinux-dist/linux-2.4.x/drivers/net/Config.in	2004-02-17 20:53:08.000000000 +0800+++ linux-2.4.x/drivers/net/Config.in	2004-05-17 11:27:38.000000000 +0800@@ -177,6 +177,9 @@       tristate '    LP486E on board Ethernet' CONFIG_LP486E       tristate '    ICL EtherTeam 16i/32 support' CONFIG_ETH16I       tristate '    NE2000/NE1000 support' CONFIG_NE2000+      if [ "$CONFIG_NE2000" = "y" -o "CONFIG_NE2000" = "m" ]; then+	bool '       16Bits mode support' CONFIG_NE2000_16b+      fi       if [ "$CONFIG_OBSOLETE" = "y" ]; then 	 dep_tristate '    SEEQ8005 support (EXPERIMENTAL)' CONFIG_SEEQ8005 $CONFIG_EXPERIMENTAL       fidiff -urN uClinux-dist/linux-2.4.x/drivers/net/ne.c linux-2.4.x/drivers/net/ne.c--- uClinux-dist/linux-2.4.x/drivers/net/ne.c	2004-02-17 20:53:12.000000000 +0800+++ linux-2.4.x/drivers/net/ne.c	2004-05-17 11:27:56.000000000 +0800@@ -130,10 +130,10 @@ /* ---- No user-serviceable parts below ---- */  #define NE_BASE	 (dev->base_addr)-#define NE_CMD	 	0x00-#define NE_DATAPORT	0x10	/* NatSemi-defined port window offset. */-#define NE_RESET	0x1f	/* Issue a read to reset, a write to clear. */-#define NE_IO_EXTENT	0x20+#define NE_CMD		0x00+#define NE_DATAPORT	(0x10<<ETH_ADDR_SFT)	/* NatSemi-defined port window offset. */+#define NE_RESET	(0x1f<<ETH_ADDR_SFT)	/* Issue a read to reset, a write to clear. */+#define NE_IO_EXTENT	(0x20<<ETH_ADDR_SFT)  #define NE1SM_START_PG	0x20	/* First page of TX buffer */ #define NE1SM_STOP_PG 	0x40	/* Last page +1 of RX ring */@@ -203,6 +203,13 @@ 	dev->base_addr = base_addr = NE2000_ADDR; 	dev->irq = NE2000_IRQ_VECTOR; 	once++;+#elif defined(CONFIG_BOARD_MBA44)+	static int once = 0;+	if (once)+		return -ENXIO;+	dev->base_addr = base_addr = 0x08000000;//NE2000_ADDR;+	dev->irq = 24;//NE2000_IRQ_VECTOR;+	once++; #endif  	SET_MODULE_OWNER(dev);@@ -281,7 +288,7 @@ 	int reg0, ret; 	static unsigned version_printed; -#if !defined(CONFIG_COLDFIRE)+#if !defined(CONFIG_COLDFIRE) && !defined(CONFIG_CPU_H8300H) 	if (!request_region(ioaddr, NE_IO_EXTENT, dev->name)) 		return -EBUSY; #endif@@ -373,6 +380,7 @@ 	for(i = 0; i < 32 /*sizeof(SA_prom)*/; i+=2) { 		SA_prom[i] = inb(ioaddr + NE_DATAPORT); 		SA_prom[i+1] = inb(ioaddr + NE_DATAPORT);+//			printk("%p=%x,%x\n", ioaddr + NE_DATAPORT, SA_prom[i], SA_prom[i+1]);			 		if (SA_prom[i] != SA_prom[i+1]) 			wordlength = 1; 	}@@ -456,7 +464,29 @@ 	} 	SA_prom[14] = SA_prom[15] = 0x57;     }-#endif /* CONFIG_M5206e */+#elif defined(CONFIG_BOARD_MBA44)+    {+	unsigned char ne_defethaddr[6] = {0x00, 0x80, 0x49, 0x12, 0x34, 0x56};+//	ne_defethaddr[5]++;++	printk("NE2000 driver modified by antisle, Http://www.uCdragon.com\n");+	outb_p(E8390_NODMA+E8390_PAGE1+E8390_STOP, ioaddr + E8390_CMD);+	for(i = 0; i < 6; i++)+	{+		SA_prom[i] = ne_defethaddr[i];+	}+	SA_prom[14] = SA_prom[15] = 0x57;+  #if (ETH_ADDR_SFT==0)+	wordlength = 1;+	/* We must set the 8390 for 8bit mode. */+        outb_p(0x48, ioaddr + EN0_DCFG);+  #else+	wordlength = 2;+	/* We must set the 8390 for 16bit mode. */	+	outb_p(0x49, ioaddr + EN0_DCFG);+  #endif+    }+#endif /* CONFIG_BOARD_MBA44 */  #if !(defined(CONFIG_M5206e) && defined(CONFIG_NETtel)) 	if (wordlength == 2)@@ -479,6 +509,10 @@ 	stop_page = NESM_STOP_PG; 	H8300_INIT_NE(); #endif+#if defined(CONFIG_BOARD_MBA44)+	start_page = NESM_START_PG;+	stop_page = NESM_STOP_PG;	+#endif  	neX000 = (SA_prom[14] == 0x57  &&  SA_prom[15] == 0x57); 	ctron =  (SA_prom[0] == 0x00 && SA_prom[1] == 0x00 && SA_prom[2] == 0x1d);@@ -578,7 +612,7 @@ 		dev->dev_addr[i] = SA_prom[i]; 	} -	printk("\n%s: %s found at %#x, using IRQ %d.\n",+	printk("\n%s: %s found at %#x, using IRQ %d\n", 		dev->name, name, ioaddr, dev->irq);  	ei_status.name = name;@@ -670,6 +704,7 @@ 	}  	ei_status.dmaing |= 0x01;+ 	outb_p(E8390_NODMA+E8390_PAGE0+E8390_START, nic_base+ NE_CMD); 	outb_p(sizeof(struct e8390_pkt_hdr), nic_base + EN0_RCNTLO); 	outb_p(0, nic_base + EN0_RCNTHI);@@ -677,15 +712,23 @@ 	outb_p(ring_page, nic_base + EN0_RSARHI); 	outb_p(E8390_RREAD+E8390_START, nic_base + NE_CMD); -	if (ei_status.word16)-		insw(NE_BASE + NE_DATAPORT, hdr, sizeof(struct e8390_pkt_hdr)>>1);-	else-		insb(NE_BASE + NE_DATAPORT, hdr, sizeof(struct e8390_pkt_hdr));+	if (ei_status.word16) {+		//insw(NE_BASE + NE_DATAPORT, hdr, sizeof(struct e8390_pkt_hdr)>>1);+		__u16  *pDat = (__u16 *)hdr;+		__u16 iDat, TotalCnt;++		TotalCnt = sizeof(struct e8390_pkt_hdr)>>1;+		for(iDat=0; iDat<TotalCnt; iDat++) {+			pDat[iDat] = inw(nic_base + NE_DATAPORT);+		}+	}+	else +		insb(NE_BASE + NE_DATAPORT, hdr, sizeof(struct e8390_pkt_hdr));		  	outb_p(ENISR_RDC, nic_base + EN0_ISR);	/* Ack intr. */ 	ei_status.dmaing &= ~0x01; -	le16_to_cpus(&hdr->count);+	le16_to_cpus(&hdr->count);	 }  /* Block input and output, similar to the Crynwr packet driver.  If you@@ -718,7 +761,14 @@ 	outb_p(E8390_RREAD+E8390_START, nic_base + NE_CMD); 	if (ei_status.word16) 	{-		insw(NE_BASE + NE_DATAPORT,buf,count>>1);+		__u16  *pDat = (__u16 *)buf;+		__u16 iDat, TotalCnt;++		TotalCnt = count>>1;+		for(iDat=0; iDat<TotalCnt; iDat++) {+			pDat[iDat] = inw(nic_base + NE_DATAPORT);+		}+		//insw(NE_BASE + NE_DATAPORT,buf,count>>1); 		if (count & 0x01) 		{ 			buf[count-1] = inb(NE_BASE + NE_DATAPORT);@@ -816,7 +866,13 @@  	outb_p(E8390_RWRITE+E8390_START, nic_base + NE_CMD); 	if (ei_status.word16) {-		outsw(NE_BASE + NE_DATAPORT, buf, count>>1);+		//outsw(NE_BASE + NE_DATAPORT, buf, count>>1);+		__u16  *pDat = (__u16 *)buf;+		__u16 iDat, TotalCnt;++		TotalCnt = count>>1;+		for(iDat=0; iDat<TotalCnt; iDat++)+			outw_p(pDat[iDat], nic_base + NE_DATAPORT); 	} else { 		outsb(NE_BASE + NE_DATAPORT, buf, count); 	}diff -urN uClinux-dist/linux-2.4.x/drivers/serial/Config.in linux-2.4.x/drivers/serial/Config.in--- uClinux-dist/linux-2.4.x/drivers/serial/Config.in	1970-01-01 08:00:00.000000000 +0800+++ linux-2.4.x/drivers/serial/Config.in	2004-03-26 00:34:17.000000000 +0800@@ -0,0 +1,87 @@+#+# Serial device configuration+#+# $Id: Config.in,v 1.4 2001/10/12 15:46:58 rmk Exp $+#+mainmenu_option next_comment+comment 'Serial drivers'++if [ "$CONFIG_ARM" = "y" ]; then+  # I don't have this in my tree yet.+  dep_bool 'Anakin serial port support' CONFIG_SERIAL_ANAKIN $CONFIG_ARCH_ANAKIN+  dep_bool '  Console on Anakin serial port' CONFIG_SERIAL_ANAKIN_CONSOLE $CONFIG_SERIAL_ANAKIN+  if [ "$CONFIG_SERIAL_ANAKIN" = "y" ]; then+     int  '  Default Anakin serial baudrate' CONFIG_ANAKIN_DEFAULT_BAUDRATE 9600+  fi++  dep_tristate 'S3C44B0 serial port support' CONFIG_SERIAL_S3C44B0X $CONFIG_BOARD_MBA44+  dep_bool '  Support for console on S3C44B0 serial port' CONFIG_SERIAL_S3C44B0X_CONSOLE $CONFIG_SERIAL_S3C44B0X+  if [ "$CONFIG_SERIAL_S3C44B0X" = "y" ]; then+     int  '  Default S3C44B0 serial baudrate' CONFIG_S3C44B0_DEFAULT_BAUDRATE 115200+  fi++  dep_tristate 'ARM AMBA serial port support' CONFIG_SERIAL_AMBA $CONFIG_ARCH_INTEGRATOR+  dep_bool '  Support for console on AMBA serial port' CONFIG_SERIAL_AMBA_CONSOLE $CONFIG_SERIAL_AMBA+  if [ "$CONFIG_SERIAL_AMBA" = "y" ]; then+     define_bool CONFIG_SERIAL_INTEGRATOR y+  fi++  dep_tristate 'CLPS711X serial port support' CONFIG_SERIAL_CLPS711X $CONFIG_ARCH_CLPS711X+  dep_bool '  Support for console on CLPS711X serial port' CONFIG_SERIAL_CLPS711X_CONSOLE $CONFIG_SERIAL_CLPS711X++  dep_bool 'DC21285 serial port support' CONFIG_SERIAL_21285 $CONFIG_FOOTBRIDGE+  dep_bool '  Use /dev/ttyS0 device (OBSOLETE)' CONFIG_SERIAL_21285_OLD $CONFIG_SERIAL_21285 $CONFIG_OBSOLETE+  dep_bool '  Console on DC21285 serial port' CONFIG_SERIAL_21285_CONSOLE $CONFIG_SERIAL_21285+

⌨️ 快捷键说明

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