📄 uclinux-20040408-armsys.patch
字号:
++#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 + -