Flameman/ipaq/status

= user land progress =
 * @16-02-2009, the stage3 armv4l has been started
 * @18-02-2009, ready to boot a minimal stage1 with init=/bin/bash root=/dev/hda3
 * @23-02-2009, stage3 has been finished, tested, well running and able to compile
 * @23-02-2009, stage3 is OK, stage4 has been started wirh xorg-x11 in mind (QT embedded is under studying)
 * @02-03-2009, stage4 has branched into microwindows stuff, nanoX has been compiled, tested, well running
 * @03-03-2009, wonder about an other branch to "QT-extended" ...

= kernel last report =

** lcd: working ** backlight : NOT working ** touchscreen : NOT working ** buttons: NOT working ** battery: NOT working (new battery device interface) ** sound: NOT working ** usb: NOT working ** RTC: working ** compactflash: not working ** pcmcia: sleeve 1xpcmcia is working with pATA-pcmcia-16bit/5V
 * @ 03-2009, 2.6.29.colie

** lcd: working ** backlight : working ** touchscreen : working, but it seems there is no handler ** buttons: working ** battery: NOT working (new battery device interface) ** sound: NOT working ** usb: NOT working ** RTC: working ** compactflash: not working ** pcmcia: sleeve 1xpcmcia is working with pATA-pcmcia-16bit/5V
 * @ 03-2009, 2.6.19-hh

old info at http://www.handhelds.org/moin/moin.cgi/KernelStatus

kernel proof
@ grem proof 03-03-2009

cvs -d :pserver:anoncvs@cvs.handhelds.org:/cvs login password : anoncvs
 * step1

cvs -z5 -d :pserver:anoncvs@cvs.handhelds.org:/cvs checkout -r K2-6-19-hh4 -f linux/kernel26


 * step3

patch -p1 < hh-26-gremlin-20061210.patch

mymake-arm h3600_defconfig
 * step4

manually configure the kernel, the used .config is [[Media:kernel-ipaq-proof-config.txt|kernel-ipaq-proof-config.txt]]
 * step4

mymake-arm
 * step5

and i get all these errors

[!] error CC     arch/arm/common/ipaq/ipaq-sleeve.o arch/arm/common/ipaq/ipaq-sleeve.c:19:26: error: linux/config.h: No such file or directory

[*] removed linux/config.h    ->     arch/arm/common/ipaq/ipaq-sleeve.c

[!] error drivers/pcmcia/h3600_generic_sleeve.c: In function 'cf_probe_sleeve': drivers/pcmcia/h3600_generic_sleeve.c:137: error: 'MECR_CIT' undeclared (first use in this function) drivers/pcmcia/h3600_generic_sleeve.c:137: error: (Each undeclared identifier is reported only once drivers/pcmcia/h3600_generic_sleeve.c:137: error: for each function it appears in.) drivers/pcmcia/h3600_generic_sleeve.c:137: error: 'MECR_NOS' undeclared (first use in this function) drivers/pcmcia/h3600_generic_sleeve.c: In function 'pcmcia_probe_sleeve': drivers/pcmcia/h3600_generic_sleeve.c:204: error: 'MECR_CIT' undeclared (first use in this function) drivers/pcmcia/h3600_generic_sleeve.c:204: error: 'MECR_NOS' undeclared (first use in this function) drivers/pcmcia/h3600_generic_sleeve.c: In function 'dual_pcmcia_probe_sleeve': drivers/pcmcia/h3600_generic_sleeve.c:397: error: 'MECR_CIT' undeclared (first use in this function) drivers/pcmcia/h3600_generic_sleeve.c:397: error: 'MECR_NOS' undeclared (first use in this function) drivers/pcmcia/h3600_generic_sleeve.c: In function 'dual_cf_probe_sleeve': drivers/pcmcia/h3600_generic_sleeve.c:518: error: 'MECR_CIT' undeclared (first use in this function) drivers/pcmcia/h3600_generic_sleeve.c:518: error: 'MECR_NOS' undeclared (first use in this function) make[2]: *** [drivers/pcmcia/h3600_generic_sleeve.o] Error 1

[*] investigating for MECR_CIT

arch/arm/mach-pxa/h4000/h4000_acx.c:// MECR |= MECR_CIT; arch/arm/mach-pxa/h4000/h4000_acx.c:// MECR &= ~MECR_CIT; drivers/pcmcia/h3600_generic_sleeve.c: MECR |= MECR_CIT | MECR_NOS; drivers/pcmcia/h3600_generic_sleeve.c: MECR |= MECR_CIT | MECR_NOS; drivers/pcmcia/h3600_generic_sleeve.c: MECR |= MECR_CIT | MECR_NOS; drivers/pcmcia/h3600_generic_sleeve.c: MECR |= MECR_CIT | MECR_NOS; drivers/pcmcia/pxa2xx_base.c:          MECR |= MECR_CIT; drivers/pcmcia/pxa2xx_base.c:  MECR = nr > 1 ? MECR_CIT | MECR_NOS : (nr > 0 ? MECR_CIT : 0); drivers/pcmcia/pxa2xx_core.c:  MECR |= MECR_CIT; include/asm-arm/arch-pxa/pxa-regs.h:#define MECR_CIT   (1 << 1)        /* Card Is There: 0 -> no card, 1 -> card inserted */ include/asm/arch-pxa/pxa-regs.h:#define MECR_CIT       (1 << 1)        /* Card Is There: 0 -> no card, 1 -> card inserted */

it seems there is no sa1100 support in this tree

example drivers/pcmcia/h3600_generic_sleeve.c

/*************************************************************************************/ /*      Compact Flash sleeve /*************************************************************************************/

static int __devinit cf_probe_sleeve(struct device *dev) {       SLEEVE_DEBUG(1,"%s\n", dev->driver->name); ipaq_sleeve_set_egpio(IPAQ_EGPIO_OPT_ON); //       soc_common_drv_pcmcia_probe (dev, &buffered_pcmcia_socket_ops, 0, 1); MECR |= MECR_CIT | MECR_NOS; return 0;

pribing the colie tree: not found

understanding what is missing

/* MECR register defines */
 * 1) define MECR_NOS       (1 << 0)        /* Number Of Sockets: 0 -> 1 sock, 1 -> 2 sock */
 * 2) define MECR_CIT       (1 << 1)        /* Card Is There: 0 -> no card, 1 -> card inserted */

[!] error CC     drivers/pcmcia/h3600_pcmcia.o drivers/pcmcia/h3600_pcmcia.c: In function 'h3600_common_pcmcia_init': drivers/pcmcia/h3600_pcmcia.c:51: warning: implicit declaration of function 'set_irq_type' drivers/pcmcia/h3600_pcmcia.c:51: error: 'IRQ_TYPE_EDGE_RISING' undeclared (first use in this function) drivers/pcmcia/h3600_pcmcia.c:51: error: (Each undeclared identifier is reported only once drivers/pcmcia/h3600_pcmcia.c:51: error: for each function it appears in.) drivers/pcmcia/h3600_pcmcia.c:51: error: 'IRQ_TYPE_EDGE_FALLING' undeclared (first use in this function)

[*] investigating

arch/arm/mach-pxa/palmld/palmld_ide.c: set_irq_type(hw.irq, IRQ_TYPE_EDGE_RISING); arch/avr32/mach-at32ap/extint.c:       case IRQ_TYPE_EDGE_RISING: arch/powerpc/platforms/52xx/mpc52xx_pic.c:     IRQ_TYPE_EDGE_RISING, arch/powerpc/platforms/52xx/mpc52xx_pic.c:     case IRQ_TYPE_EDGE_RISING: arch/powerpc/platforms/cell/interrupt.c:       *out_flags = IRQ_TYPE_EDGE_RISING; arch/powerpc/platforms/cell/spider-pic.c:      case IRQ_TYPE_EDGE_RISING: arch/powerpc/sysdev/cpm2_pic.c:        IRQ_TYPE_EDGE_RISING, arch/powerpc/sysdev/i8259.c:           IRQ_TYPE_EDGE_RISING, arch/powerpc/sysdev/mpc8xx_pic.c:              IRQ_TYPE_EDGE_RISING, arch/powerpc/sysdev/mpic.c:    case IRQ_TYPE_EDGE_RISING: arch/powerpc/sysdev/mpic.c:            IRQ_TYPE_EDGE_RISING, drivers/input/keyboard/asic3_keys.c:                           set_irq_type(irq, IRQ_TYPE_EDGE_RISING); include/asm-arm/irq.h:#define __IRQT_RISEDGE   IRQ_TYPE_EDGE_RISING include/asm/irq.h:#define __IRQT_RISEDGE       IRQ_TYPE_EDGE_RISING include/linux/irq.h:#define IRQ_TYPE_EDGE_RISING       0x00000001      /* Edge rising type */ include/linux/irq.h:#define IRQ_TYPE_EDGE_BOTH (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING) drivers/pcmcia/h3600_pcmcia.c:51: error: 'IRQ_TYPE_EDGE_FALLING' undeclared (first use in this function) sound/arm/htcathena_audio.c://  set_irq_type(irq, IRQ_TYPE_EDGE_RISING ); sound/arm/htcsable_audio.c:   set_irq_type(sable_headphone_irq, IRQ_TYPE_EDGE_RISING ); sound/arm/htcuniversal_audio.c: set_irq_type(irq, IRQ_TYPE_EDGE_RISING );

---> include/linux/irq.h:#define IRQ_TYPE_EDGE_RISING       0x00000001      /* Edge rising type */

[!] error CC     sound/arm/sa11xx-uda1341.o In file included from sound/arm/sa11xx-uda1341.c:94: include/sound/uda1341.h:122: warning: 'struct l3_client' declared inside parameter list include/sound/uda1341.h:122: warning: its scope is only this definition or declaration, which is probably not what you want sound/arm/sa11xx-uda1341.c: In function 'sa11xx_uda1341_set_samplerate': sound/arm/sa11xx-uda1341.c:271: warning: implicit declaration of function 'l3_command' sound/arm/sa11xx-uda1341.c: In function 'sa11xx_uda1341_audio_init': sound/arm/sa11xx-uda1341.c:320: warning: implicit declaration of function 'l3_open' sound/arm/sa11xx-uda1341.c: In function 'sa11xx_uda1341_audio_shutdown': sound/arm/sa11xx-uda1341.c:349: warning: implicit declaration of function 'l3_close' sound/arm/sa11xx-uda1341.c: In function 'snd_sa11xx_uda1341_free': sound/arm/sa11xx-uda1341.c:903: error: 'sa11xx_uda1341_t' undeclared (first use in this function) sound/arm/sa11xx-uda1341.c:903: error: (Each undeclared identifier is reported only once sound/arm/sa11xx-uda1341.c:903: error: for each function it appears in.) sound/arm/sa11xx-uda1341.c:903: error: 'chip' undeclared (first use in this function) sound/arm/sa11xx-uda1341.c:907: error: 'sa11xx_uda1341' undeclared (first use in this function) sound/arm/sa11xx-uda1341.c: In function 'sa11xx_uda1341_init': sound/arm/sa11xx-uda1341.c:921: error: 'sa11xx_uda1341_t' undeclared (first use in this function) sound/arm/sa11xx-uda1341.c:925: error: 'sa11xx_uda1341' undeclared (first use in this function) sound/arm/sa11xx-uda1341.c:928: error: 'chip' undeclared (first use in this function) sound/arm/sa11xx-uda1341.c:945: warning: implicit declaration of function 'snd_card_set_generic_pm_callback' sound/arm/sa11xx-uda1341.c:946: error: 'snd_sa11_uda1341_resume' undeclared (first use in this function) sound/arm/sa11xx-uda1341.c:953: warning: implicit declaration of function 'snd_card_set_generic_dev' sound/arm/sa11xx-uda1341.c: At top level: sound/arm/sa11xx-uda1341.c:976: error: 'sa11xx_uda1341_probe' undeclared here (not in a function) sound/arm/sa11xx-uda1341.c:988: error: redefinition of 'sa11xx_uda1341_init' sound/arm/sa11xx-uda1341.c:913: error: previous definition of 'sa11xx_uda1341_init' was here sound/arm/sa11xx-uda1341.c: In function 'sa11xx_uda1341_init': sound/arm/sa11xx-uda1341.c:991: warning: implicit declaration of function 'machine_is_h3xxx' sound/arm/sa11xx-uda1341.c:1001: error: expected ';' before '}' token make[2]: *** [sound/arm/sa11xx-uda1341.o] Error 1

[*] removing the module


 * step ... umm fixing issues, recompile, check it out

kernel param: root=/dev/hda3 console=ttySA0

kernel: not back lighting, stalled at the /sbin/init (dunno why), not working with sleeve 2xpcmcia, booting with 1xpcmcia .... i can't test anything else cause /sbin/init has not been completed

new config, and a bit of hacking: it is now booting

touch screen
config TOUCHSCREEN_BITSY 33        tristate "Compaq iPAQ H3600 (Bitsy) touchscreen" 34        depends on SA1100_BITSY 35        select SERIO 36        help 37          Say Y here if you have the h3600 (Bitsy) touchscreen. 38 39           If unsure, say N. 40 41          To compile this driver as a module, choose M here: the 42          module will be called h3600_ts_input.

= history =

11-2005
new MACHINE_START definition for ipaq h3600

From: Alessandro GARDICH  Date: Mon, 14 Nov 2005 21:11:35 +0100

Nothing change, just to follow the new way for the definition.

* text/x-patch attachment: handhelds-sa-26.patch

ipaq h3600 - patch for new egpio functions

From: Alessandro GARDICH  Date: Sat, 19 Nov 2005 18:30:22 +0100

Nothing change, just to follow the new way *_egpio function.

Remain out only micro that have to be full rewriten and uda1341 OSS driver, alsa one should work.

01-2006
From: Alessandro GARDICH  Date: Fri, 06 Jan 2006 18:23:16 +0100

Hi to all, another patch for iPAQ h3600

epiphany patch : - estetic code clean-up - support for keys device - backlight device definition - backlight are now restored after framebuffer blank/resume
 * arch/arm/common/ipaq/micro.c :

- support for keys (5 application keys and 4 directions pad)
 * arch/arm/common/ipaq/micro_key.c :

- moved from arch/arm/mach-pxa/pxa_keys.c   - small changes to be used also for h3600 device
 * arch/arm/common/pxa_keys.c :

- add support for power and action keys - backlight device definition moved in micro.c
 * arch/arm/mach-sa1100/h3600.c

- to not break existing pxa code it only include hardware/pxa_keys.h
 * include/asm-arm/arch-pxa/pxa_keys.h

- add definition for GPIO number (not bit) for action button
 * include/asm-arm/arch-sa1100/h3600_gpio.h

- add definition for GPIO number (not bit) for power button
 * include/asm-arm/arch-sa1100/h3600.h

- macro to get IRQ for a giver GPIO
 * include/asm-arm/arch-sa1100/irqs.h

- moved from include/asm-arm/arch-pxa/pxa_keys.h
 * include/asm-arm/hardware/pxa_keys.h

There are still some issues with micro* modules after sustend/resume and when unloading.

This is really the epyphany patch, the end of xmas vacation. From monday work and pool start again and so spare time will be just few hours for day. :) But i'll continue ...

I'm also looking on ebay if I can find a cheap h37xx and h38xx to take care of such iPAQs also.