diff options
author | Chris Larson <clarson@kergoth.com> | 2004-11-09 00:36:47 +0000 |
---|---|---|
committer | Chris Larson <clarson@kergoth.com> | 2004-11-09 00:36:47 +0000 |
commit | f96441b9faf769c9ecdd4d338b605ea3d0cc4010 (patch) | |
tree | edb17ec2c4ea13c5acb1c7350957a249a820e28d /linux/openzaurus-2.6.10-rc1-jl1/patch-2.6.5-rp1.diff | |
parent | b6588aa6851fb220cedc387d21c51513ef8d67f4 (diff) |
Disable bk EOLN_NATIVE conversions on all files in packages FILESPATHs, to prevent it screwing up patches.
BKrev: 4190111fA4MuVozAqwE7xOSL9fr-TA
Diffstat (limited to 'linux/openzaurus-2.6.10-rc1-jl1/patch-2.6.5-rp1.diff')
-rw-r--r-- | linux/openzaurus-2.6.10-rc1-jl1/patch-2.6.5-rp1.diff | 881 |
1 files changed, 881 insertions, 0 deletions
diff --git a/linux/openzaurus-2.6.10-rc1-jl1/patch-2.6.5-rp1.diff b/linux/openzaurus-2.6.10-rc1-jl1/patch-2.6.5-rp1.diff index e69de29bb2..5d69785a47 100644 --- a/linux/openzaurus-2.6.10-rc1-jl1/patch-2.6.5-rp1.diff +++ b/linux/openzaurus-2.6.10-rc1-jl1/patch-2.6.5-rp1.diff @@ -0,0 +1,881 @@ +diff -uNr linux-2.6.5-orig/arch/arm/Kconfig linux-2.6.5/arch/arm/Kconfig +--- linux-2.6.5-orig/arch/arm/Kconfig 2004-06-14 20:31:51.000000000 +0100 ++++ linux-2.6.5/arch/arm/Kconfig 2004-06-14 20:33:06.000000000 +0100 +@@ -500,7 +500,7 @@ + + config LEDS + bool "Timer and CPU usage LEDs" +- depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_FTVPCI || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || MACH_POODLE || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T ++ depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_FTVPCI || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || MACH_POODLE || MACH_HUSKY || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T + help + If you say Y here, the LEDs on your machine will be used + to provide useful information about your current system status. +@@ -513,8 +513,8 @@ + system, but the driver will do nothing. + + config LEDS_TIMER +- bool "Timer LED" if LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || MACH_POODLE || ARCH_INTEGRATOR || ARCH_P720T) +- depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_FTVPCI || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || MACH_POODLE || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T ++ bool "Timer LED" if LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || MACH_POODLE || MACH_HUSKY || ARCH_INTEGRATOR || ARCH_P720T) ++ depends on ARCH_NETWINDER || ARCH_EBSA110 || ARCH_EBSA285 || ARCH_FTVPCI || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || MACH_POODLE || MACH_HUSKY || ARCH_INTEGRATOR || ARCH_CDB89712 || ARCH_P720T + default y if ARCH_EBSA110 + help + If you say Y here, one of the system LEDs (the green one on the +@@ -529,7 +529,7 @@ + + config LEDS_CPU + bool "CPU usage LED" +- depends on LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || MACH_POODLE || ARCH_INTEGRATOR || ARCH_P720T) ++ depends on LEDS && (ARCH_NETWINDER || ARCH_EBSA285 || ARCH_SHARK || ARCH_CO285 || ARCH_SA1100 || ARCH_LUBBOCK || ARCH_PXA_IDP || MACH_POODLE || MACH_HUSKY || ARCH_INTEGRATOR || ARCH_P720T) + help + If you say Y here, the red LED will be used to give a good real + time indication of CPU usage, by lighting whenever the idle task +diff -uNr linux-2.6.5-orig/arch/arm/Makefile linux-2.6.5/arch/arm/Makefile +--- linux-2.6.5-orig/arch/arm/Makefile 2004-06-14 20:31:51.000000000 +0100 ++++ linux-2.6.5/arch/arm/Makefile 2004-06-14 20:33:06.000000000 +0100 +@@ -54,8 +54,8 @@ + tune-$(CONFIG_CPU_V6) :=-mtune=strongarm + + # Need -Uarm for gcc < 3.x +-CFLAGS +=-mapcs-32 $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Wa,-mno-fpu -Uarm +-AFLAGS +=-mapcs-32 $(arch-y) $(tune-y) -msoft-float -Wa,-mno-fpu ++CFLAGS +=-mapcs-32 $(arch-y) $(tune-y) -malignment-traps -msoft-float ++AFLAGS +=-mapcs-32 $(arch-y) $(tune-y) -msoft-float + + #Default value + DATAADDR := . +diff -uNr linux-2.6.5-orig/arch/arm/boot/compressed/Makefile linux-2.6.5/arch/arm/boot/compressed/Makefile +--- linux-2.6.5-orig/arch/arm/boot/compressed/Makefile 2004-06-14 20:31:52.000000000 +0100 ++++ linux-2.6.5/arch/arm/boot/compressed/Makefile 2004-06-14 20:33:06.000000000 +0100 +@@ -55,14 +55,18 @@ + OBJS += head-xscale.o + endif + ++ifeq ($(CONFIG_DEBUG_ICEDCC),y) ++OBJS += ice-dcc.o ++endif ++ + SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/;s/BSS_START/$(ZBSSADDR)/ + + targets := vmlinux vmlinux.lds piggy piggy.gz piggy.o \ + font.o head.o $(OBJS) + EXTRA_CFLAGS := -fpic +-EXTRA_AFLAGS := -traditional ++EXTRA_AFLAGS := + +-LDFLAGS_vmlinux := -p -X \ ++LDFLAGS_vmlinux := -p --no-undefined -X \ + $(shell $(CC) $(CFLAGS) --print-libgcc-file-name) -T + + $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.o \ +diff -uNr linux-2.6.5-orig/arch/arm/boot/compressed/head-xscale.S linux-2.6.5/arch/arm/boot/compressed/head-xscale.S +--- linux-2.6.5-orig/arch/arm/boot/compressed/head-xscale.S 2004-06-14 20:31:52.000000000 +0100 ++++ linux-2.6.5/arch/arm/boot/compressed/head-xscale.S 2004-06-14 20:33:06.000000000 +0100 +@@ -52,6 +52,18 @@ + mov r7, #MACH_TYPE_POODLE + #endif + ++#ifdef CONFIG_MACH_CORGI ++@ mov r7, #MACH_TYPE_CORGI ++ mov r7, #0xa7 ++ add r7, r7, #0x100 ++#endif ++ ++#ifdef CONFIG_MACH_HUSKY ++@ mov r7, #MACH_TYPE_HUSKY ++ mov r7, #0xde ++ add r7, r7, #0x100 ++#endif ++ + #ifdef CONFIG_ARCH_IQ80310 + /* + * Crank the CPU up to 733MHz +diff -uNr linux-2.6.5-orig/arch/arm/boot/compressed/head.S linux-2.6.5/arch/arm/boot/compressed/head.S +--- linux-2.6.5-orig/arch/arm/boot/compressed/head.S 2004-06-14 20:31:53.000000000 +0100 ++++ linux-2.6.5/arch/arm/boot/compressed/head.S 2004-06-14 20:33:06.000000000 +0100 +@@ -10,6 +10,8 @@ + #include <linux/config.h> + #include <linux/linkage.h> + ++#define DEBUG 1 ++ + /* + * Debugging stuff + * +@@ -25,6 +27,12 @@ + .macro writeb, rb + str \rb, [r3, #0x160] + .endm ++#elif defined(CONFIG_DEBUG_ICEDCC) ++ .macro loadsp, rb ++ .endm ++ .macro writeb, rb ++ mcr p14, 0, \rb, c0, c1, 0 ++ .endm + #elif defined(CONFIG_FOOTBRIDGE) + .macro loadsp, rb + mov \rb, #0x7c000000 +@@ -67,6 +75,19 @@ + .macro writeb, rb + str \rb, [r3, #0x14] @ UTDR + .endm ++#elif defined(CONFIG_ARCH_IXP4XX) ++ .macro loadsp, rb ++ mov \rb, #0xc8000000 ++ .endm ++ .macro writeb, rb ++ str \rb, [r3, #0] ++#elif defined(CONFIG_ARCH_LH7A40X) ++ .macro loadsp, rb ++ ldr \rb, =0x80000700 @ UART2 UARTBASE ++ .endm ++ .macro writeb, rb ++ strb \rb, [r3, #0] ++ .endm + #else + #error no serial architecture defined + #endif +@@ -332,11 +353,19 @@ + mov r8, r0, lsr #18 + mov r8, r8, lsl #18 @ start of RAM + add r9, r8, #0x10000000 @ a reasonable RAM size +- mov r1, #0x12 ++@#ifdef CONFIG_CPU_XSCALE ++ mov r1, #0x02 ++@#else ++@ mov r1, #0x12 ++@#endif + orr r1, r1, #3 << 10 + add r2, r3, #16384 + 1: cmp r1, r8 @ if virt > start of RAM +- orrhs r1, r1, #0x0c @ set cacheable, bufferable ++@#ifdef CONFIG_XSCALE_CACHE_ERRATA ++ orrhs r1, r1, #0x08 @ set cacheable, not bufferable ++@#else ++@ orrhs r1, r1, #0x0c @ set cacheable, bufferable ++@#endif + cmp r1, r9 @ if virt > end of RAM + bichs r1, r1, #0x0c @ clear cacheable, bufferable + str r1, [r0], #4 @ 1:1 mapping +diff -uNr linux-2.6.5-orig/arch/arm/boot/compressed/vmlinux.lds.in linux-2.6.5/arch/arm/boot/compressed/vmlinux.lds.in +--- linux-2.6.5-orig/arch/arm/boot/compressed/vmlinux.lds.in 2004-06-14 20:31:53.000000000 +0100 ++++ linux-2.6.5/arch/arm/boot/compressed/vmlinux.lds.in 2004-06-14 20:33:06.000000000 +0100 +@@ -47,7 +47,7 @@ + .bss : { *(.bss) } + _end = .; + +- .stack (NOLOAD) : { *(.stack) } ++ .stack : { *(.stack) } + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } +diff -uNr linux-2.6.5-orig/arch/arm/mach-pxa/Kconfig linux-2.6.5/arch/arm/mach-pxa/Kconfig +--- linux-2.6.5-orig/arch/arm/mach-pxa/Kconfig 2004-06-14 20:31:53.000000000 +0100 ++++ linux-2.6.5/arch/arm/mach-pxa/Kconfig 2004-06-14 20:33:06.000000000 +0100 +@@ -13,10 +13,23 @@ + bool "SHARP Poodle" + depends on ARCH_PXA + ++config MACH_CORGI ++ bool "SHARP Corgi (SL-C700)" ++ depends on ARCH_PXA ++ ++config MACH_SHEPHERD ++ bool "SHARP Shepherd (SL-C750)" ++ depends on ARCH_PXA ++ ++config MACH_HUSKY ++ bool "SHARP Husky (SL-C760)" ++ depends on ARCH_PXA ++ + config SHARP_LOCOMO + bool "SHARP LoCoMo support" + default Y +- depends MACH_POODLE ++ depends MACH_POODLE || MACH_CORGI || MACH_HUSKY ++ + + endmenu + +diff -uNr linux-2.6.5-orig/arch/arm/mach-pxa/Makefile linux-2.6.5/arch/arm/mach-pxa/Makefile +--- linux-2.6.5-orig/arch/arm/mach-pxa/Makefile 2004-06-14 20:31:54.000000000 +0100 ++++ linux-2.6.5/arch/arm/mach-pxa/Makefile 2004-06-14 20:33:06.000000000 +0100 +@@ -9,12 +9,18 @@ + obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o + obj-$(CONFIG_ARCH_PXA_IDP) += idp.o + obj-$(CONFIG_MACH_POODLE) += poodle.o ++obj-$(CONFIG_MACH_CORGI) += corgi.o ++obj-$(CONFIG_MACH_SHEPHERD) += corgi.o ++obj-$(CONFIG_MACH_HUSKY) += corgi.o + + # Support for blinky lights + led-y := leds.o + led-$(CONFIG_ARCH_LUBBOCK) += leds-lubbock.o + led-$(CONFIG_ARCH_PXA_IDP) += leds-idp.o + led-$(CONFIG_MACH_POODLE) += leds-poodle.o ++led-$(CONFIG_MACH_CORGI) += leds-corgi.o ++led-$(CONFIG_MACH_SHEPHERD) += leds-corgi.o ++led-$(CONFIG_MACH_HUSKY) += leds-corgi.o + + obj-$(CONFIG_LEDS) += $(led-y) + +diff -uNr linux-2.6.5-orig/arch/arm/mach-pxa/corgi.c linux-2.6.5/arch/arm/mach-pxa/corgi.c +--- linux-2.6.5-orig/arch/arm/mach-pxa/corgi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.5/arch/arm/mach-pxa/corgi.c 2004-06-14 20:33:19.000000000 +0100 +@@ -0,0 +1,178 @@ ++/* ++ * linux/arch/arm/mach-pxa/corgi.c ++ * ++ * Support for the SHARP Corgi Board. ++ * ++ * Copyright: Lineo Japan Inc. ++ * ++ * Based on: ++ * linux/arch/arm/mach-pxa/lubbock.c ++ * ++ * Support for the Intel DBPXA250 Development Platform. ++ * ++ * Author: Nicolas Pitre ++ * Created: Jun 15, 2001 ++ * Copyright: MontaVista Software Inc. ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * Change Log ++ * 12-Dec-2002 Sharp Corporation for Corgi ++ * 01-Apr-2003 Sharp for Shepherd ++ * ++ * Mar 10, 2004: Lots of changes to port to 2.6 by John Lenz ++ * ++ */ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/device.h> ++#include <linux/major.h> ++#include <linux/fs.h> ++#include <linux/interrupt.h> ++ ++#include <asm/setup.h> ++#include <asm/memory.h> ++#include <asm/mach-types.h> ++#include <asm/hardware.h> ++#include <asm/irq.h> ++ ++#include <asm/mach/arch.h> ++#include <asm/mach/map.h> ++#include <asm/mach/irq.h> ++ ++#include <asm/arch/irq.h> ++#include <asm/arch/corgi.h> ++ ++#include "generic.h" ++ ++static void __init scoop_init(void) ++{ ++ ++#define CORGI_SCP_INIT_DATA(adr,dat) (((adr)<<16)|(dat)) ++#define CORGI_SCP_INIT_DATA_END ((unsigned long)-1) ++ static const unsigned long scp_init[] = ++ { ++ CORGI_SCP_INIT_DATA(CORGI_SCP_MCR,0x0140), // 00 ++ CORGI_SCP_INIT_DATA(CORGI_SCP_MCR,0x0100), ++ CORGI_SCP_INIT_DATA(CORGI_SCP_CDR,0x0000), // 04 ++ CORGI_SCP_INIT_DATA(CORGI_SCP_CPR,0x0000), // 0C ++ CORGI_SCP_INIT_DATA(CORGI_SCP_CCR,0x0000), // 10 ++ CORGI_SCP_INIT_DATA(CORGI_SCP_IMR,0x0000), // 18 ++ CORGI_SCP_INIT_DATA(CORGI_SCP_IRM,0x00FF), // 14 ++ CORGI_SCP_INIT_DATA(CORGI_SCP_ISR,0x0000), // 1C ++ CORGI_SCP_INIT_DATA(CORGI_SCP_IRM,0x0000), ++ CORGI_SCP_INIT_DATA(CORGI_SCP_GPCR,CORGI_SCP_IO_DIR), // 20 ++ CORGI_SCP_INIT_DATA(CORGI_SCP_GPWR,CORGI_SCP_IO_OUT), // 24 ++ CORGI_SCP_INIT_DATA_END ++ }; ++ int i; ++ for(i=0; scp_init[i] != CORGI_SCP_INIT_DATA_END; i++) ++ { ++ int adr = scp_init[i] >> 16; ++ CORGI_SCP_REG(adr) = scp_init[i] & 0xFFFF; ++ } ++} ++ ++static void __init corgi_init_irq(void) ++{ ++ pxa_init_irq(); ++ ++ /* setup extra corgi irqs */ ++ ++ /* i2c initialize */ ++ //i2c_init(); RPP Fixme! ++ ++ /* scoop initialize */ ++ scoop_init(); ++ ++ /* initialize SSP & CS */ ++ /*pxa_ssp_init();*/ ++} ++ ++#if 0 ++static void __init ++fixup_corgi(struct machine_desc *desc, struct param_struct *params, ++ char **cmdline, struct meminfo *mi) ++{ ++#if defined(CONFIG_MACH_SHEPHERD) || defined(CONFIG_MACH_HUSKY) ++ SET_BANK (0, 0xa0000000, 64*1024*1024); ++#else ++ SET_BANK (0, 0xa0000000, 32*1024*1024); ++#endif ++ mi->nr_banks = 1; ++#if defined(CONFIG_BLK_DEV_INITRD) ++ setup_ramdisk (1, 0, 0, 8192); ++ setup_initrd (__phys_to_virt(0xa1000000), 4*1024*1024); ++ ROOT_DEV = MKDEV(RAMDISK_MAJOR,0); ++#elif defined(CONFIG_MTD) ++ ROOT_DEV = MKDEV(31, 0); /* /dev/mtdblock0 */ ++#endif ++ ++#ifdef CONFIG_SHARPSL_BOOTLDR_PARAMS ++ if (params->u1.s.page_size != PAGE_SIZE) { ++ params->u1.s.page_size = PAGE_SIZE; ++ params->u1.s.nr_pages = 32 * 1024 * 1024 / PAGE_SIZE; ++ params->u1.s.ramdisk_size = 0; ++ params->u1.s.flags = FLAG_READONLY | FLAG_RDLOAD | FLAG_RDPROMPT; ++ params->u1.s.rootdev = ROOT_DEV; ++ params->u1.s.initrd_start = 0; ++ params->u1.s.initrd_size = 0; ++ params->u1.s.rd_start = 0; ++ params->u1.s.system_rev = 0; ++ params->u1.s.system_serial_low = 0; ++ params->u1.s.system_serial_high = 0; ++ strcpy(params->commandline, CONFIG_CMDLINE); ++ } ++#endif ++} ++#endif ++ ++static struct map_desc corgi_io_desc[] __initdata = { ++ /* virtual physical length */ ++ { 0xf1000000, 0x08000000, 0x01000000, MT_DEVICE }, /* LCDC (readable for Qt driver) */ ++ { 0xf2000000, 0x10800000, 0x00001000, MT_DEVICE }, /* SCOOP */ ++ { 0xf2100000, 0x0C000000, 0x00001000, MT_DEVICE }, /* Nand Flash */ ++ { 0xef000000, 0x00000000, 0x00800000, MT_DEVICE }, /* Boot Flash */ ++}; ++ ++static void __init corgi_map_io(void) ++{ ++ pxa_map_io(); ++ iotable_init(corgi_io_desc,ARRAY_SIZE(corgi_io_desc)); ++ ++#if 0 ++ /* This enables the BTUART */ ++ CKEN |= CKEN7_BTUART; ++ set_GPIO_mode(GPIO42_BTRXD_MD); ++ set_GPIO_mode(GPIO43_BTTXD_MD); ++ set_GPIO_mode(GPIO44_BTCTS_MD); ++ set_GPIO_mode(GPIO45_BTRTS_MD); ++#endif ++ ++ /* setup sleep mode values */ ++ PWER = 0x00000002; ++ PFER = 0x00000000; ++ PRER = 0x00000002; ++ PGSR0 = 0x0158C000; ++ PGSR1 = 0x00FF0080; ++ PGSR2 = 0x0001C004; ++ PCFR |= PCFR_OPDE; ++} ++ ++#if defined(CONFIG_MACH_SHEPHERD) ++MACHINE_START(SHEPHERD, "SHARP Shepherd") ++#elseif defined(CONFIG_MACH_HUSKY) ++MACHINE_START(HUSKY, "SHARP Husky") ++#else ++MACHINE_START(CORGI, "SHARP Corgi") ++#endif ++ BOOT_MEM(0xa0000000, 0x40000000, io_p2v(0x40000000)) ++#ifdef CONFIG_SHARPSL_BOOTLDR_PARAMS ++ BOOT_PARAMS(0xa0000100) ++#endif ++/* FIXUP(fixup_corgi)*/ ++ MAPIO(corgi_map_io) ++ INITIRQ(corgi_init_irq) ++MACHINE_END +diff -uNr linux-2.6.5-orig/arch/arm/mach-pxa/leds-corgi.c linux-2.6.5/arch/arm/mach-pxa/leds-corgi.c +--- linux-2.6.5-orig/arch/arm/mach-pxa/leds-corgi.c 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.5/arch/arm/mach-pxa/leds-corgi.c 2004-06-14 20:33:19.000000000 +0100 +@@ -0,0 +1,135 @@ ++/* ++ * linux/arch/arm/mach-pxa/leds-corgi.c ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ * Copied from arch/arm/mach-sa1100/leds-collie.c ++ * ChangeLog: ++ * - John Lenz <4/27/04> - added support for new locomo device model ++ */ ++ ++#include <linux/config.h> ++#include <linux/init.h> ++#include <linux/device.h> ++ ++#include <asm/hardware.h> ++#include <asm/hardware/locomo.h> ++#include <asm/leds.h> ++#include <asm/system.h> ++ ++#include "leds.h" ++ ++#define LED_STATE_ENABLED 1 ++#define LED_STATE_CLAIMED 2 ++ ++static struct locomo_dev *locomo_dev = NULL; ++static unsigned int led_state; ++static unsigned int hw_led0_state = 0; ++static unsigned int hw_led1_state = 0; ++ ++#define LED_ONOFF_MASK (LOCOMO_LPT_TOFL|LOCOMO_LPT_TOFH) ++#define LED_OFF(REG) ((REG)|=LOCOMO_LPT_TOFL) ++#define LED_ON(REG) ((REG)=((REG)&~LED_ONOFF_MASK)|LOCOMO_LPT_TOFH) ++#define LED_FLIP(REG) ((REG)^=LED_ONOFF_MASK) ++ ++void corgi_leds_event(led_event_t evt) ++{ ++ unsigned long flags; ++ ++ local_irq_save(flags); ++ ++ switch (evt) { ++ case led_start: ++ led_state = LED_STATE_ENABLED; ++ LED_ON(hw_led0_state); ++ LED_ON(hw_led1_state); ++ break; ++ ++ case led_stop: ++ led_state &= ~LED_STATE_ENABLED; ++ break; ++ ++ case led_claim: ++ led_state |= LED_STATE_CLAIMED; ++ LED_ON(hw_led0_state); ++ LED_ON(hw_led1_state); ++ break; ++ ++ case led_release: ++ led_state &= ~LED_STATE_CLAIMED; ++ LED_ON(hw_led0_state); ++ LED_ON(hw_led1_state); ++ break; ++ ++#ifdef CONFIG_LEDS_TIMER ++ case led_timer: ++ if (!(led_state & LED_STATE_CLAIMED)) { ++ LED_FLIP(hw_led0_state); ++ } ++ break; ++#endif ++ ++#ifdef CONFIG_LEDS_CPU ++ case led_idle_start: ++ /* LED off when system is idle */ ++ if (!(led_state & LED_STATE_CLAIMED)) ++ LED_OFF(hw_led1_state); ++ break; ++ ++ case led_idle_end: ++ if (!(led_state & LED_STATE_CLAIMED)) ++ LED_ON(hw_led1_state); ++ break; ++#endif ++ ++ default: ++ break; ++ } ++ ++ ++ if (locomo_dev && led_state & LED_STATE_ENABLED) { ++ locomo_writel(hw_led0_state, locomo_dev->mapbase + LOCOMO_LPT0); ++ locomo_writel(hw_led1_state, locomo_dev->mapbase + LOCOMO_LPT1); ++ } ++ ++ local_irq_restore(flags); ++} ++ ++static int corgiled_probe(struct locomo_dev *dev) { ++ /* set up the initial led states, since due to the init order, ++ * corgi_leds_event(led_start) might have been called before this */ ++ /*if (led_state & LED_STATE_ENABLED) { ++ //LCM_LPT0 = hw_led0_state; ++ locomo_writel(hw_led0_state, dev->mapbase + LOCOMO_LPT0); ++ //LCM_LPT1 = hw_led1_state; ++ locomo_writel(hw_led1_state, dev->mapbase + LOCOMO_LPT1); ++ }*/ ++ locomo_dev = dev; ++ return 0; ++} ++ ++static int corgiled_remove(struct locomo_dev *dev) { ++ locomo_dev = NULL; ++ return 0; ++} ++ ++static struct locomo_driver corgiled_driver = { ++ .drv = { ++ .name = "locomoled" ++ }, ++ .devid = LOCOMO_DEVID_LED, ++ .probe = corgiled_probe, ++ .remove = corgiled_remove, ++}; ++ ++static int __init corgiled_init(void) { ++ return locomo_driver_register(&corgiled_driver); ++} ++ ++device_initcall(corgiled_init); ++ ++MODULE_AUTHOR("John Lenz <jelenz@wisc.edu>"); ++MODULE_DESCRIPTION("LoCoMo Corgi LED driver"); ++MODULE_LICENSE("GPL"); +diff -uNr linux-2.6.5-orig/arch/arm/mach-pxa/leds.c linux-2.6.5/arch/arm/mach-pxa/leds.c +--- linux-2.6.5-orig/arch/arm/mach-pxa/leds.c 2004-06-14 20:31:54.000000000 +0100 ++++ linux-2.6.5/arch/arm/mach-pxa/leds.c 2004-06-14 20:33:06.000000000 +0100 +@@ -24,7 +24,8 @@ + leds_event = idp_leds_event; + if (machine_is_poodle()) + leds_event = poodle_leds_event; +- ++ if (machine_is_corgi()) ++ leds_event = corgi_leds_event; + leds_event(led_start); + return 0; + } +diff -uNr linux-2.6.5-orig/arch/arm/mach-pxa/leds.h linux-2.6.5/arch/arm/mach-pxa/leds.h +--- linux-2.6.5-orig/arch/arm/mach-pxa/leds.h 2004-06-14 20:31:54.000000000 +0100 ++++ linux-2.6.5/arch/arm/mach-pxa/leds.h 2004-06-14 20:33:06.000000000 +0100 +@@ -10,3 +10,4 @@ + extern void lubbock_leds_event(led_event_t evt); + extern void idp_leds_event(led_event_t evt); + extern void poodle_leds_event(led_event_t evt); ++extern void corgi_leds_event(led_event_t evt); +diff -uNr linux-2.6.5-orig/arch/arm/tools/mach-types linux-2.6.5/arch/arm/tools/mach-types +--- linux-2.6.5-orig/arch/arm/tools/mach-types 2004-06-14 20:31:55.000000000 +0100 ++++ linux-2.6.5/arch/arm/tools/mach-types 2004-06-14 20:33:06.000000000 +0100 +@@ -485,3 +485,4 @@ + vr1000 MACH_VR1000 VR1000 475 + deisterpxa MACH_DEISTERPXA DEISTERPXA 476 + bcm1160 MACH_BCM1160 BCM1160 477 ++husky MACH_HUSKY HUSKY 478 +\ No newline at end of file +diff -uNr linux-2.6.5-orig/drivers/serial/8250.c linux-2.6.5/drivers/serial/8250.c +--- linux-2.6.5-orig/drivers/serial/8250.c 2004-06-14 20:31:55.000000000 +0100 ++++ linux-2.6.5/drivers/serial/8250.c 2004-06-14 20:33:06.000000000 +0100 +@@ -169,7 +169,8 @@ + { "ST16654", 64, UART_CLEAR_FIFO | UART_USE_FIFO | UART_STARTECH }, + { "XR16850", 128, UART_CLEAR_FIFO | UART_USE_FIFO | UART_STARTECH }, + { "RSA", 2048, UART_CLEAR_FIFO | UART_USE_FIFO }, +- { "NS16550A", 16, UART_CLEAR_FIFO | UART_USE_FIFO | UART_NATSEMI } ++ { "NS16550A", 16, UART_CLEAR_FIFO | UART_USE_FIFO | UART_NATSEMI }, ++ { "XScale", 32, UART_CLEAR_FIFO | UART_USE_FIFO }, + }; + + static _INLINE_ unsigned int serial_in(struct uart_8250_port *up, int offset) +@@ -1499,6 +1500,8 @@ + up->ier &= ~UART_IER_MSI; + if (UART_ENABLE_MS(&up->port, termios->c_cflag)) + up->ier |= UART_IER_MSI; ++ if (up->port.type == PORT_XSCALE) ++ up->ier |= UART_IER_UUE | UART_IER_RTOIE; + + serial_out(up, UART_IER, up->ier); + +@@ -1930,7 +1933,11 @@ + * First save the UER then disable the interrupts + */ + ier = serial_in(up, UART_IER); +- serial_out(up, UART_IER, 0); ++ ++ if (up->port.type == PORT_XSCALE) ++ serial_out(up, UART_IER, UART_IER_UUE); ++ else ++ serial_out(up, UART_IER, 0); + + /* + * Now, do each character +diff -uNr linux-2.6.5-orig/include/asm-arm/arch-pxa/corgi.h linux-2.6.5/include/asm-arm/arch-pxa/corgi.h +--- linux-2.6.5-orig/include/asm-arm/arch-pxa/corgi.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-2.6.5/include/asm-arm/arch-pxa/corgi.h 2004-06-14 20:33:19.000000000 +0100 +@@ -0,0 +1,219 @@ ++/* ++ * linux/include/asm-arm/arch-pxa/corgi.h ++ * ++ * (C) Copyright 2001 Lineo Japan, Inc. ++ * ++ * May be copied or modified under the terms of the GNU General Public ++ * License. See linux/COPYING for more information. ++ * ++ * Based on: ++ * ++ * linux/include/asm-arm/arch-sa1100/collie.h ++ * ++ * This file contains the hardware specific definitions for Collie ++ * ++ * (C) Copyright 2001 Lineo Japan, Inc. ++ * ++ * May be copied or modified under the terms of the GNU General Public ++ * License. See linux/COPYING for more information. ++ * ++ * ChangeLog: ++ * 04-06-2001 Lineo Japan, Inc. ++ * 04-16-2001 SHARP Corporation ++ * ++ * Mar 10, 2004: Updates to 2.6 by John Lenz ++ */ ++#ifndef __ASM_ARCH_CORGI_H ++#define __ASM_ARCH_CORGI_H 1 ++ ++/* ++ * LCDC internal I/O mappings ++ * ++ * We have the following mapping: ++ * phys virt ++ * 08000000 f1000000 ++ */ ++ ++ ++ ++/* ++ * SCOOP internal I/O mappings ++ * ++ * We have the following mapping: ++ * phys virt ++ * 10800000 f2000000 ++ */ ++ ++ ++#define CF_BUF_CTRL_BASE 0xF2000000 ++ ++#define CORGI_SCP_REG(adr) (*(volatile unsigned short*)(CF_BUF_CTRL_BASE+(adr))) ++ ++#define CORGI_SCP_MCR 0x00 ++#define CORGI_SCP_CDR 0x04 ++#define CORGI_SCP_CSR 0x08 ++#define CORGI_SCP_CPR 0x0C ++#define CORGI_SCP_CCR 0x10 ++#define CORGI_SCP_IRR 0x14 ++#define CORGI_SCP_IRM 0x14 ++#define CORGI_SCP_IMR 0x18 ++#define CORGI_SCP_ISR 0x1C ++#define CORGI_SCP_GPCR 0x20 ++#define CORGI_SCP_GPWR 0x24 ++#define CORGI_SCP_GPRR 0x28 ++#define CORGI_SCP_REG_MCR CORGI_SCP_REG(CORGI_SCP_MCR) ++#define CORGI_SCP_REG_CDR CORGI_SCP_REG(CORGI_SCP_CDR) ++#define CORGI_SCP_REG_CSR CORGI_SCP_REG(CORGI_SCP_CSR) ++#define CORGI_SCP_REG_CPR CORGI_SCP_REG(CORGI_SCP_CPR) ++#define CORGI_SCP_REG_CCR CORGI_SCP_REG(CORGI_SCP_CCR) ++#define CORGI_SCP_REG_IRR CORGI_SCP_REG(CORGI_SCP_IRR) ++#define CORGI_SCP_REG_IRM CORGI_SCP_REG(CORGI_SCP_IRM) ++#define CORGI_SCP_REG_IMR CORGI_SCP_REG(CORGI_SCP_IMR) ++#define CORGI_SCP_REG_ISR CORGI_SCP_REG(CORGI_SCP_ISR) ++#define CORGI_SCP_REG_GPCR CORGI_SCP_REG(CORGI_SCP_GPCR) ++#define CORGI_SCP_REG_GPWR CORGI_SCP_REG(CORGI_SCP_GPWR) ++#define CORGI_SCP_REG_GPRR CORGI_SCP_REG(CORGI_SCP_GPRR) ++ ++#define CORGI_SCP_GPCR_PA22 ( 1 << 12 ) ++#define CORGI_SCP_GPCR_PA21 ( 1 << 11 ) ++#define CORGI_SCP_GPCR_PA20 ( 1 << 10 ) ++#define CORGI_SCP_GPCR_PA19 ( 1 << 9 ) ++#define CORGI_SCP_GPCR_PA18 ( 1 << 8 ) ++#define CORGI_SCP_GPCR_PA17 ( 1 << 7 ) ++#define CORGI_SCP_GPCR_PA16 ( 1 << 6 ) ++#define CORGI_SCP_GPCR_PA15 ( 1 << 5 ) ++#define CORGI_SCP_GPCR_PA14 ( 1 << 4 ) ++#define CORGI_SCP_GPCR_PA13 ( 1 << 3 ) ++#define CORGI_SCP_GPCR_PA12 ( 1 << 2 ) ++#define CORGI_SCP_GPCR_PA11 ( 1 << 1 ) ++ ++ ++/* ++ * GPIOs ++ */ ++#define CORGI_SCP_LED_GREEN CORGI_SCP_GPCR_PA11 ++#define CORGI_SCP_SWA CORGI_SCP_GPCR_PA12 ++#define CORGI_SCP_SWB CORGI_SCP_GPCR_PA13 ++#define CORGI_SCP_MUTE_L CORGI_SCP_GPCR_PA14 ++#define CORGI_SCP_MUTE_R CORGI_SCP_GPCR_PA15 ++#define CORGI_SCP_AKIN_PULLUP CORGI_SCP_GPCR_PA16 ++#define CORGI_SCP_APM_ON CORGI_SCP_GPCR_PA17 ++#define CORGI_SCP_BACKLIGHT_CONT CORGI_SCP_GPCR_PA18 ++#define CORGI_SCP_MIC_BIAS CORGI_SCP_GPCR_PA19 ++ ++ ++#define CORGI_SCP_IO_DIR ( CORGI_SCP_LED_GREEN | CORGI_SCP_MUTE_L | CORGI_SCP_MUTE_R | \ ++ CORGI_SCP_AKIN_PULLUP | CORGI_SCP_APM_ON | CORGI_SCP_BACKLIGHT_CONT | \ ++ CORGI_SCP_MIC_BIAS ) ++#define CORGI_SCP_IO_OUT ( CORGI_SCP_MUTE_L | CORGI_SCP_MUTE_R ) ++#define CORGI_GPIO_CO 16 ++ ++ ++/* ++ * Flash Memory mappings ++ * ++ * We have the following mapping: ++ * phys virt ++ * boot ROM 00000000 ef000000 ++ * NAND Flash 0C000000 f2100000 ++ */ ++#define NAND_FLASH_REG_BASE 0xf2100000 ++#define CORGI_CPLD_REG(ofst) (*(volatile unsigned char*)(NAND_FLASH_REG_BASE+(ofst))) ++ ++/* register offset */ ++#define CORGI_ECCLPLB 0x00 /* line parity 7 - 0 bit */ ++#define CORGI_ECCLPUB 0x04 /* line parity 15 - 8 bit */ ++#define CORGI_ECCCP 0x08 /* column parity 5 - 0 bit */ ++#define CORGI_ECCCNTR 0x0C /* ECC byte counter */ ++#define CORGI_ECCCLRR 0x10 /* cleare ECC */ ++#define CORGI_FLASHIO 0x14 /* Flash I/O */ ++#define CORGI_FLASHCTL 0x18 /* Flash Control */ ++ ++/* Flash control bit */ ++#define CORGI_FLRYBY (1 << 5) ++#define CORGI_FLCE1 (1 << 4) ++#define CORGI_FLWP (1 << 3) ++#define CORGI_FLALE (1 << 2) ++#define CORGI_FLCLE (1 << 1) ++#define CORGI_FLCE0 (1 << 0) ++ ++ ++ ++ ++/* ++CORGI_ * LED ++ */ ++#define CORGI_GPIO_LED_ORANGE (13) ++//#define CORGI_SCP_LED_GREEN CORGI_SCP_GPCR_PA11 ++ ++ ++/* ++ * GPIOs ++ */ ++/* PXA GPIOs */ ++#define CORGI_GPIO_KEY_INT (0) /* key interrupt */ ++#define CORGI_GPIO_AC_IN (1) ++#define CORGI_GPIO_TP_INT (5) /* Touch Panel interrupt */ ++#define CORGI_GPIO_WAKEUP (3) ++#define CORGI_GPIO_IR_ON (22) ++#define CORGI_GPIO_AK_INT (4) // Remote Controller ++#define CORGI_GPIO_HP_IN GPIO_AK_INT ++#define CORGI_GPIO_CF_IRQ (17) ++//#define CORGI_GPIO_CF_PRDY (17) ++#define CORGI_GPIO_LED_ORANGE (13) ++#define CORGI_GPIO_CF_CD (14) ++#define CORGI_GPIO_SD_PWR (33) ++#define CORGI_GPIO_nSD_CLK (6) ++#define CORGI_GPIO_nSD_WP (7) ++#define CORGI_GPIO_nSD_INT (10) ++#define CORGI_GPIO_nSD_DETECT (9) ++#define CORGI_GPIO_MAIN_BAT_LOW (11) ++#define CORGI_GPIO_BAT_COVER (11) ++#define CORGI_GPIO_ADC_TEMP_ON (21) ++#define CORGI_GPIO_CHRG_ON (38) ++#define CORGI_GPIO_CHRG_FULL (16) ++#define CORGI_GPIO_USB_PULLUP (45) ++#define CORGI_GPIO_HSYNC (44) ++ ++/* KeyBoard */ ++#define CORGI_KEY_STROBE_NUM (12) ++#define CORGI_KEY_SENSE_NUM (8) ++#define CORGI_GPIO_ALL_STROBE_BIT (0x00003ffc) ++#define CORGI_GPIO_HIGH_SENSE_BIT (0xfc000000) ++#define CORGI_GPIO_HIGH_SENSE_RSHIFT (26) ++#define CORGI_GPIO_LOW_SENSE_BIT (0x00000003) ++#define CORGI_GPIO_LOW_SENSE_LSHIFT (6) ++#define CORGI_GPIO_STROBE_BIT(a) GPIO_bit(66+(a)) ++#define CORGI_GPIO_SENSE_BIT(a) GPIO_bit(58+(a)) ++#define CORGI_GAFR_ALL_STROBE_BIT (0x0ffffff0) ++#define CORGI_GAFR_HIGH_SENSE_BIT (0xfff00000) ++#define CORGI_GAFR_LOW_SENSE_BIT (0x0000000f) ++#define CORGI_GPIO_KEY_SENSE(a) (58+(a)) ++ ++ ++/* ++ * Interrupts ++ */ ++/* PXA GPIOs */ ++#define CORGI_IRQ_GPIO_KEY_INT IRQ_GPIO(0) ++#define CORGI_IRQ_GPIO_AC_IN IRQ_GPIO(1) ++#define CORGI_IRQ_GPIO_AK_INT IRQ_GPIO(4) ++#define CORGI_IRQ_GPIO_HP_IN IRQ_GPIO_AK_INT ++#define CORGI_IRQ_GPIO_TP_INT IRQ_GPIO(5) ++#define CORGI_IRQ_GPIO_WAKEUP IRQ_GPIO(3) ++#define CORGI_IRQ_GPIO_CO IRQ_GPIO(16) ++#define CORGI_IRQ_GPIO_CF_IRQ IRQ_GPIO(17) ++#define CORGI_IRQ_GPIO_CF_CD IRQ_GPIO(14) ++#define CORGI_IRQ_GPIO_nSD_INT IRQ_GPIO(10) ++#define CORGI_IRQ_GPIO_nSD_DETECT IRQ_GPIO(9) ++#define CORGI_IRQ_GPIO_MAIN_BAT_LOW IRQ_GPIO(11) ++#define CORGI_IRQ_GPIO_KEY_SENSE(a) IRQ_GPIO(58+(a)) ++ ++ ++// CS ++#define CORGI_CS_MAX1111 1 ++#define CORGI_CS_ADS7846 2 ++#define CORGI_CS_LZ9JG18 3 ++ ++#endif /* __ASM_ARCH_CORGI_H */ ++ +diff -uNr linux-2.6.5-orig/include/asm-arm/thread_info.h linux-2.6.5/include/asm-arm/thread_info.h +--- linux-2.6.5-orig/include/asm-arm/thread_info.h 2004-06-14 20:31:55.000000000 +0100 ++++ linux-2.6.5/include/asm-arm/thread_info.h 2004-06-14 20:33:06.000000000 +0100 +@@ -108,8 +108,8 @@ + #define TI_CPU 20 + #define TI_CPU_DOMAIN 24 + #define TI_CPU_SAVE 28 +-#define TI_USED_MATH 76 +-#define TI_FPSTATE (TI_USED_MATH+16) ++#define TI_USED_CP 76 ++#define TI_FPSTATE (TI_USED_CP+16) + + #endif + +diff -uNr linux-2.6.5-orig/include/linux/serial_core.h linux-2.6.5/include/linux/serial_core.h +--- linux-2.6.5-orig/include/linux/serial_core.h 2004-06-14 20:31:56.000000000 +0100 ++++ linux-2.6.5/include/linux/serial_core.h 2004-06-14 20:33:06.000000000 +0100 +@@ -38,7 +38,8 @@ + #define PORT_16850 12 + #define PORT_RSA 13 + #define PORT_NS16550A 14 +-#define PORT_MAX_8250 14 /* max port ID */ ++#define PORT_XSCALE 15 ++#define PORT_MAX_8250 15 /* max port ID */ + + /* + * ARM specific type numbers. These are not currently guaranteed +diff -uNr linux-2.6.5-orig/include/linux/serial_reg.h linux-2.6.5/include/linux/serial_reg.h +--- linux-2.6.5-orig/include/linux/serial_reg.h 2004-06-14 20:31:56.000000000 +0100 ++++ linux-2.6.5/include/linux/serial_reg.h 2004-06-14 20:33:06.000000000 +0100 +@@ -141,7 +141,7 @@ + #define UART_MSR_ANY_DELTA 0x0F /* Any of the delta bits! */ + + /* +- * The Intel PXA2xx chip defines those bits ++ * The Intel XScale on-chip UARTs define these bits + */ + #define UART_IER_DMAE 0x80 /* DMA Requests Enable */ + #define UART_IER_UUE 0x40 /* UART Unit Enable */ +diff -uNr linux-2.6.5-orig/arch/arm/boot/Makefile linux-2.6.5/arch/arm/boot/Makefile +--- linux-2.6.5-orig/arch/arm/boot/Makefile 2004-04-04 04:36:18.000000000 +0100 ++++ linux-2.6.5/arch/arm/boot/Makefile 2004-06-14 21:36:21.000000000 +0100 +@@ -69,6 +69,8 @@ + ZBSSADDR := ALIGN(4) + endif + ++OBJCOPYFLAGS_zImage := --pad-to `(arm-linux-readelf -l arch/arm/boot/compressed/vmlinux | grep LOAD | awk '{ print $$6 }')` ++ + export ZTEXTADDR ZBSSADDR ZRELADDR INITRD_PHYS PARAMS_PHYS + + targets := Image zImage bootpImage |