You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(26) |
Sep
(22) |
Oct
(55) |
Nov
(24) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(68) |
Feb
(85) |
Mar
(54) |
Apr
(12) |
May
(52) |
Jun
(75) |
Jul
(116) |
Aug
(71) |
Sep
(54) |
Oct
|
Nov
(2) |
Dec
|
From: <bob...@us...> - 2007-07-22 02:48:54
|
Revision: 1195 http://svn.sourceforge.net/hackndev/?rev=1195&view=rev Author: bobofdoom Date: 2007-07-21 19:48:49 -0700 (Sat, 21 Jul 2007) Log Message: ----------- L4P: pxa27x_keyboard: Added missed commit of debounce_ms option. Modified Paths: -------------- linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa27x_keyboard.h Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa27x_keyboard.h =================================================================== --- linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa27x_keyboard.h 2007-07-22 02:47:01 UTC (rev 1194) +++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/pxa27x_keyboard.h 2007-07-22 02:48:49 UTC (rev 1195) @@ -7,4 +7,5 @@ int nr_rows, nr_cols; int keycodes[PXAKBD_MAXROW][PXAKBD_MAXCOL]; int gpio_modes[PXAKBD_MAXROW + PXAKBD_MAXCOL]; + int debounce_ms; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-22 02:47:05
|
Revision: 1194 http://svn.sourceforge.net/hackndev/?rev=1194&view=rev Author: bobofdoom Date: 2007-07-21 19:47:01 -0700 (Sat, 21 Jul 2007) Log Message: ----------- Cocoboot: Added memory tracing. * Adapted IRQ trace code to work for tracing memory accesses. * Added option to dump trace log to a file. * Added primitive log parsing script. Modified Paths: -------------- cocoboot/trunk/arm/debug.c cocoboot/trunk/include/cocoboot.rcp cocoboot/trunk/include/cocoboot_r.h cocoboot/trunk/m68k/mainform.c Added Paths: ----------- cocoboot/trunk/tools/traceparse.py Modified: cocoboot/trunk/arm/debug.c =================================================================== --- cocoboot/trunk/arm/debug.c 2007-07-21 12:34:07 UTC (rev 1193) +++ cocoboot/trunk/arm/debug.c 2007-07-22 02:47:01 UTC (rev 1194) @@ -81,17 +81,20 @@ *dest++ = *src++; /* replace PalmOS handler with our own */ - IRQH = buf; + //IRQH = buf; DATAH = dataoffset; + + *((UInt32**)0x64) = dest; + *((UInt32**)0x68) = dest; set_DBCON(0); /* disable debugging */ - set_DBR0(0x90100000); - set_DBR1(0xffffffff); + set_DBR0(0x90100000); /* this is the address we want to monitor */ + set_DBR1(0x00000000); /* this is the mask (0 = compare bit, 1 = ignore bit) */ + set_DBCON(2 | 1<<8); /* enable DBR0, both load and store */ set_DCSR(1<<31); /* global enable */ - set_DBCON(2); /* enable DBR0, both load and store */ // return *(volatile UInt32*)0x90100000; - return (UInt32)dataoffset; + return dest; //(UInt32)dataoffset; } void irqhandler() { @@ -99,7 +102,6 @@ asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); - /* Backup register values */ #if 0 asm volatile ("str r0, REG0"); @@ -128,7 +130,22 @@ asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); - + //asm volatile ("stmdb sp!, {r14}"); /* save r14 */ + //asm volatile ("mov r14, #0"); + + //asm volatile ("mrc p15, 0, r14, c10, c0, 0");/* DCSR */ + //asm volatile ("and r14, r14, #28"); /* get method of entry */ + //asm volatile ("cmp r14, #8"); /* data breakpoint? */ + //asm volatile ("bne runaway"); /* data breakpoint? */ + //asm volatile ("goof: b goof"); /* data breakpoint? */ + //asm volatile ("runaway:ldmia sp!, {r14}"); + //asm volatile ("mov r0, #0x30000001"); + //asm volatile ("mov r1, #0x30000002"); + //asm volatile ("mov r2, #0x30000003"); + //asm volatile ("mov r3, #0x30000004"); + //asm volatile ("mov r4, #0x30000005"); + //asm volatile ("mov r5, #0x30000006"); + //asm volatile ("subs pc,r14,#4"); /* return to sender */ #if 0 asm volatile ("stmdb sp!, {r14}"); /* save r14 */ asm volatile ("mrc p15, 0, r14, c10, c0, 0");/* DCSR */ @@ -148,54 +165,60 @@ /* Store the values of r0 and r1 so we can get them * without messing with the stack. */ - asm volatile ("str r0, [pc, #(Reg0 - . - 8)]"); - asm volatile ("str r1, [pc, #(Reg1 - . - 8)]"); -// asm volatile ("mov r1, #0"); + + asm volatile ("stmdb sp!, {r14}"); /* save r14 */ + asm volatile ("stmdb sp!, {r12}"); /* save r12 */ - /* grab the next free spot in the buffer */ -// asm volatile ("ldr r1, [pc, #(DumpOffset - . - 8)]"); -#if 0 - asm volatile ("pcgrab: add r1, r1, pc"); - asm volatile ("add r1, r1, #(HandlersEnd - pcgrab + 8)"); - - /* store "1" to indicate this is a data breakpoint */ - asm volatile ("mov r0, #1"); - asm volatile ("str r0, [r1]"); - asm volatile ("add r1, r1, #4"); + asm volatile ("mov r12, r14"); /* copy return addr */ - /* lets save the address of the instruction we broken, as well - * as the instruction itself. - */ - asm volatile ("sub r0, r14, #8"); - asm volatile ("str r0, [r1]"); - asm volatile ("ldr r0, [r0]"); - asm volatile ("str r0, [r1, #4]"); - asm volatile ("add r1, r1, #8"); - - /* now lets start saving registers, first the tricky ones */ - asm volatile ("ldr r0, [pc, #(Reg0 - . - 8)]"); - asm volatile ("str r0, [r1]"); - asm volatile ("ldr r0, [pc, #(Reg1 - . - 8)]"); - asm volatile ("str r0, [r1, #4]"); - asm volatile ("add r1, r1, #8"); - - /* now the rest */ - asm volatile ("str r2, [r1]"); - asm volatile ("str r3, [r1, #4]"); - asm volatile ("str r4, [r1, #8]"); - asm volatile ("str r5, [r1, #0xc]"); - asm volatile ("str r6, [r1, #0x10]"); - asm volatile ("str r7, [r1, #0x14]"); - asm volatile ("str r8, [r1, #0x18]"); - asm volatile ("str r9, [r1, #0x1c]"); - asm volatile ("str r10, [r1, #0x20]"); - asm volatile ("str r11, [r1, #0x24]"); - asm volatile ("str r12, [r1, #0x28]"); - asm volatile ("add r1, r1, #0x2c"); - - /* save our buffer pointer */ - asm volatile ("str r1, [pc, #(DumpOffset - . - 8)]"); -#endif + asm volatile ("mcr p15, 0, %0, c3, c0, 0" : : "r"(0xffffffff)); + + + asm volatile ("mov r14, #0x00000064"); + asm volatile ("orr r14, r14, #0x00000000"); + + asm volatile ("ldr r14, [r14]"); + + /* store some sort of start of frame marker */ + asm volatile ("stmdb sp!, {r12}"); /* save r12 */ + asm volatile ("mov r12, #0x00034"); + asm volatile ("orr r12, r12, #0x1200"); + asm volatile ("str r12, [r14]"); + asm volatile ("ldmia sp!, {r12}"); /* restore r12, this gets us back out return addr */ + + /* save location of read/write instruction */ + asm volatile ("subs r12, r12, #8"); + asm volatile ("str r12, [r14, #0x38]"); + + /* now save the actual instruction itself */ + //asm volatile ("ldr r12, [r12]"); + //asm volatile ("str r12, [r14, #0x3c]"); + + asm volatile ("ldmia sp!, {r12}"); /* restore r12 again, now real value */ + + /* now store all our registers */ + asm volatile ("str r0, [r14, #0x4]"); + asm volatile ("str r1, [r14, #0x8]"); + asm volatile ("str r2, [r14, #0xc]"); + asm volatile ("str r3, [r14, #0x10]"); + asm volatile ("str r4, [r14, #0x14]"); + asm volatile ("str r5, [r14, #0x18]"); + asm volatile ("str r6, [r14, #0x1c]"); + asm volatile ("str r7, [r14, #0x20]"); + asm volatile ("str r8, [r14, #0x24]"); + asm volatile ("str r9, [r14, #0x28]"); + asm volatile ("str r10, [r14, #0x2c]"); + asm volatile ("str r11, [r14, #0x30]"); + asm volatile ("str r12, [r14, #0x34]"); + + /* increment the pointer */ + asm volatile ("mov r0, #0x40"); + asm volatile ("add r14, r14, r0"); + asm volatile ("mov r0, #0x64"); + asm volatile ("str r14, [r0]"); + + asm volatile ("ldmia sp!, {r14}"); + /* Restore everything we clobbered */ asm volatile ("ldmia sp!, {r0-r12}"); @@ -210,8 +233,8 @@ asm volatile ("OldDataAbort: .word 0x200a3370"); #endif - asm volatile ("Reg0: .word 0"); - asm volatile ("Reg1: .word 0"); + asm volatile ("Rego0: .word 0"); + asm volatile ("Rego1: .word 0"); asm volatile ("DumpOffset: .word 0"); asm volatile ("HandlersEnd: .word 0"); } Modified: cocoboot/trunk/include/cocoboot.rcp =================================================================== --- cocoboot/trunk/include/cocoboot.rcp 2007-07-21 12:34:07 UTC (rev 1193) +++ cocoboot/trunk/include/cocoboot.rcp 2007-07-22 02:47:01 UTC (rev 1194) @@ -33,7 +33,8 @@ END PULLDOWN "Trace" BEGIN - MENUITEM "IRQ trace" MenuItemStartIrqTrace + MENUITEM "Start trace" MenuItemStartIrqTrace + MENUITEM "Dump log" MenuItemDumpTraceLog END END Modified: cocoboot/trunk/include/cocoboot_r.h =================================================================== --- cocoboot/trunk/include/cocoboot_r.h 2007-07-21 12:34:07 UTC (rev 1193) +++ cocoboot/trunk/include/cocoboot_r.h 2007-07-22 02:47:01 UTC (rev 1194) @@ -17,6 +17,7 @@ #define MenuItemDumpMMU 1005 #define MenuItemConsole 1006 #define MenuItemStartIrqTrace 1007 +#define MenuItemDumpTraceLog 1008 #define ErrorAlert 1000 #define InfoAlert 1001 Modified: cocoboot/trunk/m68k/mainform.c =================================================================== --- cocoboot/trunk/m68k/mainform.c 2007-07-21 12:34:07 UTC (rev 1193) +++ cocoboot/trunk/m68k/mainform.c 2007-07-22 02:47:01 UTC (rev 1194) @@ -214,6 +214,56 @@ } } +/* find some random volume to save to */ +UInt16 find_some_vol(void) +{ + UInt32 it; + UInt16 vn = 0; + it = vfsIteratorStart; + VFSVolumeEnumerate (&vn, &it); + return vn; +} + +/* dump our memory trace log to the memory card + * TODO: make this safe when no trace has been run. + */ +void dump_trace_log(void) +{ + FileRef f = 0; + UInt16 vn = find_some_vol(); + UInt32 *log = (UInt32*)EndianFix32(*(UInt32*)(0x68)); + UInt32 *end = (UInt32*)EndianFix32(*(UInt32*)(0x64)); + UInt32 val; + Err err; + char buf[256]; + UInt32 bigbuf[100]; + UInt32 i; + + sprintf(buf, "Log: log=%lx end=%lx blocks=%lx", log, end, end-log); + FrmCustomAlert(InfoAlert, "Dumping...", buf, " "); + err = VFSFileOpen (vn, "/cocoboot.trc", vfsModeWrite | vfsModeCreate, &f); + if (err != errNone) goto error1; + + while (log < end) { + /* lets do a bunch at a time for speed */ + for (i=0; i < sizeof(bigbuf)/sizeof(UInt32) && log < end; i++) { + bigbuf[i] = *log; + log++; + } + err = VFSFileWrite(f, i*sizeof(UInt32), bigbuf, NULL); + if (err != errNone) goto error2; + } + + VFSFileClose (f); + FrmCustomAlert(InfoAlert, "Trace log dumped to /cocoboot.trc.", " ", " "); + return; + +error2: + VFSFileClose (f); +error1: + FrmCustomAlert(InfoAlert, "Error writing to /cocoboot.memtrace.", " ", " "); +} + UInt32 load_parts(int n, char *name, void **image) { /* more ugly code... */ @@ -350,6 +400,9 @@ case MenuItemStartIrqTrace: start_irq_trace(); return true; + case MenuItemDumpTraceLog: + dump_trace_log(); + return true; } return false; } Added: cocoboot/trunk/tools/traceparse.py =================================================================== --- cocoboot/trunk/tools/traceparse.py (rev 0) +++ cocoboot/trunk/tools/traceparse.py 2007-07-22 02:47:01 UTC (rev 1194) @@ -0,0 +1,27 @@ +#!/usr/bin/env python +import struct +import sys +if len(sys.argv) < 2: + print 'Usage: %s cocoboot.trc' % sys.argv[0] + print 'Decodes a raw cocoboot trace dump file' + sys.exit(-1) + +f = file(sys.argv[1], 'rb') +while 1: + data = f.read(16*4) + if not data: break + + words = struct.unpack('<16I', data) + for i, w in zip(range(len(words)), words): + s = str(struct.pack('<I', w)) + if i == 0: + reg = ' ' + elif i == 14: + reg = 'PC ' + elif i == 15: + reg = ' ' + else: + reg = 'r%-2d' % (i-1) + print '%s = %08x %-10d %s' % (reg, w,w, repr(s)) + print '-' * 20 + print Property changes on: cocoboot/trunk/tools/traceparse.py ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-21 12:34:10
|
Revision: 1193 http://svn.sourceforge.net/hackndev/?rev=1193&view=rev Author: bobofdoom Date: 2007-07-21 05:34:07 -0700 (Sat, 21 Jul 2007) Log Message: ----------- Cocoboot: Dug up some old debugger / IRQ tracing code out of the closet. Modified Paths: -------------- cocoboot/trunk/arm/Makefile cocoboot/trunk/arm/arm.c cocoboot/trunk/include/arm.h cocoboot/trunk/include/cocoboot.rcp cocoboot/trunk/include/cocoboot_r.h cocoboot/trunk/include/shared.h cocoboot/trunk/m68k/mainform.c Added Paths: ----------- cocoboot/trunk/arm/debug.c Modified: cocoboot/trunk/arm/Makefile =================================================================== --- cocoboot/trunk/arm/Makefile 2007-07-21 11:47:19 UTC (rev 1192) +++ cocoboot/trunk/arm/Makefile 2007-07-21 12:34:07 UTC (rev 1193) @@ -1,7 +1,7 @@ CC = arm-palmos-gcc CFLAGS = -Wall -O -s -I../include ${DEFINES} LDFLAGS = -nostartfiles -OBJS = arm.o atag.o boot.o cpu.o +OBJS = arm.o atag.o boot.o cpu.o debug.o all: cocoboot.arm Modified: cocoboot/trunk/arm/arm.c =================================================================== --- cocoboot/trunk/arm/arm.c 2007-07-21 11:47:19 UTC (rev 1192) +++ cocoboot/trunk/arm/arm.c 2007-07-21 12:34:07 UTC (rev 1193) @@ -76,6 +76,10 @@ case 4: ret = foobar(); break; + + case ARM_install_irqhandler: + ret = install_irqhandler(g, (UInt32*)pop_uint32(stack)); + break; default: ret = 0xbadf0000 ^ func; } Added: cocoboot/trunk/arm/debug.c =================================================================== --- cocoboot/trunk/arm/debug.c (rev 0) +++ cocoboot/trunk/arm/debug.c 2007-07-21 12:34:07 UTC (rev 1193) @@ -0,0 +1,217 @@ +/* + * Some parts based on GNU Haret which is: + * (C) Copyright 2006 Kevin O'Connor <ke...@ko...> + * + * This file may be distributed under the terms of the GNU GPL license. + * + */ +#include <PalmOS.h> +#include "arm.h" +#include "mem.h" +#include "regs.h" +#include "cpu.h" + +/* location of the pointer to the IRQ handler */ +#define IRQH (*(void**)0x38) +#define DATAH (*(void**)0x30) + +void irqhandler(); +void datahandler(); + +// Set the IBCR0 software debug register +static inline void set_IBCR0(UInt32 val) { + asm volatile("mcr p15, 0, %0, c14, c8, 0" : : "r"(val)); +} +// Set the IBCR1 software debug register +static inline void set_IBCR1(UInt32 val) { + asm volatile("mcr p15, 0, %0, c14, c9, 0" : : "r"(val)); +} +// Set the EVTSEL performance monitoring register +static inline void set_EVTSEL(UInt32 val) { + asm volatile("mcr p14, 0, %0, c8, c1, 0" : : "r"(val)); +} +// Set the INTEN performance monitoring register +static inline void set_INTEN(UInt32 val) { + asm volatile("mcr p14, 0, %0, c4, c1, 0" : : "r"(val)); +} +// Set the PMNC performance monitoring register +static inline void set_PMNC(UInt32 val) { + asm volatile("mcr p14, 0, %0, c0, c1, 0" : : "r"(val)); +} +// Set the DBCON software debug register +static inline void set_DBCON(UInt32 val) { + asm volatile("mcr p15, 0, %0, c14, c4, 0" : : "r"(val)); +} +// Set the DBR0 software debug register +static inline void set_DBR0(UInt32 val) { + asm volatile("mcr p15, 0, %0, c14, c0, 0" : : "r"(val)); +} +// Set the DBR1 software debug register +static inline void set_DBR1(UInt32 val) { + asm volatile("mcr p15, 0, %0, c14, c3, 0" : : "r"(val)); +} +// Set the DCSR software debug register +static inline void set_DCSR(UInt32 val) { + asm volatile("mcr p14, 0, %0, c10, c0, 0" : : "r"(val)); +} + + +UInt32 install_irqhandler(ArmGlobals *g, UInt32 *buf) +{ + UInt32 *src = 0; + UInt32 *end = 0; + UInt32 *dest = buf; + UInt32 *dataoffset; + + /* new value for the domain access control, this disables memory + * protection allowing us to write directly into the storage heap. + */ + UInt32 domain_ac=0xFFFFFFFF; + asm volatile ("mcr p15, 0, %0, c3, c0, 0" : : "r"(domain_ac)); + + asm volatile ("adr %0, IrqHandlerStart" :"=r"(src) ); + asm volatile ("adr %0, HandlersEnd" :"=r"(end) ); + + asm volatile ("adr %0, DataAbortHandler" :"=r"(dataoffset) ); + + dataoffset = (UInt32*)((UInt32)dataoffset - (UInt32)src + (UInt32)buf); + + /* copy our new IRQ handler into the buffer */ + while (src < end) + *dest++ = *src++; + + /* replace PalmOS handler with our own */ + IRQH = buf; + DATAH = dataoffset; + + set_DBCON(0); /* disable debugging */ + set_DBR0(0x90100000); + set_DBR1(0xffffffff); + set_DCSR(1<<31); /* global enable */ + set_DBCON(2); /* enable DBR0, both load and store */ + +// return *(volatile UInt32*)0x90100000; + return (UInt32)dataoffset; +} + +void irqhandler() { + asm volatile ("IrqHandlerStart:"); + asm volatile ("nop"); + asm volatile ("nop"); + asm volatile ("nop"); + + /* Backup register values */ +#if 0 + asm volatile ("str r0, REG0"); + asm volatile ("str r1, REG1"); + + /* Let PalmOS' irq handler deal with the event. */ + asm volatile ("ChainHandler:"); + asm volatile ("ldr r1, REG1"); /* restore regs from backup */ + asm volatile ("ldr r0, REG0"); +#endif + + asm volatile ("ldr pc, [pc, #-4]"); /* jump to POS' irq handler */ + asm volatile ("OLDHANDLER: .word 0x200a2b94"); + + asm volatile ("REG0: .word 0xdeadbeef"); + asm volatile ("REG1: .word 0xdeadbeef"); + + + asm volatile ("INTH:"); + +} + +void datahandler() +{ + asm volatile ("DataAbortHandler:"); + asm volatile ("nop"); + asm volatile ("nop"); + asm volatile ("nop"); + +#if 0 + asm volatile ("stmdb sp!, {r14}"); /* save r14 */ + asm volatile ("mrc p15, 0, r14, c10, c0, 0");/* DCSR */ + asm volatile ("and r14, r14, #28"); /* get method of entry */ + asm volatile ("cmp r14, #8"); /* data breakpoint? */ + asm volatile ("bne ChainDataAbort"); /* no? lets get of out of here! */ + + + /* I guess we should start by restoring r14 */ + asm volatile ("ldmia sp!, {r14}"); +#endif + + /* okay so we've got a data breakpoint, now what do we do? */ + /* Now let's save all our registers */ + asm volatile ("stmdb sp!, {r0-r12}"); + + /* Store the values of r0 and r1 so we can get them + * without messing with the stack. + */ + asm volatile ("str r0, [pc, #(Reg0 - . - 8)]"); + asm volatile ("str r1, [pc, #(Reg1 - . - 8)]"); +// asm volatile ("mov r1, #0"); + + /* grab the next free spot in the buffer */ +// asm volatile ("ldr r1, [pc, #(DumpOffset - . - 8)]"); +#if 0 + asm volatile ("pcgrab: add r1, r1, pc"); + asm volatile ("add r1, r1, #(HandlersEnd - pcgrab + 8)"); + + /* store "1" to indicate this is a data breakpoint */ + asm volatile ("mov r0, #1"); + asm volatile ("str r0, [r1]"); + asm volatile ("add r1, r1, #4"); + + /* lets save the address of the instruction we broken, as well + * as the instruction itself. + */ + asm volatile ("sub r0, r14, #8"); + asm volatile ("str r0, [r1]"); + asm volatile ("ldr r0, [r0]"); + asm volatile ("str r0, [r1, #4]"); + asm volatile ("add r1, r1, #8"); + + /* now lets start saving registers, first the tricky ones */ + asm volatile ("ldr r0, [pc, #(Reg0 - . - 8)]"); + asm volatile ("str r0, [r1]"); + asm volatile ("ldr r0, [pc, #(Reg1 - . - 8)]"); + asm volatile ("str r0, [r1, #4]"); + asm volatile ("add r1, r1, #8"); + + /* now the rest */ + asm volatile ("str r2, [r1]"); + asm volatile ("str r3, [r1, #4]"); + asm volatile ("str r4, [r1, #8]"); + asm volatile ("str r5, [r1, #0xc]"); + asm volatile ("str r6, [r1, #0x10]"); + asm volatile ("str r7, [r1, #0x14]"); + asm volatile ("str r8, [r1, #0x18]"); + asm volatile ("str r9, [r1, #0x1c]"); + asm volatile ("str r10, [r1, #0x20]"); + asm volatile ("str r11, [r1, #0x24]"); + asm volatile ("str r12, [r1, #0x28]"); + asm volatile ("add r1, r1, #0x2c"); + + /* save our buffer pointer */ + asm volatile ("str r1, [pc, #(DumpOffset - . - 8)]"); +#endif + /* Restore everything we clobbered */ + asm volatile ("ldmia sp!, {r0-r12}"); + + /* return to aborted process */ + asm volatile ("subs pc,r14,#4"); + +#if 0 + + asm volatile ("ChainDataAbort:"); + asm volatile ("ldmia sp!, {r14}"); /* restore r14 */ + asm volatile ("ldr pc, [pc, #-4]"); /* jump to POS' handler */ + asm volatile ("OldDataAbort: .word 0x200a3370"); +#endif + + asm volatile ("Reg0: .word 0"); + asm volatile ("Reg1: .word 0"); + asm volatile ("DumpOffset: .word 0"); + asm volatile ("HandlersEnd: .word 0"); +} Modified: cocoboot/trunk/include/arm.h =================================================================== --- cocoboot/trunk/include/arm.h 2007-07-21 11:47:19 UTC (rev 1192) +++ cocoboot/trunk/include/arm.h 2007-07-21 12:34:07 UTC (rev 1193) @@ -20,6 +20,8 @@ void setup_atags(UInt32 tag_base, UInt32 ram_base, UInt32 ram_size, const char *cmd_line, UInt32 initrd_base, UInt32 initrd_size); +/* debug.c */ +UInt32 install_irqhandler(ArmGlobals *g, UInt32 *buf); /* Disable IRQ and FIQ */ #define irq_off() asm volatile ("mrs r0, cpsr \n" \ Modified: cocoboot/trunk/include/cocoboot.rcp =================================================================== --- cocoboot/trunk/include/cocoboot.rcp 2007-07-21 11:47:19 UTC (rev 1192) +++ cocoboot/trunk/include/cocoboot.rcp 2007-07-21 12:34:07 UTC (rev 1193) @@ -31,6 +31,10 @@ BEGIN MENUITEM "USB Console" MenuItemConsole END + PULLDOWN "Trace" + BEGIN + MENUITEM "IRQ trace" MenuItemStartIrqTrace + END END FORM ID MainForm AT (0 0 160 160) NOFRAME USABLE MENUID MainFormMenu HELPID GnuGpl MODAL Modified: cocoboot/trunk/include/cocoboot_r.h =================================================================== --- cocoboot/trunk/include/cocoboot_r.h 2007-07-21 11:47:19 UTC (rev 1192) +++ cocoboot/trunk/include/cocoboot_r.h 2007-07-21 12:34:07 UTC (rev 1193) @@ -16,6 +16,7 @@ #define MenuItemBootLinux 1004 #define MenuItemDumpMMU 1005 #define MenuItemConsole 1006 +#define MenuItemStartIrqTrace 1007 #define ErrorAlert 1000 #define InfoAlert 1001 Modified: cocoboot/trunk/include/shared.h =================================================================== --- cocoboot/trunk/include/shared.h 2007-07-21 11:47:19 UTC (rev 1192) +++ cocoboot/trunk/include/shared.h 2007-07-21 12:34:07 UTC (rev 1193) @@ -19,6 +19,8 @@ #define ARM_read_cp 1 /* (coproc, reg) */ #define ARM_fb_test 2 /* () */ #define ARM_boot_linux 3 +#define ARM_test 4 +#define ARM_install_irqhandler 5 typedef UInt32 ArmStack; Modified: cocoboot/trunk/m68k/mainform.c =================================================================== --- cocoboot/trunk/m68k/mainform.c 2007-07-21 11:47:19 UTC (rev 1192) +++ cocoboot/trunk/m68k/mainform.c 2007-07-21 12:34:07 UTC (rev 1193) @@ -189,7 +189,31 @@ } +void start_irq_trace() +{ + Err err=0; + UInt32 size = 1024L * 100; /* 100k should be plenty */ + UInt32 ret; + void *buffer = NULL; + char msg[100]; + if((err=FtrPtrNew (CREATOR_ID, FEATURE_NUM, size, &buffer))) { + sprintf(msg, "Error: %d", err); + FrmCustomAlert(InfoAlert, "Unable to allocate trace buffer.", msg, " "); + return; + } + + push_uint32(arm_stack, (UInt32)buffer); + ret = call_arm(arm_stack, ARM_install_irqhandler); + + if (!ret) { + FrmCustomAlert(InfoAlert, "Trace started.", " ", " "); + } else { + sprintf(msg, "Error: 0x%lx", ret); + FrmCustomAlert(InfoAlert, msg, " ", " "); + } +} + UInt32 load_parts(int n, char *name, void **image) { /* more ugly code... */ @@ -323,6 +347,9 @@ case MenuItemConsole: usb_console(); return true; + case MenuItemStartIrqTrace: + start_irq_trace(); + return true; } return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hap...@us...> - 2007-07-21 11:47:49
|
Revision: 1192 http://svn.sourceforge.net/hackndev/?rev=1192&view=rev Author: happy-slapin Date: 2007-07-21 04:47:19 -0700 (Sat, 21 Jul 2007) Log Message: ----------- z72 updates: * Updated defconfig All: * Moved if to case statement in mach-pxa/pxa27x.c so it looks cleaner this way Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/configs/palmz72_defconfig linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c Modified: linux4palm/linux/trunk/arch/arm/configs/palmz72_defconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/configs/palmz72_defconfig 2007-07-21 11:16:09 UTC (rev 1191) +++ linux4palm/linux/trunk/arch/arm/configs/palmz72_defconfig 2007-07-21 11:47:19 UTC (rev 1192) @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.21-hnd2 -# Fri Jun 29 05:00:38 2007 +# Tue Jul 17 01:10:55 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -853,7 +853,6 @@ # CONFIG_SOC_T7L66XB is not set # CONFIG_SOC_TC6387XB is not set # CONFIG_SOC_TC6393XB is not set -# CONFIG_SOC_TSC2101 is not set # CONFIG_SOC_TSC2200 is not set # @@ -915,8 +914,8 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_LCD_CLASS_DEVICE is not set -# CONFIG_BACKLIGHT_CORGI is not set -CONFIG_BACKLIGHT_PXAPWM=y +CONFIG_BACKLIGHT_CORGI=y +# CONFIG_BACKLIGHT_PXAPWM is not set CONFIG_FB=y CONFIG_FIRMWARE_EDID=y # CONFIG_FB_DDC is not set Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c 2007-07-21 11:16:09 UTC (rev 1191) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c 2007-07-21 11:47:19 UTC (rev 1192) @@ -138,14 +138,6 @@ { extern void pxa_cpu_standby(void); extern void pxa_cpu_suspend(unsigned int); - if (machine_is_xscale_palmld() || machine_is_xscale_palmtx() - || machine_is_palmz72() || machine_is_xscale_palmtt5()) { - /* For safety. suspend_mem puts the device in an unresetable - * state. - * On TX one needs to desolder the battery to get out of it. - */ - if (state == PM_SUSPEND_MEM) state = PM_SUSPEND_STANDBY; - } CKEN = CKEN22_MEMC | CKEN9_OSTIMER | CKEN19_KEYPAD; @@ -160,7 +152,16 @@ pxa_cpu_standby(); break; case PM_SUSPEND_MEM: - pxa_cpu_suspend(PWRMODE_SLEEP); + if(machine_is_xscale_palmld() || machine_is_xscale_palmtx() || + machine_is_palmz72() || machine_is_xscale_palmtt5()) { + /* For safety. suspend_mem puts the device in an unresetable + * state. + * On TX one needs to desolder the battery to get out of it. + */ + pxa_cpu_standby(); + } else { + pxa_cpu_suspend(PWRMODE_SLEEP); + } break; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-21 11:16:11
|
Revision: 1191 http://svn.sourceforge.net/hackndev/?rev=1191&view=rev Author: bobofdoom Date: 2007-07-21 04:16:09 -0700 (Sat, 21 Jul 2007) Log Message: ----------- L4P: pxa27x_keyboard: Made keypad debounce interval configurable. * The default debounce interval of 100ms is much too long for comfortable typing on the palmt650. 32 ms seems a more reasonable value. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c linux4palm/linux/trunk/drivers/input/keyboard/pxa27x_keyboard.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-07-21 10:27:37 UTC (rev 1190) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-07-21 11:16:09 UTC (rev 1191) @@ -203,6 +203,7 @@ static struct pxa27x_keyboard_platform_data palmt650_kbd_data = { .nr_rows = 8, .nr_cols = 7, + .debounce_ms = 32, .keycodes = { { /* row 0 */ KEY_O, /* "O" */ Modified: linux4palm/linux/trunk/drivers/input/keyboard/pxa27x_keyboard.c =================================================================== --- linux4palm/linux/trunk/drivers/input/keyboard/pxa27x_keyboard.c 2007-07-21 10:27:37 UTC (rev 1190) +++ linux4palm/linux/trunk/drivers/input/keyboard/pxa27x_keyboard.c 2007-07-21 11:16:09 UTC (rev 1191) @@ -92,6 +92,9 @@ kpc |= KPC_MIE; /* matrix keypad interrupt enabled */ KPC = kpc; + + if (pdev->debounce_ms) + KPKDI = pdev->debounce_ms & 0xff; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-21 10:27:42
|
Revision: 1190 http://svn.sourceforge.net/hackndev/?rev=1190&view=rev Author: bobofdoom Date: 2007-07-21 03:27:37 -0700 (Sat, 21 Jul 2007) Log Message: ----------- PalmT650: Fixed crash on psplash and OPIE sleep. * Removed erroneous __initdata tag from pxafb_mach_info definition. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-07-21 07:50:05 UTC (rev 1189) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-07-21 10:27:37 UTC (rev 1190) @@ -332,7 +332,7 @@ .sync = FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT, }; -static struct pxafb_mach_info palmt650_lcd __initdata = { +static struct pxafb_mach_info palmt650_lcd = { .lccr0 = LCCR0_ENB | LCCR0_Color | LCCR0_Sngl | LCCR0_Act | LCCR0_4PixMono | LCCR0_OUC | LCCR0_LDDALT, @@ -342,7 +342,7 @@ .modes = &palmt650_lcd_mode, }; -static struct map_desc palmt650_io_desc[] __initdata = { +static struct map_desc palmt650_io_desc[] = { { /* Devs */ .virtual = PALMT650_ASIC6_VIRT, .pfn = __phys_to_pfn(PALMT650_ASIC6_PHYS), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-21 07:50:07
|
Revision: 1189 http://svn.sourceforge.net/hackndev/?rev=1189&view=rev Author: bobofdoom Date: 2007-07-21 00:50:05 -0700 (Sat, 21 Jul 2007) Log Message: ----------- PalmZ72: Added logic that (should) enable waking from sleep to RAM via original bootloader. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c 2007-07-20 15:51:04 UTC (rev 1188) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c 2007-07-21 07:50:05 UTC (rev 1189) @@ -52,7 +52,7 @@ /* Turn off USB power */ SET_PALMZ72_GPIO(USB_POWER,0); - + /* disable GPIO reset - DO NOT REMOVE! */ PCFR &= PCFR_GPR_EN; @@ -85,10 +85,40 @@ #define palmz72_resume NULL #endif +static struct { + u32 magic0; /* 0x0 */ + u32 magic1; /* 0x4 */ + u32 resume_addr; /* 0x8 */ + u32 pad[11]; /* 0xc..0x37 */ + + u32 arm_control; /* 0x38 */ + u32 aux_control; /* 0x3c */ + u32 ttb; /* 0x40 */ + u32 domain_access; /* 0x44 */ + u32 process_id; /* 0x48 */ +} palmz72_resume_info = { + .magic0 = 0xb4e6, + .magic1 = 1, + + /* reset state, MMU off etc */ + .arm_control = 0, + .aux_control = 0, + .ttb = 0, + .domain_access = 0, + .process_id = 0, +}; + static void palmz72_pxa_ll_pm_suspend(unsigned long resume_addr) { - /* For future */ - return; + /* hold current GPIO levels on outputs */ + PGSR0 = GPLR0; + PGSR1 = GPLR1; + PGSR2 = GPLR2; + PGSR3 = GPLR3; + + /* setup the resume_info struct for the original bootloader */ + palmz72_resume_info.resume_addr = resume_addr; + PSPR = virt_to_phys(&palmz72_resume_info); } static void palmz72_pxa_ll_pm_resume(void) @@ -104,6 +134,9 @@ static int palmz72_pm_probe(struct device *dev) { printk(KERN_NOTICE "PalmOne Zire72 power management driver registered\n"); +#ifdef CONFIG_PM + pxa_pm_set_ll_ops(&palmz72_ll_pm_ops); +#endif return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-20 15:51:08
|
Revision: 1188 http://svn.sourceforge.net/hackndev/?rev=1188&view=rev Author: bobofdoom Date: 2007-07-20 08:51:04 -0700 (Fri, 20 Jul 2007) Log Message: ----------- PalmT650: Wake-up on keypad now works properly. - Currently only enabled for the red phone/power button but can be configured to work for any key. - Thanks to Sergey Lapin for pointing out that you need to give a good value for PKWR. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c 2007-07-20 14:50:59 UTC (rev 1187) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c 2007-07-20 15:51:04 UTC (rev 1188) @@ -53,23 +53,33 @@ | PWER_GPIO1 | (1 << 20); /* SD detect */ - /* wake-up by keypad (not working yet) */ - PKWR = 0xffffffff; + /* wake-up by keypad */ + //PKWR = PKWR_MKIN0 | PKWR_MKIN1 | PKWR_MKIN2 | PKWR_MKIN3 | + // PKWR_MKIN4 | PKWR_MKIN5 | PKWR_MKIN6 | PKWR_MKIN7; + + /* disable all inputs and outputs except in 5 and out 0. + * this means only the power button will wake us up; + * not any key. + */ + PKWR = PKWR_MKIN5; + pxa_gpio_mode(GPIO_NR_PALMT650_KP_MKOUT1 | GPIO_OUT); + pxa_gpio_mode(GPIO_NR_PALMT650_KP_MKOUT2 | GPIO_OUT); + pxa_gpio_mode(GPIO_NR_PALMT650_KP_MKOUT3 | GPIO_OUT); + pxa_gpio_mode(GPIO_NR_PALMT650_KP_MKOUT4 | GPIO_OUT); + pxa_gpio_mode(GPIO_NR_PALMT650_KP_MKOUT5 | GPIO_OUT); + pxa_gpio_mode(GPIO_NR_PALMT650_KP_MKOUT6 | GPIO_OUT); + SET_PALMT650_GPIO(KP_MKOUT1, 0); + SET_PALMT650_GPIO(KP_MKOUT2, 0); + SET_PALMT650_GPIO(KP_MKOUT3, 0); + SET_PALMT650_GPIO(KP_MKOUT4, 0); + SET_PALMT650_GPIO(KP_MKOUT5, 0); + SET_PALMT650_GPIO(KP_MKOUT6, 0); + KPC &= ~KPC_ASACT; KPC |= KPC_AS; KPC &= ~KPC_MIE; /* matrix keypad interrupt disabled */ - PKWR; PKSR = 0xffffffff; /* clear */ - PSLR |= 0xF08; - /* hacky alternate method for keypad wake - * at least allows some way. Press I, K, M, R-Alt or R-Shift to wake - */ - pxa_gpio_mode(GPIO_NR_PALMT650_KP_MKIN7 | GPIO_IN); - PWER |= PWER_GPIO13; - PRER |= PWER_GPIO13; - PFER |= PWER_GPIO13; - /* ensure USB connection is broken */ SET_PALMT650_GPIO(USB_PULLUP, 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-20 14:51:05
|
Revision: 1187 http://svn.sourceforge.net/hackndev/?rev=1187&view=rev Author: bobofdoom Date: 2007-07-20 07:50:59 -0700 (Fri, 20 Jul 2007) Log Message: ----------- L4P: Cleanup pxa27x.c. - Changed CONFIG_MACH_foo ifdefs to if (machine_is_foo) statement in the sleep safely hack. - Removed strange enabling of CKEN_PWM0 and CKEN_LCD - Removed Treo 650 from sleep safely hack is suspend to RAM is now working on this device. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c 2007-07-20 14:43:04 UTC (rev 1186) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c 2007-07-20 14:50:59 UTC (rev 1187) @@ -138,19 +138,17 @@ { extern void pxa_cpu_standby(void); extern void pxa_cpu_suspend(unsigned int); -#if defined(CONFIG_MACH_XSCALE_PALMLD) || defined(CONFIG_MACH_XSCALE_PALMTX) \ - || defined(CONFIG_MACH_PALMZ72) || defined(CONFIG_MACH_XSCALE_PALMTT5) \ - || defined(CONFIG_MACH_XSCALE_PALMTREO650) - /* For safety. suspend_mem puts the device in an unresetable state. - * On TX one needs to desolder the battery to get out of it. - */ - if (state == PM_SUSPEND_MEM) state = PM_SUSPEND_STANDBY; -#endif - if (state == PM_SUSPEND_STANDBY) - CKEN = CKEN22_MEMC | CKEN9_OSTIMER | CKEN16_LCD |CKEN0_PWM0; - else - CKEN = CKEN22_MEMC | CKEN9_OSTIMER; + if (machine_is_xscale_palmld() || machine_is_xscale_palmtx() + || machine_is_palmz72() || machine_is_xscale_palmtt5()) { + /* For safety. suspend_mem puts the device in an unresetable + * state. + * On TX one needs to desolder the battery to get out of it. + */ + if (state == PM_SUSPEND_MEM) state = PM_SUSPEND_STANDBY; + } + CKEN = CKEN22_MEMC | CKEN9_OSTIMER | CKEN19_KEYPAD; + /* ensure voltage-change sequencer not initiated, which hangs */ PCFR &= ~PCFR_FVC; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-20 14:43:08
|
Revision: 1186 http://svn.sourceforge.net/hackndev/?rev=1186&view=rev Author: bobofdoom Date: 2007-07-20 07:43:04 -0700 (Fri, 20 Jul 2007) Log Message: ----------- PalmT650: Rewrote palmt650_pm.c from scratch, fixing many problems: * suspend to ram (sleep) mode now works with original palm bootloader! * palmt650_pm.c is now just compiled in whenever CONFIG_PM is set. * special PM device driver removed, now just use pxa_ll_pm. * can now wake on pressing I, K, M, Alt, Shift or plugging AC. * normal keypad wake-up still not working. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Kconfig linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Makefile linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Kconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Kconfig 2007-07-20 14:17:00 UTC (rev 1185) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Kconfig 2007-07-20 14:43:04 UTC (rev 1186) @@ -5,10 +5,3 @@ Say Y here if you intend to run this kernel on a Palm Treo 650. Currently there is only basic support for this PDA. - -config MACH_XSCALE_PALMTREO650_PM - tristate "Palm Treo 650 Power Management support" - depends on MACH_XSCALE_PALMTREO650 - default y if MACH_XSCALE_PALMTREO650 - help - Enables support for suspend/resume the PalmOne treo 650. Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Makefile =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Makefile 2007-07-20 14:17:00 UTC (rev 1185) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Makefile 2007-07-20 14:43:04 UTC (rev 1186) @@ -2,5 +2,4 @@ # Makefile for Palm Treo 650 support # -obj-$(CONFIG_MACH_XSCALE_PALMTREO650) += palmt650.o -obj-$(CONFIG_MACH_XSCALE_PALMTREO650_PM) += palmt650_pm.o +obj-$(CONFIG_MACH_XSCALE_PALMTREO650) += palmt650.o palmt650_pm.o Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-07-20 14:17:00 UTC (rev 1185) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-07-20 14:43:04 UTC (rev 1186) @@ -182,7 +182,7 @@ { case PXA2XX_UDC_CMD_DISCONNECT: printk (KERN_NOTICE "USB cmd disconnect\n"); - SET_PALMT650_GPIO(USB_PULLUP, 1); + SET_PALMT650_GPIO(USB_PULLUP, 0); break; case PXA2XX_UDC_CMD_CONNECT: @@ -357,6 +357,8 @@ iotable_init(palmt650_io_desc, ARRAY_SIZE(palmt650_io_desc)); } +void palmt650_pxa_ll_pm_init(void); + static void __init palmt650_init(void) { /* Disable PRIRDY interrupt to avoid hanging when loading AC97 */ @@ -376,6 +378,10 @@ pxa_set_ficp_info(&palmt650_ficp_platform_data); pxa_set_udc_info( &palmt650_udc_mach_info ); +#ifdef CONFIG_PM + palmt650_pxa_ll_pm_init(); +#endif + platform_add_devices(devices, ARRAY_SIZE(devices)); } Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c 2007-07-20 14:17:00 UTC (rev 1185) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c 2007-07-20 14:43:04 UTC (rev 1186) @@ -1,100 +1,103 @@ -/************************************************************************ - * PalmOne treo650 suspend/resume support * - * * - * Authors: P3T3, Petr Blaha <pb...@p3...> * - * Jan Herman <2h...@se...> * - * Sergey Lapin <sla...@gm...> * - * * - * 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. * - * * - ************************************************************************/ +/* + * arch/arm/mach-pxa/palmt650/palmt650_pm.c + * + * Suspend/resume support with unmodified Treo 650 bootloader. + * + * Copyright (C) 2007 Alex Osborne + * + * + * The original bootloader upon waking from sleep mode will + * check PSPR and if it's non-zero it will jump to 0xa0000000. + * + * This code modifies 0xa0000000 just before going to sleep, inserting a jump + * to PSPR which will be holding the address of the Linux resume function. + */ #include <linux/kernel.h> -#include <linux/device.h> -#include <linux/pm.h> -#include <linux/fb.h> -#include <linux/platform_device.h> -#include <asm/mach-types.h> -#include <asm/hardware.h> - -#include <asm/arch/pm.h> #include <asm/arch/pxa-pm_ll.h> #include <asm/arch/hardware.h> #include <asm/arch/pxa-regs.h> - #include <asm/arch/palmt650-gpio.h> #ifdef CONFIG_PM -static int palmt650_suspend(struct device *dev, pm_message_t state) -{ - /* Wake-Up on RTC event, etc. */ - PWER |= PWER_RTC | PWER_WEP1; - PWER |= 2 << 19; /* wake on SD */ - PWER |= 1; - PRER |= 1; - PFER |= 1; +#define RESUME_VECTOR_PHYS 0xa0000000 - /* Wakeup by keyboard :-) */ - PKWR = 0xffffff; - - /* Enabled Deep-Sleep mode */ - PCFR |= PCFR_DS; +static u32 *resume_vector; +static u32 resume_vector_save[3]; - /* Low power mode */ - PCFR |= PCFR_OPDE; - - /* 3.6.8.1 */ - while(!(OSCC & OSCC_OOK)) - {} +static void palmt650_pxa_ll_pm_suspend(unsigned long resume_addr) +{ + resume_vector_save[0] = resume_vector[0]; + resume_vector_save[1] = resume_vector[1]; + resume_vector_save[2] = resume_vector[2]; - /* Turn off LCD power */ - //SET_PALMT650_GPIO(LCD_POWER,0); - /* Turn off USB power */ -/* SET_PALMT650_GPIO(USB_POWER,0); */ + /* write jump to PSPR */ + resume_vector[0] = 0xe3a00121; /* mov r0, #0x40000008 */ + resume_vector[1] = 0xe280060f; /* add r0, r0, #0xf00000 */ + resume_vector[2] = 0xe590f000; /* ldr pc, [r0] */ + /* wake-up enable */ + PWER = PWER_RTC + | PWER_GPIO0 /* AC adapter */ + | PWER_GPIO1 /* reset */ + | (1 << 20); /* SD detect */ - /* disable GPIO reset - DO NOT REMOVE! */ - PCFR = PCFR_GPROD; + /* falling-edge wake */ + PFER = PWER_GPIO0 + | PWER_GPIO1 + | (1 << 20); /* SD detect */ + + /* rising-edge wake */ + PRER = PWER_GPIO0 + | PWER_GPIO1 + | (1 << 20); /* SD detect */ - return 0; -} + /* wake-up by keypad (not working yet) */ + PKWR = 0xffffffff; + KPC &= ~KPC_ASACT; + KPC |= KPC_AS; + KPC &= ~KPC_MIE; /* matrix keypad interrupt disabled */ + PKWR; + PKSR = 0xffffffff; /* clear */ + PSLR |= 0xF08; -static int palmt650_resume(struct device *dev) -{ - - /* Disabled Deep-Sleep mode ?? */ - PCFR &= PCFR_DS; + /* hacky alternate method for keypad wake + * at least allows some way. Press I, K, M, R-Alt or R-Shift to wake + */ + pxa_gpio_mode(GPIO_NR_PALMT650_KP_MKIN7 | GPIO_IN); + PWER |= PWER_GPIO13; + PRER |= PWER_GPIO13; + PFER |= PWER_GPIO13; - /* Re-enable GPIO reset */ - PCFR |= PCFR_GPR_EN; /* !! DO NOT REMOVE !! THIS IS NECCESARY FOR ENABLE PALM RESET !! */ + /* ensure USB connection is broken */ + SET_PALMT650_GPIO(USB_PULLUP, 0); - - /* Here are all of special to resume PalmOne treo 650 */ - - /* Turn on LCD power */ - //SET_PALMT650_GPIO(LCD_POWER,1); - /* Turn on USB power */ -/* SET_PALMT650_GPIO(USB_POWER,1); */ + /* hold current GPIO levels for now + * TODO: find out what we can disable. + */ + PGSR0 = GPLR0; + PGSR1 = GPLR1; + PGSR2 = GPLR2; + PGSR3 = GPLR3; - return 0; -} -#else -#define palmt650_suspend NULL -#define palmt650_resume NULL -#endif + PCFR |= PCFR_OPDE; /* low power: disable oscillator */ -static void palmt650_pxa_ll_pm_suspend(unsigned long resume_addr) -{ - /* For future */ + /* ensure oscillator is stable (see 3.6.8.1) */ + while(!(OSCC & OSCC_OOK)); + + PCFR |= PCFR_GPROD; /* disable gpio reset */ return; } static void palmt650_pxa_ll_pm_resume(void) { - /* For future */ + /* re-enable GPIO reset */ + PCFR |= PCFR_GPR_EN; + + resume_vector[0] = resume_vector_save[0]; + resume_vector[1] = resume_vector_save[1]; + resume_vector[2] = resume_vector_save[2]; } struct pxa_ll_pm_ops palmt650_ll_pm_ops = { @@ -102,33 +105,9 @@ .resume = palmt650_pxa_ll_pm_resume, }; -static int palmt650_pm_probe(struct device *dev) +void palmt650_pxa_ll_pm_init(void) { - printk(KERN_NOTICE "PalmOne Treo 650 power management driver registered\n"); - return 0; + resume_vector = phys_to_virt(0xa0000000); + pxa_pm_set_ll_ops(&palmt650_ll_pm_ops); } - -struct device_driver palmt650_pm_driver = { - .name = "palmt650-pm", - .bus = &platform_bus_type, - .probe = palmt650_pm_probe, - .suspend = palmt650_suspend, - .resume = palmt650_resume, -}; - -static int __init palmt650_pm_init(void) -{ - return driver_register(&palmt650_pm_driver); -} - -static void __exit palmt650_pm_exit(void) -{ - driver_unregister(&palmt650_pm_driver); -} - -module_init(palmt650_pm_init); -module_exit(palmt650_pm_exit); - -MODULE_AUTHOR("P3T3 Petr Blaha <pb...@p3...>, Jan Herman <2h...@se...>, Sergey Lapin <sla...@gm...>"); -MODULE_DESCRIPTION("PalmOne Treo 650 power management driver"); -MODULE_LICENSE("GPL"); +#endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hap...@us...> - 2007-07-20 14:17:09
|
Revision: 1185 http://svn.sourceforge.net/hackndev/?rev=1185&view=rev Author: happy-slapin Date: 2007-07-20 07:17:00 -0700 (Fri, 20 Jul 2007) Log Message: ----------- z72: cleanup Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2007-07-20 10:18:21 UTC (rev 1184) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2007-07-20 14:17:00 UTC (rev 1185) @@ -31,11 +31,7 @@ #include <asm/arch/pxa-regs.h> #include <asm/arch/pxa27x_keyboard.h> #include <asm/arch/pxa-pm_ll.h> -#if 0 -#include <asm/arch/pxapwm-bl.h> -#else #include <linux/corgi_bl.h> -#endif #include <asm/arch/serial.h> #include <linux/gpio_keys.h> @@ -117,8 +113,8 @@ return ret; } -static void palmz72_udc_command (int cmd){ - +static void palmz72_udc_command (int cmd) +{ switch (cmd) { case PXA2XX_UDC_CMD_DISCONNECT: SET_GPIO(GPIO_NR_PALMZ72_USB_PULLUP, 0); @@ -359,12 +355,12 @@ .xres = 320, .yres = 320, .bpp = 16, - .hsync_len = 6, // This value is optimized for older problematic LCD panels + .hsync_len = 6, /* This value is optimized for older problematic LCD panels */ .left_margin = 27, .right_margin = 7, .vsync_len = 1, - .upper_margin = 7, // This value is optimized for older problematic LCD panels - .lower_margin = 8, // This value is optimized for older problematic LCD panels + .upper_margin = 7, /* This value is optimized for older problematic LCD panels */ + .lower_margin = 8, /* This value is optimized for older problematic LCD panels */ } }; @@ -510,6 +506,7 @@ pxa_gpio_mode(GPIO29_SDATA_IN_AC97_MD); pxa_gpio_mode(GPIO30_SDATA_OUT_AC97_MD); pxa_gpio_mode(GPIO31_SYNC_AC97_MD); + ov9640_gpio_init(); switch(palmz72_lcd_modes[0].bpp) @@ -522,7 +519,6 @@ palmz72_lcd_screen.lccr3=0x04700004; break; } - set_pxa_fb_info( &palmz72_lcd_screen ); pxa_set_btuart_info(&bcm2035_pxa_bt_funcs); pxa_set_mci_info( &palmz72_mci_platform_data ); @@ -531,7 +527,6 @@ platform_add_devices( devices, ARRAY_SIZE(devices) ); } - MACHINE_START(PALMZ72, "Palm Zire 72") /********************************************************/ @@ -548,3 +543,4 @@ .timer = &pxa_timer, .init_machine = palmz72_init MACHINE_END + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hap...@us...> - 2007-07-20 10:18:23
|
Revision: 1184 http://svn.sourceforge.net/hackndev/?rev=1184&view=rev Author: happy-slapin Date: 2007-07-20 03:18:21 -0700 (Fri, 20 Jul 2007) Log Message: ----------- z72: added hacksome piece of code, removed camera clock playing from platform Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c Added Paths: ----------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/pxaci.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2007-07-20 08:17:31 UTC (rev 1183) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72.c 2007-07-20 10:18:21 UTC (rev 1184) @@ -435,6 +435,13 @@ }, }; +static struct platform_device palmz72_ci = { + .name = "pxacif", + .id = -1, + .dev = { + .platform_data = NULL, + }, +}; /**************** * Init Machine * @@ -450,6 +457,7 @@ #endif &palmz72_led_device, &bcm2035_bt, + &palmz72_ci, #if 0 &ov9640, #endif @@ -515,7 +523,6 @@ break; } - pxa_set_cken(CKEN24_CAMERA, 1); set_pxa_fb_info( &palmz72_lcd_screen ); pxa_set_btuart_info(&bcm2035_pxa_bt_funcs); pxa_set_mci_info( &palmz72_mci_platform_data ); Added: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/pxaci.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/pxaci.c (rev 0) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/pxaci.c 2007-07-20 10:18:21 UTC (rev 1184) @@ -0,0 +1,134 @@ +#include <linux/module.h> +#include <linux/platform_device.h> +#include <asm/arch/pxa-regs.h> +#include <asm/arch/hardware.h> + +static int pxaci_enabled = 0; +static DEFINE_MUTEX(enable_mutex); + +static void show_ci_regs(void) +{ + printk(KERN_INFO "CI regs:\nCICR0=%08x CICR1=%08x\nCICR2=%08x CICR3=%08x\nCICR4=%08x\n", CICR0, CICR1, CICR2, CICR3, CICR4); + printk(KERN_INFO "CISR=%08x\n", CISR); +} + +static ssize_t pxaci_enable_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + printk(KERN_INFO "PXACIF: read\n"); + show_ci_regs(); + return sprintf(buf, "%u\n", pxaci_enabled); +} +/* +CICR0 = 0x800003f7 DMA_EN|~PAR_EN|~SL_CAP_EN|~ENB|~DIS|SIM=000 (master-parallel)|TOM|RDAVM|FEM|EOLM|PERRM|QDM|CDM|~SOFM|~EOFM +CICR1 = 0x009f8412 ~TBIT|RGBT_CONV=00 (No) | +CICR2 = 0 +CICR3 = 0x000000ef +CICR4 = 0x00880001 + +*/ + + +static ssize_t pxaci_enable_store(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + int state; + + printk(KERN_INFO "PXACIF: write\n"); + show_ci_regs(); + if (sscanf(buf, "%u", &state) != 1) + return -EINVAL; + + if ((state != 1) && (state != 0)) + return -EINVAL; + + mutex_lock(&enable_mutex); + if (state != pxaci_enabled) { + pxaci_enabled = state; + pxa_set_cken(CKEN24_CAMERA, state); + if(pxaci_enabled) { + CICR0 = 0x3ff; + CICR1 = 0x009f8412; + CICR2 = 0x0; + CICR3 = 0xef; + CICR4 = 0x00880001; + CICR0 = CICR0_ENB|0x3ff; + } else { + CICR0 = 0x3ff; + CICR1 = 0x009f8412; + CICR2 = 0x0; + CICR3 = 0xef; + CICR4 = 0x00880001; + } + } + mutex_unlock(&enable_mutex); + + return strnlen(buf, count); +} + +static DEVICE_ATTR(enable, S_IRUGO | S_IWUSR, pxaci_enable_show, pxaci_enable_store); + + +#ifdef CONFIG_PM +static int pxaci_suspend(struct platform_device *pdev, pm_message_t state) +{ + pxa_set_cken(CKEN24_CAMERA, 0); + return 0; +} + +static int pxaci_resume(struct platform_device *pdev) +{ + pxa_set_cken(CKEN24_CAMERA, pxaci_enabled); + return 0; +} +#else +#define pxaci_suspend NULL +#define pxaci_resume NULL +#endif + + +static int pxaci_probe(struct platform_device *pdev) +{ + int ret; + pxa_set_cken(CKEN24_CAMERA, 0); + show_ci_regs(); + ret = device_create_file(&pdev->dev, &dev_attr_enable); + printk(KERN_INFO "Initialized device PXACI\n"); + return 0; +} + +static int pxaci_remove(struct platform_device *pdev) +{ + pxa_set_cken(CKEN24_CAMERA, 0); + printk(KERN_INFO "Denitialized device PXACI\n"); + return 0; +} + +static struct platform_driver pxaci_driver = { + .probe = pxaci_probe, + .remove = pxaci_remove, + .suspend = pxaci_suspend, + .resume = pxaci_resume, + .driver = { + .name = "pxacif", + }, +}; + +static int __init pxacif_init(void) +{ + int pdreg = platform_driver_register(&pxaci_driver); + + return pdreg; +} + +static void __exit pxacif_exit(void) +{ + platform_driver_unregister(&pxaci_driver); +} + +module_init(pxacif_init); +module_exit(pxacif_exit); + +MODULE_AUTHOR("Sergey Lapin <sl...@ha...>"); +MODULE_DESCRIPTION("XScale Camera Interface Experiments Driver"); +MODULE_LICENSE("GPL"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-20 07:33:20
|
Revision: 1182 http://svn.sourceforge.net/hackndev/?rev=1182&view=rev Author: bobofdoom Date: 2007-07-20 00:33:17 -0700 (Fri, 20 Jul 2007) Log Message: ----------- PalmT650: Updated defconfig to match what we're using in OE. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/configs/palmt650_defconfig Modified: linux4palm/linux/trunk/arch/arm/configs/palmt650_defconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/configs/palmt650_defconfig 2007-07-19 12:40:57 UTC (rev 1181) +++ linux4palm/linux/trunk/arch/arm/configs/palmt650_defconfig 2007-07-20 07:33:17 UTC (rev 1182) @@ -1,11 +1,14 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.20-hnd0 -# Sun May 20 18:04:54 2007 +# Linux kernel version: 2.6.21-hnd2 +# Fri Jul 20 17:32:23 2007 # CONFIG_ARM=y -# CONFIG_GENERIC_TIME is not set +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set CONFIG_GENERIC_HARDIRQS=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HARDIRQS_SW_RESEND=y @@ -15,6 +18,7 @@ # CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y CONFIG_ARCH_MTD_XIP=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" @@ -35,27 +39,30 @@ CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_IPC_NS is not set -CONFIG_POSIX_MQUEUE=y -CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set # CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set -# CONFIG_IKCONFIG is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y -CONFIG_UID16=y +# CONFIG_UID16 is not set CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y -# CONFIG_ELF_CORE is not set +CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y @@ -90,8 +97,8 @@ # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y -# CONFIG_IOSCHED_DEADLINE is not set -CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_CFQ is not set CONFIG_DEFAULT_AS=y # CONFIG_DEFAULT_DEADLINE is not set # CONFIG_DEFAULT_CFQ is not set @@ -122,6 +129,7 @@ # CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_NS9XXX is not set # CONFIG_ARCH_PNX4008 is not set CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set @@ -130,6 +138,8 @@ # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set +# CONFIG_BOARD_IRQ_MAP_SMALL is not set +# CONFIG_BOARD_IRQ_MAP_BIG is not set # # Intel PXA2xx Implementations @@ -158,6 +168,7 @@ # CONFIG_MACH_BLUEANGEL is not set # CONFIG_MACH_HTCBEETLES is not set # CONFIG_MACH_HW6900 is not set +# CONFIG_MACH_HTCATHENA is not set # CONFIG_ARCH_AXIMX3 is not set # CONFIG_ARCH_AXIMX5 is not set # CONFIG_MACH_X50 is not set @@ -177,9 +188,12 @@ # CONFIG_MACH_ZIRE31 is not set # CONFIG_GPIOED is not set # CONFIG_GPIOEDNG is not set +# CONFIG_MACH_GHI270HG is not set +# CONFIG_MACH_GHI270 is not set # CONFIG_PXA_SHARPSL is not set # CONFIG_MACH_TRIZEPS4 is not set CONFIG_PXA27x=y +# CONFIG_PXA27x_VOLTAGE is not set # # Linux As Bootloader @@ -203,20 +217,12 @@ # CONFIG_ARM_THUMB=y # CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set CONFIG_IWMMXT=y # CONFIG_ARMBOOT_PROC is not set CONFIG_XSCALE_PMU=y -# CONFIG_KEXEC is not set # -# Compaq/iPAQ Drivers -# - -# -# Compaq/HP iPAQ Drivers -# - -# # Bus support # @@ -229,7 +235,7 @@ # Kernel Features # CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set +CONFIG_NO_IDLE_HZ=y CONFIG_HZ=100 CONFIG_AEABI=y CONFIG_OABI_COMPAT=y @@ -243,6 +249,7 @@ # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4096 # CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 CONFIG_ALIGNMENT_TRAP=y # @@ -250,13 +257,28 @@ # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="mem=32M" +CONFIG_CMDLINE="keepinitrd" # CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y +# CONFIG_TXTOFFSET_DELTA is not set # # CPU Frequency scaling # -# CONFIG_CPU_FREQ is not set +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_DEBUG=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +CONFIG_CPU_FREQ_GOV_USERSPACE=y +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_PXA=y +CONFIG_PXA25x_ALTERNATE_FREQS=y # # Floating point emulation @@ -282,9 +304,9 @@ CONFIG_PM=y # CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set -# CONFIG_DPM_DEBUG is not set -# CONFIG_PM_SYSFS_DEPRECATED is not set -CONFIG_APM=y +CONFIG_DPM_DEBUG=y +CONFIG_PM_SYSFS_DEPRECATED=y +CONFIG_APM_EMULATION=y # # Networking @@ -295,20 +317,21 @@ # Networking options # # CONFIG_NETDEBUG is not set -CONFIG_PACKET=m -# CONFIG_PACKET_MMAP is not set +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y CONFIG_UNIX=y -CONFIG_XFRM=y -# CONFIG_XFRM_USER is not set -# CONFIG_XFRM_SUB_POLICY is not set # CONFIG_NET_KEY is not set CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set +CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y -# CONFIG_IP_PNP is not set +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set # CONFIG_ARPD is not set # CONFIG_SYN_COOKIES is not set # CONFIG_INET_AH is not set @@ -316,22 +339,41 @@ # CONFIG_INET_IPCOMP is not set # CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set -CONFIG_INET_XFRM_MODE_TRANSPORT=y -CONFIG_INET_XFRM_MODE_TUNNEL=y -CONFIG_INET_XFRM_MODE_BEET=y -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set # CONFIG_IPV6 is not set # CONFIG_INET6_XFRM_TUNNEL is not set # CONFIG_INET6_TUNNEL is not set # CONFIG_NETWORK_SECMARK is not set -# CONFIG_NETFILTER is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set # +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +# CONFIG_IP_NF_QUEUE is not set +# CONFIG_IP_NF_IPTABLES is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# # DCCP Configuration (EXPERIMENTAL) # # CONFIG_IP_DCCP is not set @@ -367,86 +409,123 @@ # # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set -CONFIG_IRDA=y +# CONFIG_IRDA is not set +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m # -# IrDA protocols +# Bluetooth device drivers # -# CONFIG_IRLAN is not set -# CONFIG_IRNET is not set -CONFIG_IRCOMM=m -# CONFIG_IRDA_ULTRA is not set +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +# CONFIG_BT_BCM2035UART is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_IEEE80211 is not set # -# IrDA options +# Device Drivers # -# CONFIG_IRDA_CACHE_LAST_LSAP is not set -# CONFIG_IRDA_FAST_RR is not set -# CONFIG_IRDA_DEBUG is not set # -# Infrared-port device drivers +# Generic Driver Options # +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set # -# SIR device drivers +# Connector - unified userspace <-> kernelspace linker # -# CONFIG_IRTTY_SIR is not set +# CONFIG_CONNECTOR is not set # -# Dongle support +# Memory Technology Devices (MTD) # +CONFIG_MTD=m +CONFIG_MTD_DEBUG=y +CONFIG_MTD_DEBUG_VERBOSE=0 +# CONFIG_MTD_CONCAT is not set +# CONFIG_MTD_PARTITIONS is not set # -# Old SIR device drivers +# User Modules And Translation Layers # -# CONFIG_IRPORT_SIR is not set +CONFIG_MTD_CHAR=m +# CONFIG_MTD_BLKDEVS is not set +# CONFIG_MTD_BLOCK is not set +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set # -# Old Serial dongle support +# RAM/ROM/Flash chip drivers # +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set # -# FIR device drivers +# Mapping drivers for chip access # -CONFIG_PXA_FICP=y -CONFIG_BT=y -# CONFIG_BT_L2CAP is not set -# CONFIG_BT_SCO is not set +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_SHARP_SL is not set +# CONFIG_MTD_PLATRAM is not set # -# Bluetooth device drivers +# Self-contained MTD device drivers # -CONFIG_BT_HCIUART=y -CONFIG_BT_HCIUART_H4=y -# CONFIG_BT_HCIUART_BCSP is not set -# CONFIG_BT_BCM2035UART is not set -# CONFIG_BT_HCIVHCI is not set -# CONFIG_IEEE80211 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +CONFIG_MTD_MTDRAM=m +CONFIG_MTDRAM_TOTAL_SIZE=0 +CONFIG_MTDRAM_ERASE_SIZE=256 +# CONFIG_MTD_BLOCK2MTD is not set # -# Device Drivers +# Disk-On-Chip Device Drivers # +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set # -# Generic Driver Options +# NAND Flash Device Drivers # -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -# CONFIG_FW_LOADER is not set -# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_MTD_NAND is not set # -# Connector - unified userspace <-> kernelspace linker +# OneNAND Flash Device Drivers # -# CONFIG_CONNECTOR is not set +# CONFIG_MTD_ONENAND is not set # -# Memory Technology Devices (MTD) -# -# CONFIG_MTD is not set - -# # Parallel port support # # CONFIG_PARPORT is not set @@ -454,19 +533,16 @@ # # Plug and Play support # +# CONFIG_PNPACPI is not set # # Block devices # # CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP=m # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 -CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_RAM is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -517,16 +593,11 @@ # # PHY device support # -# CONFIG_PHYLIB is not set # # Ethernet (10 or 100Mbit) # -CONFIG_NET_ETHERNET=y -CONFIG_MII=y -# CONFIG_SMC91X is not set -# CONFIG_DM9000 is not set -# CONFIG_SMC911X is not set +# CONFIG_NET_ETHERNET is not set # # Ethernet (1000 Mbit) @@ -549,17 +620,17 @@ # Wan interfaces # # CONFIG_WAN is not set -CONFIG_PPP=y +CONFIG_PPP=m # CONFIG_PPP_MULTILINK is not set # CONFIG_PPP_FILTER is not set -# CONFIG_PPP_ASYNC is not set +CONFIG_PPP_ASYNC=m # CONFIG_PPP_SYNC_TTY is not set -# CONFIG_PPP_DEFLATE is not set -# CONFIG_PPP_BSDCOMP is not set -# CONFIG_PPP_MPPE is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m # CONFIG_PPPOE is not set # CONFIG_SLIP is not set -CONFIG_SLHC=y +CONFIG_SLHC=m # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set @@ -581,11 +652,10 @@ # # CONFIG_INPUT_MOUSEDEV is not set # CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_TSDEV=y -CONFIG_INPUT_TSDEV_SCREEN_X=320 -CONFIG_INPUT_TSDEV_SCREEN_Y=320 +# CONFIG_INPUT_TSDEV is not set CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_LED_TRIGGER is not set # # Input Device Drivers @@ -597,12 +667,17 @@ # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_GPIO_KEYS is not set +# CONFIG_GPIODEV_KEYS is not set +# CONFIG_GPIODEV_DIAGONAL is not set CONFIG_KEYBOARD_PXA27x=y -# CONFIG_INPUT_MOUSE is not set +CONFIG_KEYBOARD_GPIO=y +CONFIG_INPUT_MOUSE=y +# CONFIG_MOUSE_PS2 is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_NAVPOINT is not set +# CONFIG_MOUSE_VSXXXAA is not set # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_ADS7846 is not set # CONFIG_TOUCHSCREEN_GUNZE is not set # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set @@ -614,20 +689,18 @@ # CONFIG_TOUCHSCREEN_ADC_DEBOUNCE is not set # CONFIG_TOUCHSCREEN_UCB1400 is not set # CONFIG_TOUCHSCREEN_PALMTC is not set -CONFIG_TOUCHSCREEN_WM97XX=y +CONFIG_TOUCHSCREEN_WM97XX=m # CONFIG_TOUCHSCREEN_WM9705 is not set CONFIG_TOUCHSCREEN_WM9712=y # CONFIG_TOUCHSCREEN_WM9713 is not set # CONFIG_TOUCHSCREEN_WM97XX_PXA is not set -# CONFIG_INPUT_MISC is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m # # Hardware I/O ports # -CONFIG_SERIO=y -CONFIG_SERIO_SERPORT=y -# CONFIG_SERIO_LIBPS2 is not set -# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO is not set # CONFIG_GAMEPORT is not set # @@ -642,10 +715,7 @@ # # Serial drivers # -CONFIG_SERIAL_8250=m -CONFIG_SERIAL_8250_NR_UARTS=4 -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -# CONFIG_SERIAL_8250_EXTENDED is not set +# CONFIG_SERIAL_8250 is not set # # Non-8250 serial port support @@ -653,12 +723,13 @@ CONFIG_SERIAL_PXA=y CONFIG_SERIAL_PXA_CONSOLE=y CONFIG_SERIAL_PXA_COUNT=4 -# CONFIG_SERIAL_PXA_IR is not set +CONFIG_SERIAL_PXA_IR=y CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_RS232_SERIAL is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=16 +CONFIG_LEGACY_PTY_COUNT=32 # # IPMI @@ -669,11 +740,11 @@ # Watchdog Cards # # CONFIG_WATCHDOG is not set -CONFIG_HW_RANDOM=m +# CONFIG_HW_RANDOM is not set # CONFIG_NVRAM is not set - # CONFIG_DTLK is not set # CONFIG_R3964 is not set +# CONFIG_TIHTC is not set # CONFIG_RAW_DRIVER is not set # @@ -689,20 +760,10 @@ # # SPI support # -CONFIG_SPI=y -CONFIG_SPI_MASTER=y +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set # -# SPI Master Controller Drivers -# -# CONFIG_SPI_BITBANG is not set -CONFIG_SPI_PXA2XX=y - -# -# SPI Protocol Masters -# - -# # Dallas's 1-wire bus # # CONFIG_W1 is not set @@ -710,19 +771,13 @@ # # Hardware Monitoring support # -CONFIG_HWMON=y +# CONFIG_HWMON is not set # CONFIG_HWMON_VID is not set -# CONFIG_SENSORS_ABITUGURU is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_LM70 is not set -# CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_VT1211 is not set -# CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Hardware Monitoring - Battery -# -CONFIG_BATTERY_MONITOR=y +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PDA_POWER=y +CONFIG_APM_POWER=y +# CONFIG_BATTERY_DS2760 is not set # CONFIG_ADC_BATTERY is not set # @@ -731,34 +786,35 @@ # CONFIG_L3 is not set # -# SoC drivers -# -# CONFIG_SOC_MQ11XX is not set -# CONFIG_SOC_T7L66XB is not set -# CONFIG_SOC_TC6387XB is not set -# CONFIG_SOC_TC6393XB is not set -# CONFIG_SOC_SAMCOP is not set -# CONFIG_SOC_HAMCOP is not set -# CONFIG_HTC_ASIC2 is not set -# CONFIG_HTC_ASIC3 is not set -# CONFIG_HTC_ASIC3_DS1WM is not set -# CONFIG_SOC_TSC2200 is not set - -# # Misc devices # -CONFIG_TEST=m # CONFIG_BATTCHARGE_MONITOR is not set # # Multimedia Capabilities Port drivers # -# CONFIG_MCP is not set +CONFIG_ADC=y # CONFIG_ADC_ADS7846_SSP is not set +# CONFIG_ADC_TSC2200_SSP is not set # CONFIG_ADC_AD7877 is not set -# CONFIG_TIFM_CORE is not set # +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set +# CONFIG_HTC_ASIC2 is not set +# CONFIG_HTC_ASIC3 is not set +# CONFIG_HTC_EGPIO is not set +# CONFIG_HTC_ASIC3_DS1WM is not set +# CONFIG_SOC_SAMCOP is not set +# CONFIG_SOC_HAMCOP is not set +# CONFIG_SOC_MQ11XX is not set +# CONFIG_SOC_T7L66XB is not set +# CONFIG_SOC_TC6387XB is not set +# CONFIG_SOC_TC6393XB is not set +# CONFIG_SOC_TSC2200 is not set + +# # LED devices # CONFIG_NEW_LEDS=y @@ -777,33 +833,14 @@ # CONFIG_LEDS_TRIGGER_HWTIMER is not set # CONFIG_LEDS_TRIGGER_MMC_CARD is not set # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set -# CONFIG_LEDS_TRIGGER_SHARED is not set +CONFIG_LEDS_TRIGGER_SHARED=y # # Multimedia devices # -CONFIG_VIDEO_DEV=y -CONFIG_VIDEO_V4L1=y -CONFIG_VIDEO_V4L1_COMPAT=y -CONFIG_VIDEO_V4L2=y +# CONFIG_VIDEO_DEV is not set # -# Video Capture Adapters -# - -# -# Video Capture Adapters -# -CONFIG_VIDEO_ADV_DEBUG=y -CONFIG_VIDEO_HELPER_CHIPS_AUTO=y -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_CPIA is not set - -# -# Radio Adapters -# - -# # Digital Video Broadcasting Devices # # CONFIG_DVB is not set @@ -811,19 +848,30 @@ # # Graphics support # -CONFIG_FIRMWARE_EDID=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CORGI=y +# CONFIG_BACKLIGHT_PXAPWM is not set CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# CONFIG_FB_DDC is not set CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# # CONFIG_FB_IMAGEON is not set # CONFIG_FB_S1D13XXX is not set CONFIG_FB_PXA=y -CONFIG_FB_PXA_PARAMETERS=y +# CONFIG_FB_PXA_PARAMETERS is not set # CONFIG_FB_MBX is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_VSFB is not set @@ -834,15 +882,15 @@ # CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_FONTS=y -CONFIG_FONT_8x8=y +# CONFIG_FONT_8x8 is not set # CONFIG_FONT_8x16 is not set # CONFIG_FONT_6x11 is not set # CONFIG_FONT_7x14 is not set # CONFIG_FONT_PEARL_8x8 is not set # CONFIG_FONT_ACORN_8x8 is not set -# CONFIG_FONT_MINI_4x6 is not set +CONFIG_FONT_MINI_4x6=y # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set # CONFIG_FONT_10x18 is not set @@ -851,12 +899,6 @@ # Logo configuration # # CONFIG_LOGO is not set -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_DEVICE=y -# CONFIG_LCD_CLASS_DEVICE is not set -CONFIG_BACKLIGHT_CORGI=y -CONFIG_BACKLIGHT_PXAPWM=y # # Sound @@ -866,28 +908,25 @@ # # Advanced Linux Sound Architecture # -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y -CONFIG_SND_SEQUENCER=y -# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +# CONFIG_SND_SEQUENCER is not set CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=y -CONFIG_SND_PCM_OSS=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y -# CONFIG_SND_SEQUENCER_OSS is not set # CONFIG_SND_DYNAMIC_MINORS is not set -# CONFIG_SND_SUPPORT_OLD_API is not set -# CONFIG_SND_VERBOSE_PROCFS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set # # Generic devices # -CONFIG_SND_AC97_CODEC=y +CONFIG_SND_AC97_CODEC=m # CONFIG_SND_DUMMY is not set -# CONFIG_SND_VIRMIDI is not set # CONFIG_SND_MTPAV is not set # CONFIG_SND_SERIAL_U16550 is not set # CONFIG_SND_MPU401 is not set @@ -896,8 +935,8 @@ # ALSA ARM devices # # CONFIG_SND_PXA2xx_I2SOUND is not set -CONFIG_SND_PXA2XX_PCM=y -CONFIG_SND_PXA2XX_AC97=y +CONFIG_SND_PXA2XX_PCM=m +CONFIG_SND_PXA2XX_AC97=m # # SoC audio support @@ -908,12 +947,13 @@ # Open Sound System # # CONFIG_SOUND_PRIME is not set -CONFIG_AC97_BUS=y +CONFIG_AC97_BUS=m # # HID Devices # -CONFIG_HID=y +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set # # USB support @@ -949,12 +989,13 @@ # CONFIG_USB_GADGET_DUALSPEED is not set # CONFIG_USB_ZERO is not set CONFIG_USB_ETH=y -# CONFIG_USB_ETH_RNDIS is not set +CONFIG_USB_ETH_RNDIS=y # CONFIG_USB_GADGETFS is not set # CONFIG_USB_FILE_STORAGE is not set # CONFIG_USB_G_SERIAL is not set # CONFIG_USB_MIDI_GADGET is not set # CONFIG_USB_G_CHAR is not set +# CONFIG_USB_PXA2XX_GPIO is not set # # MMC/SD Card support @@ -963,7 +1004,6 @@ # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y CONFIG_MMC_PXA=y -# CONFIG_MMC_TIFM_SD is not set # CONFIG_MMC_TMIO is not set # CONFIG_MMC_SAMCOP is not set @@ -971,27 +1011,29 @@ # Real Time Clock # CONFIG_RTC_LIB=y -CONFIG_RTC_CLASS=m +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" CONFIG_RTC_EPOCH=1970 +CONFIG_RTC_DEBUG=y # # RTC interfaces # -CONFIG_RTC_INTF_SYSFS=m -CONFIG_RTC_INTF_PROC=m -CONFIG_RTC_INTF_DEV=m +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set # # RTC drivers # +# CONFIG_RTC_DRV_CMOS is not set # CONFIG_RTC_DRV_DS1553 is not set # CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_RS5C348 is not set # CONFIG_RTC_DRV_M48T86 is not set -CONFIG_RTC_DRV_SA1100=m +CONFIG_RTC_DRV_SA1100=y # CONFIG_RTC_DRV_TEST is not set -# CONFIG_RTC_DRV_MAX6902 is not set # CONFIG_RTC_DRV_V3020 is not set # @@ -1010,11 +1052,12 @@ # CONFIG_OCFS2_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set -# CONFIG_INOTIFY is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y -CONFIG_AUTOFS_FS=y -CONFIG_AUTOFS4_FS=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set # CONFIG_FUSE_FS is not set # @@ -1026,9 +1069,9 @@ # # DOS/FAT/NT Filesystems # -CONFIG_FAT_FS=y -CONFIG_MSDOS_FS=y -CONFIG_VFAT_FS=y +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_NTFS_FS is not set @@ -1050,16 +1093,15 @@ # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set +# CONFIG_AUFS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set +# CONFIG_JFFS2_FS is not set # CONFIG_CRAMFS is not set -CONFIG_SQUASHFS=y -CONFIG_SQUASHFS_EMBEDDED=y -CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 -# CONFIG_SQUASHFS_VMALLOC is not set +# CONFIG_SQUASHFS is not set # CONFIG_SQUASHFS_LZMA is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set @@ -1071,14 +1113,17 @@ # # Network File Systems # -CONFIG_NFS_FS=m -# CONFIG_NFS_V3 is not set +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set # CONFIG_NFS_V4 is not set # CONFIG_NFS_DIRECTIO is not set # CONFIG_NFSD is not set -CONFIG_LOCKD=m +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=m +CONFIG_SUNRPC=y # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set # CONFIG_SMB_FS is not set @@ -1098,7 +1143,7 @@ # Native Language Support # CONFIG_NLS=y -CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set @@ -1112,7 +1157,7 @@ # CONFIG_NLS_CODEPAGE_863 is not set # CONFIG_NLS_CODEPAGE_864 is not set # CONFIG_NLS_CODEPAGE_865 is not set -CONFIG_NLS_CODEPAGE_866=y +# CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set @@ -1121,10 +1166,10 @@ # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_CODEPAGE_1251=m # CONFIG_NLS_ASCII is not set CONFIG_NLS_ISO8859_1=y -CONFIG_NLS_ISO8859_2=y +# CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set # CONFIG_NLS_ISO8859_5 is not set @@ -1134,7 +1179,7 @@ # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set # CONFIG_NLS_ISO8859_15 is not set -CONFIG_NLS_KOI8_R=y +# CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y @@ -1151,18 +1196,40 @@ # # Kernel hacking # -# CONFIG_PRINTK_TIME is not set +CONFIG_PRINTK_TIME=y CONFIG_ENABLE_MUST_CHECK=y # CONFIG_MAGIC_SYSRQ is not set # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set # CONFIG_SMALLOOPS is not set -# CONFIG_DEBUG_KERNEL is not set -CONFIG_LOG_BUF_SHIFT=14 -# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_SLAB is not set +CONFIG_DEBUG_PREEMPT=y +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +CONFIG_DEBUG_MUTEXES=y +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_VM=y +# CONFIG_DEBUG_LIST is not set CONFIG_FRAME_POINTER=y -# CONFIG_DEBUG_USER is not set +CONFIG_FORCED_INLINING=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_ERRORS=y +CONFIG_DEBUG_LL=y +# CONFIG_DEBUG_ICEDCC is not set # # Security options @@ -1182,20 +1249,22 @@ # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_MD4 is not set # CONFIG_CRYPTO_MD5 is not set -# CONFIG_CRYPTO_SHA1 is not set +CONFIG_CRYPTO_SHA1=m # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_GF128MUL is not set CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_CBC=m +# CONFIG_CRYPTO_CBC is not set +CONFIG_CRYPTO_PCBC=m # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_DES is not set +# CONFIG_CRYPTO_FCRYPT is not set # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_SERPENT is not set -CONFIG_CRYPTO_AES=m +# CONFIG_CRYPTO_AES is not set # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set @@ -1205,6 +1274,7 @@ # CONFIG_CRYPTO_DEFLATE is not set # CONFIG_CRYPTO_MICHAEL_MIC is not set # CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set # CONFIG_CRYPTO_TEST is not set # @@ -1219,6 +1289,8 @@ # CONFIG_CRC16 is not set CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set -CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_INFLATE=m +CONFIG_ZLIB_DEFLATE=m CONFIG_PLIST=y -CONFIG_IOMAP_COPY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <med...@us...> - 2007-07-19 12:41:06
|
Revision: 1181 http://svn.sourceforge.net/hackndev/?rev=1181&view=rev Author: medaglia Date: 2007-07-19 05:40:57 -0700 (Thu, 19 Jul 2007) Log Message: ----------- New defconfig for Palm T|E2. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/configs/palmte2_defconfig Modified: linux4palm/linux/trunk/arch/arm/configs/palmte2_defconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/configs/palmte2_defconfig 2007-07-19 07:20:25 UTC (rev 1180) +++ linux4palm/linux/trunk/arch/arm/configs/palmte2_defconfig 2007-07-19 12:40:57 UTC (rev 1181) @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hnd1 -# Fri Jun 8 23:44:41 2007 +# Linux kernel version: 2.6.21-hnd2 +# Thu Jul 19 22:20:33 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -48,7 +48,9 @@ CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y -# CONFIG_INITRAMFS_SOURCE is not set +CONFIG_INITRAMFS_SOURCE="/home/palm/initrd/initramfs" +CONFIG_INITRAMFS_ROOT_UID=0 +CONFIG_INITRAMFS_ROOT_GID=0 CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y # CONFIG_EMBEDDED is not set @@ -90,12 +92,12 @@ CONFIG_IOSCHED_NOOP=y # CONFIG_IOSCHED_AS is not set # CONFIG_IOSCHED_DEADLINE is not set -CONFIG_IOSCHED_CFQ=y +# CONFIG_IOSCHED_CFQ is not set # CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set -CONFIG_DEFAULT_CFQ=y -# CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_NOOP=y +CONFIG_DEFAULT_IOSCHED="noop" # # System Type @@ -171,9 +173,6 @@ # CONFIG_MACH_XSCALE_TREO680 is not set # CONFIG_MACH_T700WX is not set CONFIG_MACH_TUNGE2=y -# CONFIG_PALMTE2_BUTTONS is not set -# CONFIG_PALMTE2_AC97 is not set -# CONFIG_GPIOD is not set # CONFIG_MACH_T3XSCALE is not set # CONFIG_MACH_XSCALE_PALMTT5 is not set # CONFIG_MACH_XSCALE_PALMTX is not set @@ -182,6 +181,8 @@ # CONFIG_MACH_ZIRE31 is not set # CONFIG_GPIOED is not set # CONFIG_GPIOEDNG is not set +# CONFIG_MACH_GHI270HG is not set +# CONFIG_MACH_GHI270 is not set # CONFIG_PXA_SHARPSL is not set # CONFIG_MACH_TRIZEPS4 is not set CONFIG_PXA25x=y @@ -226,7 +227,7 @@ # Kernel Features # # CONFIG_PREEMPT is not set -CONFIG_NO_IDLE_HZ=y +# CONFIG_NO_IDLE_HZ is not set CONFIG_HZ=100 CONFIG_AEABI=y CONFIG_OABI_COMPAT=y @@ -364,7 +365,24 @@ # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set -# CONFIG_BT is not set +CONFIG_BT=y +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y +CONFIG_BT_RFCOMM=y +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=y +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=y + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_BCM2035UART=y +# CONFIG_BT_HCIVHCI is not set # CONFIG_IEEE80211 is not set # @@ -479,11 +497,21 @@ CONFIG_INPUT_TSDEV_SCREEN_Y=320 CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_LED_TRIGGER is not set # # Input Device Drivers # -# CONFIG_INPUT_KEYBOARD is not set +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ATKBD is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_GPIODEV_KEYS is not set +# CONFIG_GPIODEV_DIAGONAL is not set +CONFIG_KEYBOARD_GPIO=y # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TOUCHSCREEN=y @@ -526,7 +554,11 @@ # # Non-8250 serial port support # -# CONFIG_SERIAL_PXA is not set +CONFIG_SERIAL_PXA=y +# CONFIG_SERIAL_PXA_CONSOLE is not set +CONFIG_SERIAL_PXA_COUNT=4 +# CONFIG_SERIAL_PXA_IR is not set +CONFIG_SERIAL_CORE=y # CONFIG_RS232_SERIAL is not set CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set @@ -542,7 +574,6 @@ # CONFIG_WATCHDOG is not set # CONFIG_HW_RANDOM is not set # CONFIG_NVRAM is not set -# CONFIG_SA1100_RTC is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_TIHTC is not set @@ -574,14 +605,9 @@ # # CONFIG_HWMON is not set # CONFIG_HWMON_VID is not set +# CONFIG_POWER_SUPPLY is not set # -# Hardware Monitoring - external power and batteries -# -# CONFIG_EXTERNAL_POWER is not set -# CONFIG_BATTERY is not set - -# # L3 serial bus support # # CONFIG_L3 is not set @@ -602,6 +628,7 @@ # CONFIG_MFD_SM501 is not set # CONFIG_HTC_ASIC2 is not set # CONFIG_HTC_ASIC3 is not set +# CONFIG_HTC_EGPIO is not set # CONFIG_HTC_ASIC3_DS1WM is not set # CONFIG_SOC_SAMCOP is not set # CONFIG_SOC_HAMCOP is not set @@ -609,7 +636,6 @@ # CONFIG_SOC_T7L66XB is not set # CONFIG_SOC_TC6387XB is not set # CONFIG_SOC_TC6393XB is not set -# CONFIG_SOC_TSC2101 is not set # CONFIG_SOC_TSC2200 is not set # @@ -735,7 +761,8 @@ # # HID Devices # -# CONFIG_HID is not set +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set # # USB support @@ -828,6 +855,7 @@ # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set +# CONFIG_AUFS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-19 07:20:27
|
Revision: 1180 http://svn.sourceforge.net/hackndev/?rev=1180&view=rev Author: bobofdoom Date: 2007-07-19 00:20:25 -0700 (Thu, 19 Jul 2007) Log Message: ----------- QEMU: Started adding support for pxa270 matrix keypad interface. Modified Paths: -------------- qemu/trunk/Makefile.target Added Paths: ----------- qemu/trunk/hw/pxa270_keypad.c Modified: qemu/trunk/Makefile.target =================================================================== --- qemu/trunk/Makefile.target 2007-07-19 01:08:06 UTC (rev 1179) +++ qemu/trunk/Makefile.target 2007-07-19 07:20:25 UTC (rev 1180) @@ -469,7 +469,7 @@ VL_OBJS+= arm-semi.o VL_OBJS+= pxa2xx.o pxa2xx_pic.o pxa2xx_gpio.o pxa2xx_timer.o pxa2xx_dma.o VL_OBJS+= pxa2xx_lcd.o pxa2xx_mmci.o pxa2xx_pcmcia.o max111x.o max7310.o -VL_OBJS+= palm.o mdoc.o +VL_OBJS+= palm.o mdoc.o pxa270_keypad.o VL_OBJS+= spitz.o ads7846.o ide.o serial.o nand.o $(AUDIODRV) wm8750.o wm8753.o VL_OBJS+= s3c2410.o s3c24xx_gpio.o s3c24xx_lcd.o s3c24xx_mmci.o s3c24xx_rtc.o VL_OBJS+= s3c24xx_udc.o neo1973.o pcf5060x.o jbt6k74.o Added: qemu/trunk/hw/pxa270_keypad.c =================================================================== --- qemu/trunk/hw/pxa270_keypad.c (rev 0) +++ qemu/trunk/hw/pxa270_keypad.c 2007-07-19 07:20:25 UTC (rev 1180) @@ -0,0 +1,106 @@ +/* + * Intel XScale PXA270 Keypad Interface emulation. + * + * Copyright (c) 2007 Alex Osborne <bob...@gm...> + * + * This code is licensed under the GPL (version 2 or later). + */ + +#include "vl.h" + +#define PXA2XX_GPIO_BANKS 4 + +struct pxa270_keypad_s { + target_phys_addr_t base; +}; +#define KPC 0x00 +#define KPDK 0x08 +#define KPREC 0x10 +#define KPMK 0x18 +#define KPAS 0x20 +#define KPASMKP0 0x28 +#define KPASMKP1 0x30 +#define KPASMKP2 0x38 +#define KPASMKP3 0x40 +#define KPKDI 0x48 + +#if 0 +static struct { + enum { + } reg; + int bank; +} pxa270_keypad_regs[0x200] = { + [0 ... 0x1ff] = { KP_NONE, 0 }, +#define PXA2XX_REG(reg, a0, a1, a2, a3) \ + [a0] = { reg, 0 }, [a1] = { reg, 1 }, [a2] = { reg, 2 }, [a3] = { reg, 3 }, + + PXA2XX_REG(GPLR, 0x000, 0x004, 0x008, 0x100) + PXA2XX_REG(GPSR, 0x018, 0x01c, 0x020, 0x118) + PXA2XX_REG(GPCR, 0x024, 0x028, 0x02c, 0x124) + PXA2XX_REG(GPDR, 0x00c, 0x010, 0x014, 0x10c) + PXA2XX_REG(GRER, 0x030, 0x034, 0x038, 0x130) + PXA2XX_REG(GFER, 0x03c, 0x040, 0x044, 0x13c) + PXA2XX_REG(GEDR, 0x048, 0x04c, 0x050, 0x148) + PXA2XX_REG(GAFR_L, 0x054, 0x05c, 0x064, 0x06c) + PXA2XX_REG(GAFR_U, 0x058, 0x060, 0x068, 0x070) +}; +#endif + +static uint32_t pxa270_keypad_read(void *opaque, target_phys_addr_t offset) +{ + struct pxa270_keypad_s *s = (struct pxa270_keypad_s *) opaque; + offset -= s->base; + if (offset >= 0x200) + return 0; + + return 0; +} + +static void pxa270_keypad_write(void *opaque, + target_phys_addr_t offset, uint32_t value) +{ + struct pxa270_keypad_s *s = (struct pxa270_keypad_s *) opaque; + offset -= s->base; + if (offset >= 0x200) + return; + +} + +static CPUReadMemoryFunc *pxa270_keypad_readfn[] = { + pxa270_keypad_read, + pxa270_keypad_read, + pxa270_keypad_read +}; + +static CPUWriteMemoryFunc *pxa270_keypad_writefn[] = { + pxa270_keypad_write, + pxa270_keypad_write, + pxa270_keypad_write +}; + +static void pxa270_keypad_handler(struct pxa270_keypad_s *s, int keycode) +{ + printf("Got keycode: %08x\n", keycode); +} + + +struct pxa270_keypad_s *pxa270_keypad_init(target_phys_addr_t base) +{ + int iomemtype; + struct pxa270_keypad_s *s; + + s = (struct pxa270_keypad_s *) + qemu_mallocz(sizeof(struct pxa270_keypad_s)); + memset(s, 0, sizeof(struct pxa270_keypad_s)); + + iomemtype = cpu_register_io_memory(0, pxa270_keypad_readfn, + pxa270_keypad_writefn, s); + cpu_register_physical_memory(base, 0x00001000, iomemtype); + + qemu_add_kbd_event_handler((QEMUPutKBDEvent *) pxa270_keypad_handler, s); + /* TODO: register_savevm("pxa270_keypad", 0, 0, + pxa270_keypad_save, pxa2xx_gpio_load, s); */ + + return s; +} + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-19 01:08:19
|
Revision: 1179 http://svn.sourceforge.net/hackndev/?rev=1179&view=rev Author: bobofdoom Date: 2007-07-18 18:08:06 -0700 (Wed, 18 Jul 2007) Log Message: ----------- PalmT650: Make wakeup from standby possible by replugging AC97. Haven't figure out how to get keypad wakeup to work yet. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c 2007-07-19 01:06:17 UTC (rev 1178) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_pm.c 2007-07-19 01:08:06 UTC (rev 1179) @@ -33,8 +33,12 @@ PWER |= PWER_RTC | PWER_WEP1; PWER |= 2 << 19; /* wake on SD */ + PWER |= 1; + PRER |= 1; + PFER |= 1; + /* Wakeup by keyboard :-) */ - PKWR = 0x01; + PKWR = 0xffffff; /* Enabled Deep-Sleep mode */ PCFR |= PCFR_DS; @@ -47,7 +51,7 @@ {} /* Turn off LCD power */ - SET_PALMT650_GPIO(LCD_POWER,0); + //SET_PALMT650_GPIO(LCD_POWER,0); /* Turn off USB power */ /* SET_PALMT650_GPIO(USB_POWER,0); */ @@ -71,7 +75,7 @@ /* Here are all of special to resume PalmOne treo 650 */ /* Turn on LCD power */ - SET_PALMT650_GPIO(LCD_POWER,1); + //SET_PALMT650_GPIO(LCD_POWER,1); /* Turn on USB power */ /* SET_PALMT650_GPIO(USB_POWER,1); */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-19 01:06:19
|
Revision: 1178 http://svn.sourceforge.net/hackndev/?rev=1178&view=rev Author: bobofdoom Date: 2007-07-18 18:06:17 -0700 (Wed, 18 Jul 2007) Log Message: ----------- L4P: Added deprecation warning to pxapwm_bl. Modified Paths: -------------- linux4palm/linux/trunk/drivers/video/backlight/pxapwm_bl.c Modified: linux4palm/linux/trunk/drivers/video/backlight/pxapwm_bl.c =================================================================== --- linux4palm/linux/trunk/drivers/video/backlight/pxapwm_bl.c 2007-07-18 13:08:16 UTC (rev 1177) +++ linux4palm/linux/trunk/drivers/video/backlight/pxapwm_bl.c 2007-07-19 01:06:17 UTC (rev 1178) @@ -8,6 +8,10 @@ * */ +#warning --------------------------------------------------------------------- +#warning PXA PWM backlight driver is deperecated, please use corgi_bl instead. +#warning --------------------------------------------------------------------- + #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-18 13:08:18
|
Revision: 1177 http://svn.sourceforge.net/hackndev/?rev=1177&view=rev Author: bobofdoom Date: 2007-07-18 06:08:16 -0700 (Wed, 18 Jul 2007) Log Message: ----------- PalmT650: Skip DEBUG_LL IO mapping on Treo as it causes a reset. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/kernel/head.S Modified: linux4palm/linux/trunk/arch/arm/kernel/head.S =================================================================== --- linux4palm/linux/trunk/arch/arm/kernel/head.S 2007-07-18 10:20:37 UTC (rev 1176) +++ linux4palm/linux/trunk/arch/arm/kernel/head.S 2007-07-18 13:08:16 UTC (rev 1177) @@ -277,12 +277,14 @@ orr r6, r6, #(PHYS_OFFSET & 0x00e00000) str r6, [r0] -#ifdef CONFIG_DEBUG_LL +#if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_MACH_XSCALE_PALMTREO650) ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags /* * Map in IO space for serial debugging. * This allows debug messages to be output * via a serial console before paging_init. + * + * Disabled on Treo as it causes a reset for some reason. */ ldr r3, [r8, #MACHINFO_PGOFFIO] add r0, r4, r3 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-18 10:20:39
|
Revision: 1176 http://svn.sourceforge.net/hackndev/?rev=1176&view=rev Author: bobofdoom Date: 2007-07-18 03:20:37 -0700 (Wed, 18 Jul 2007) Log Message: ----------- Cocoboot: Tagged 0.4 Added Paths: ----------- cocoboot/tags/cocoboot-0.4/ Copied: cocoboot/tags/cocoboot-0.4 (from rev 1175, cocoboot/trunk) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-18 10:18:29
|
Revision: 1175 http://svn.sourceforge.net/hackndev/?rev=1175&view=rev Author: bobofdoom Date: 2007-07-18 03:18:09 -0700 (Wed, 18 Jul 2007) Log Message: ----------- Cocoboot: Version 0.4 Modified Paths: -------------- cocoboot/trunk/Changelog cocoboot/trunk/include/cocoboot.rcp Modified: cocoboot/trunk/Changelog =================================================================== --- cocoboot/trunk/Changelog 2007-07-17 15:21:09 UTC (rev 1174) +++ cocoboot/trunk/Changelog 2007-07-18 10:18:09 UTC (rev 1175) @@ -1,3 +1,5 @@ +version 0.4: + - Fixed 'c01d' error introduced in 0.3 on LD, TX etc. - Added reading of a config file. - Added option for skipping prompts. Modified: cocoboot/trunk/include/cocoboot.rcp =================================================================== --- cocoboot/trunk/include/cocoboot.rcp 2007-07-17 15:21:09 UTC (rev 1174) +++ cocoboot/trunk/include/cocoboot.rcp 2007-07-18 10:18:09 UTC (rev 1175) @@ -1,7 +1,7 @@ #include "cocoboot_r.h" APPLICATIONICONNAME ID 1000 "Cocoboot" -VERSION "0.2" +VERSION "0.4" ICON BEGIN @@ -79,7 +79,7 @@ -STRING GnuGpl "Cocoboot 0.3, PalmOS Linux loader.\n"\ +STRING GnuGpl "Cocoboot 0.4, PalmOS Linux loader.\n"\ "Copyright (C) 2006\n"\ "\n"\ "www.hackndev.com\n"\ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ke...@us...> - 2007-07-17 15:21:19
|
Revision: 1174 http://svn.sourceforge.net/hackndev/?rev=1174&view=rev Author: keddar Date: 2007-07-17 08:21:09 -0700 (Tue, 17 Jul 2007) Log Message: ----------- palmtt3: migrate to corgi-bl Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3.c 2007-07-17 10:26:05 UTC (rev 1173) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3.c 2007-07-17 15:21:09 UTC (rev 1174) @@ -11,6 +11,8 @@ #include <linux/kernel.h> #include <linux/init.h> #include <linux/input.h> +#include <linux/corgi_bl.h> + #include <asm/mach/arch.h> #include <asm/mach-types.h> #include <asm/arch/hardware.h> @@ -39,7 +41,6 @@ #include <linux/input.h> #include <linux/soc/tsc2101.h> #include <asm/arch/pxa-pm_ll.h> -#include <asm/arch/pxapwm-bl.h> #include <asm/arch/palmtt3-gpio.h> #include <asm/arch/palmtt3-init.h> #include <asm/arch/tps65010.h> @@ -51,15 +52,6 @@ /*** FRAMEBUFFER ***/ -static void palmtt3_pxafb_backlight_power(int level) -{ - // just turn it on/off, other controls via backlight class - if(level) - CKEN = CKEN | CKEN1_PWM1; - else - CKEN = CKEN & (~CKEN1_PWM1); -} - static void palmtt3_pxafb_lcd_power(int level, struct fb_var_screeninfo *var) { if(level) { @@ -109,11 +101,13 @@ .num_modes = ARRAY_SIZE(palmtt3_lcd_modes), .lccr0 = PALMTT3_INIT_LCD_LCCR0, .lccr3 = PALMTT3_INIT_LCD_LCCR3, - .pxafb_backlight_power = &palmtt3_pxafb_backlight_power, + .pxafb_backlight_power = NULL, .pxafb_lcd_power = &palmtt3_pxafb_lcd_power, }; + /*** SSP ***/ + static struct ssp_dev palmtt3_ssp_dev; void palmtt3_ssp_init(void) @@ -204,13 +198,29 @@ }; /* Backlight ***/ -static struct pxapwmbl_platform_data palmtt3_backlight_data = { - .pwm = 1, +static void palmtt3_bl_power(int on) +{ + /* SET_PALMTT3_GPIO(BL_POWER, on); */ /* to be determined */ + pxa_set_cken(CKEN0_PWM0, on); + pxa_set_cken(CKEN1_PWM1, on); + mdelay(50); +} + +static void palmtt3_set_bl_intensity(int intensity) +{ + palmtt3_bl_power(intensity ? 1 : 0); + if(intensity) { + PWM_CTRL1 = 0x7; + PWM_PERVAL1 = PALMTT3_PERIOD; + PWM_PWDUTY1 = intensity; + } +} + +static struct corgibl_machinfo palmtt3_bl_machinfo = { .max_intensity = PALMTT3_MAX_INTENSITY, .default_intensity = PALMTT3_DEFAULT_INTENSITY, + .set_bl_intensity = palmtt3_set_bl_intensity, .limit_mask = PALMTT3_LIMIT_MASK, - .prescaler = PALMTT3_PRESCALER, - .period = PALMTT3_PERIOD, }; /*** LEDs ***/ @@ -261,9 +271,10 @@ /*** Backlight ***/ static struct platform_device palmtt3_backlight_device = { - .name = "pxapwm-bl", + .name = "corgi-bl", + .id = 0, .dev = { - .platform_data = &palmtt3_backlight_data, + .platform_data = &palmtt3_bl_machinfo, }, }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-17 10:26:10
|
Revision: 1173 http://svn.sourceforge.net/hackndev/?rev=1173&view=rev Author: bobofdoom Date: 2007-07-17 03:26:05 -0700 (Tue, 17 Jul 2007) Log Message: ----------- Cocoboot: Added missing endian swapping around tt_offset. This should fix 'Returned c01d' error on LD, TX etc. Modified Paths: -------------- cocoboot/trunk/m68k/cocoboot.c Modified: cocoboot/trunk/m68k/cocoboot.c =================================================================== --- cocoboot/trunk/m68k/cocoboot.c 2007-07-17 09:05:42 UTC (rev 1172) +++ cocoboot/trunk/m68k/cocoboot.c 2007-07-17 10:26:05 UTC (rev 1173) @@ -140,7 +140,7 @@ arm_globals.ram_base = EndianFix32(get_ram_base()); arm_globals.ram_size = EndianFix32(get_ram_size()); arm_globals.mach_num = EndianFix32(835); - arm_globals.tt_offset = get_tt_offset(); + arm_globals.tt_offset = EndianFix32(get_tt_offset()); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2007-07-17 09:05:44
|
Revision: 1172 http://svn.sourceforge.net/hackndev/?rev=1172&view=rev Author: marex_z71 Date: 2007-07-17 02:05:42 -0700 (Tue, 17 Jul 2007) Log Message: ----------- PalmTT5: migrate to corgi_bl Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/configs/palmtt5_defconfig linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt5/palmtt5.c linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtt5-init.h Modified: linux4palm/linux/trunk/arch/arm/configs/palmtt5_defconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/configs/palmtt5_defconfig 2007-07-17 08:50:45 UTC (rev 1171) +++ linux4palm/linux/trunk/arch/arm/configs/palmtt5_defconfig 2007-07-17 09:05:42 UTC (rev 1172) @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.21-hnd2 -# Fri Jul 13 01:44:04 2007 +# Tue Jul 17 10:07:03 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -901,8 +901,8 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=m CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_BACKLIGHT_CORGI is not set -CONFIG_BACKLIGHT_PXAPWM=m +CONFIG_BACKLIGHT_CORGI=m +# CONFIG_BACKLIGHT_PXAPWM is not set CONFIG_FB=y CONFIG_FIRMWARE_EDID=y # CONFIG_FB_DDC is not set Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt5/palmtt5.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt5/palmtt5.c 2007-07-17 08:50:45 UTC (rev 1171) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt5/palmtt5.c 2007-07-17 09:05:42 UTC (rev 1172) @@ -21,6 +21,7 @@ #include <linux/input.h> #include <linux/delay.h> #include <linux/irq.h> +#include <linux/corgi_bl.h> #include <asm/mach-types.h> #include <asm/mach/arch.h> @@ -38,27 +39,10 @@ #include <asm/arch/udc.h> #include <asm/arch/irda.h> #include <asm/arch/pxa27x_keyboard.h> -#include <asm/arch/pxapwm-bl.h> #include <asm/arch/serial.h> #include "../generic.h" -static void palmtt5_backlight_power(int on) -{ - if(on) { - /* setup backlight PWM settings */ - PWM_CTRL0 = 0x7; - PWM_PWDUTY0 = 0x11a; - PWM_PERVAL0 = 0x16c; - - /* turn on PWMs */ - CKEN |= CKEN0_PWM0 | CKEN1_PWM1; - } else { - /* turn off PWMs */ - CKEN &= ~(CKEN0_PWM0 | CKEN1_PWM1); - } -} - /************************** * SD/MMC card controller * **************************/ @@ -165,32 +149,37 @@ * Backlight * *************/ -static void palmtt5_bl_on(void){ - SET_GPIO(GPIO_NR_PALMTT5_BL_POWER, 1); - mdelay(50); +static void palmtt5_bl_power(int on) +{ + SET_PALMTT5_GPIO(BL_POWER, on); + pxa_set_cken(CKEN0_PWM0, on); + pxa_set_cken(CKEN1_PWM1, on); + mdelay(50); } -static void palmtt5_bl_off(void){ - SET_GPIO(GPIO_NR_PALMTT5_BL_POWER, 0); - mdelay(50); +static void palmtt5_set_bl_intensity(int intensity) +{ + palmtt5_bl_power(intensity ? 1 : 0); + if(intensity) { + PWM_CTRL0 = 0x7; + PWM_PERVAL0 = PALMTT5_PERIOD; + PWM_PWDUTY0 = intensity; + } } -static struct pxapwmbl_platform_data palmtt5_backlight_data = { - .pwm = 0, - .max_intensity = 0x16c, - .default_intensity = 0xc7, - .limit_mask = 0x6d, - .prescaler = 7, - .period = 0x16c, - .turn_bl_on = palmtt5_bl_on, - .turn_bl_off = palmtt5_bl_off, +static struct corgibl_machinfo palmtt5_bl_machinfo = { + .max_intensity = PALMTT5_MAX_INTENSITY, + .default_intensity = PALMTT5_MAX_INTENSITY, + .set_bl_intensity = palmtt5_set_bl_intensity, + .limit_mask = PALMTT5_LIMIT_MASK, }; static struct platform_device palmtt5_backlight = { - .name = "pxapwm-bl", - .dev = { - .platform_data = &palmtt5_backlight_data, - }, + .name = "corgi-bl", + .id = 0, + .dev = { + .platform_data = &palmtt5_bl_machinfo, + }, }; @@ -400,7 +389,7 @@ /* Set divisor to 2 to get rid of screen whining */ .lccr3 = LCCR3_PixClkDiv(2) | LCCR3_HorSnchL | LCCR3_VrtSnchL | LCCR3_PixFlEdg | LCCR3_Bpp(4), - .pxafb_backlight_power = palmtt5_backlight_power, + .pxafb_backlight_power = NULL, }; static struct map_desc palmtt5_io_desc[] __initdata = { Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtt5-init.h =================================================================== --- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtt5-init.h 2007-07-17 08:50:45 UTC (rev 1171) +++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmtt5-init.h 2007-07-17 09:05:42 UTC (rev 1172) @@ -32,21 +32,29 @@ #define PALMTT5_KM_COLS 3 -// TOUCHSCREEN +/* TOUCHSCREEN */ #define AC97_LINK_FRAME 21 -// BATTERY +/* BATTERY */ -#define PALMTT5_BAT_MAX_VOLTAGE 4000 // 4.00v current voltage at max charge as from Filez -#define PALMTT5_BAT_MIN_VOLTAGE 3550 // 3.55v critical voltage as from FileZ -#define PALMTT5_BAT_MAX_CURRENT 0 // unknokn -#define PALMTT5_BAT_MIN_CURRENT 0 // unknown -#define PALMTT5_BAT_MAX_CHARGE 1 // unknown -#define PALMTT5_BAT_MIN_CHARGE 1 // unknown -#define PALMTT5_MAX_LIFE_MINS 360 // on-life in minutes +#define PALMTT5_BAT_MAX_VOLTAGE 4000 /* 4.00v current voltage at max charge as from Filez */ +#define PALMTT5_BAT_MIN_VOLTAGE 3550 /* 3.55v critical voltage as from FileZ */ +#define PALMTT5_BAT_MAX_CURRENT 0 /* unknokn */ +#define PALMTT5_BAT_MIN_CURRENT 0 /* unknown */ +#define PALMTT5_BAT_MAX_CHARGE 1 /* unknown */ +#define PALMTT5_BAT_MIN_CHARGE 1 /* unknown */ +#define PALMTT5_MAX_LIFE_MINS 360 /* on-life in minutes */ #define PALMTT5_BAT_MEASURE_DELAY (HZ * 1) +/* BACKLIGHT */ + +#define PALMTT5_MAX_INTENSITY 0xFE +#define PALMTT5_DEFAULT_INTENSITY 0x7E +#define PALMTT5_LIMIT_MASK 0x7F +#define PALMTT5_PRESCALER 0x3F +#define PALMTT5_PERIOD 0x12C + #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-17 08:50:50
|
Revision: 1171 http://svn.sourceforge.net/hackndev/?rev=1171&view=rev Author: bobofdoom Date: 2007-07-17 01:50:45 -0700 (Tue, 17 Jul 2007) Log Message: ----------- PalmT650: Switch back to corgi_bl (basically undoing r986). Modified Paths: -------------- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-init.h Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-init.h =================================================================== --- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-init.h 2007-07-17 08:50:10 UTC (rev 1170) +++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-init.h 2007-07-17 08:50:45 UTC (rev 1171) @@ -19,5 +19,6 @@ #define PALMT650_MAX_INTENSITY 0x1ad #define PALMT650_DEFAULT_INTENSITY 0xe5 #define PALMT650_LIMIT_MASK 0x7f +#define PALMT650_BL_PERIOD 0x12c #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-17 08:50:14
|
Revision: 1170 http://svn.sourceforge.net/hackndev/?rev=1170&view=rev Author: bobofdoom Date: 2007-07-17 01:50:10 -0700 (Tue, 17 Jul 2007) Log Message: ----------- PalmT650: Switch back to corgi_bl (basically undoing r986). Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-07-17 07:54:20 UTC (rev 1169) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-07-17 08:50:10 UTC (rev 1170) @@ -27,7 +27,6 @@ #include <asm/arch/pxafb.h> #include <asm/arch/pxa-regs.h> #include <asm/arch/pxa27x_keyboard.h> -#include <asm/arch/pxapwm-bl.h> #include <asm/arch/irda.h> #include <asm/arch/sharpsl.h> #include <asm/arch/udc.h> @@ -121,19 +120,36 @@ * Backlight *********************************************************/ -static struct pxapwmbl_platform_data palmt650_backlight_data = { - .pwm = 0, +static void palmt650_set_bl_power(int on) +{ + /* TODO: set GPIOs */ + pxa_set_cken(CKEN0_PWM0, on); + pxa_set_cken(CKEN1_PWM1, on); +} + +static void palmt650_set_bl_intensity(int intensity) +{ + palmt650_set_bl_power(intensity ? 1 : 0); + if (intensity) { + PWM_CTRL0 = 0x1; + PWM_PERVAL0 = PALMT650_BL_PERIOD; + PWM_PWDUTY0 = intensity; + } +} + +static struct corgibl_machinfo palmt650_bl_machinfo = { .max_intensity = PALMT650_MAX_INTENSITY, .default_intensity = PALMT650_DEFAULT_INTENSITY, .limit_mask = PALMT650_LIMIT_MASK, - .prescaler = 1, - .period = 0x12C, + .set_bl_intensity = palmt650_set_bl_intensity, }; + static struct platform_device palmt650_backlight = { - .name = "pxapwm-bl", + .name = "corgi-bl", + .id = 0, .dev = { - .platform_data = &palmt650_backlight_data, + .platform_data = &palmt650_bl_machinfo, }, }; /********************************************************* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |