List Info

Thread: ipaq 3630




ipaq 3630
user name
2006-03-24 12:24:55
hi

i have a ipaq 3630 with pocketpc 2002 simple chinese ,i
want't to know
could i run hpcboot on it , it is not win ce 3.0.

thanks.

by the way, anybody in interesting
netbsd(hpcarm)+ipaq3630+minigui??


What is MiniGUI?
MiniGUI is "a cross-operating-system graphics user
interface support
system for embedded devices", and is "an
embedded graphics
middleware". It aims to provide a compact, fast,
stable, lightweight,
and cross-OS GUI support system, which is especially fit for
real-time
embedded systems based-on Linux/uClinux, eCos, uC/OS-II, and
other
traditional RTOSes, such as VxWorks, ThreadX, and Nucleus.
More...



--
----------------------
Mr.Zhenhua Xu
----------------------
Tel:+86-13771087654
MSNuone<
img src="/img/at.gif" align="middle" border="0"
alt="">hotmail.com
E-mail:alfantorgmail.com,alfantoryahoo.com.cn,alfantor163.com
ipaq 3630
user name
2006-03-25 12:55:49
On Fri, Mar 24, 2006 at 08:24:55PM +0800, alfantor wrote:
> hi
> 
> i have a ipaq 3630 with pocketpc 2002 simple chinese ,i
want't to know
> could i run hpcboot on it , it is not win ce 3.0.
> 
> thanks.
> 
> by the way, anybody in interesting
netbsd(hpcarm)+ipaq3630+minigui??
> 
yes, as I own also an ipaq 3630, but currently, the kernel
does not
work really well.

I only tried to run it on from console, and it failed to
mount root from
CF->PCMCIA adapter. After a few debug, it seems that the
pcmcia driver
itself does not work as it should (it detects incoherent
state, doesn't
detach event, detects insertion events that doesn't occurs,
detects some
CF, but not others[1]). I tried to look at the driver used
by the
jornada, but it doesn't use pcic from SA1110 but from the
SA1111.

The atmelgpio (which seems to handle battery info.) seems to
work with
small correction to the current code (see attached patch).

I didn't test the LCD driver by now.

I'll will put online the few dmesg I got during my reserach
if someone
else is interested.

regards,

Arnaud

ps: I did all my test on an ipaq 3100 but I got the same
result on a 3630

[1]: in this case, it failed to read CIS information
correctly from a
128Mo CF card (cf the following part of dmesg from an ipaq
3100 (wrong
CIS) and my laptop (good CIS):

       IPAQ 3100                             Laptop
pcmcia1: CIS tuple chain:          pcmcia0: CIS tuple chain:
 52 00                             01 03 d9 01 ff
unhandled CISTPL 52                CISTPL_DEVICE
type=funcspec speed=250ns
 00                                1c 04 03 d9 01 ff
CISTPL_NONE                        unhandled CISTPL 1c
 00                                18 02 df 01
CISTPL_NONE                        unhandled CISTPL 18
 00                                20 04 98 00 00 00
CISTPL_NONE                        CISTPL_MANFID
 00                                15 20 04 01 54 4f 53 48
49 42 41 20 54
CISTPL_NONE                        [...]
[...]                              pcmcia0: CIS version
PCMCIA 2.0 or 2.1
CISTPL_END (too long CIS)          pcmcia0: CIS info:
TOSHIBA THNCF128MMA , , ,
[...]
pcmcia1: card appears to have bogus CIS
--- /usr/src/sys/arch/hpcarm/dev/ipaq_atmelgpio.c	2005-12-11
13:17:31.000000000 +0100
+++ sys/arch/hpcarm/dev/ipaq_atmelgpio.c	2006-02-10
16:35:43.000000000 +0100
 -58,9
+58,9 
 #include <hpcarm/dev/ipaq_gpioreg.h>
 #include <hpcarm/dev/ipaq_atmel.h>
 #include <hpcarm/dev/ipaq_atmelvar.h>
-#include <hpcarm/sa11x0/sa11x0_gpioreg.h>
-#include <hpcarm/sa11x0/sa11x0_comreg.h>
-#include <hpcarm/sa11x0/sa11x0_reg.h>
+#include <arm/sa11x0/sa11x0_gpioreg.h>
+#include <arm/sa11x0/sa11x0_comreg.h>
+#include <arm/sa11x0/sa11x0_reg.h>
 
 #ifdef ATMEL_DEBUG
 #define DPRINTF(x) printf x
 -99,7
+99,7 
 	struct atmelgpio_softc *sc = (struct atmelgpio_softc
*)self;
 	struct ipaq_softc *psc = (struct ipaq_softc *)parent;
 
-	struct atmel_rx *rxbuf;
+	struct atmel_rx rxbuf;
 
 	printf("\n");
 	printf("%s: Atmel microcontroller GPIO\n", 
sc->sc_dev.dv_xname);
 -117,15
+117,15 
 	atmelgpio_init(sc);
 
 #if 1  /* this is sample */
-	rxtx_data(sc, STATUS_BATTERY, 0, NULL, rxbuf); 
-
-	printf("ac_status          = %x\n",
rxbuf->data[0]);
-	printf("Battery kind       = %x\n",
rxbuf->data[1]);
+	rxtx_data(sc, STATUS_BATTERY, 0, NULL, &rxbuf); 
+	
+	printf("ac_status          = %x\n",
rxbuf.data[0]);
+	printf("Battery kind       = %x\n",
rxbuf.data[1]);
 	printf("Voltage            = %d mV\n",
-		1000 * (rxbuf->data[3] << 8 | rxbuf->data[2])
/228);
-	printf("Battery Status     = %x\n",
rxbuf->data[4]);
+		1000 * (rxbuf.data[3] << 8 | rxbuf.data[2]) /228);
+	printf("Battery Status     = %x\n",
rxbuf.data[4]);
 	printf("Battery percentage = %d\n",
-		425 * (rxbuf->data[3] << 8 | rxbuf->data[2])
/1000 - 298);
+		425 * (rxbuf.data[3] << 8 | rxbuf.data[2]) /1000 -
298);
 #endif
 
 	/*
[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )