TuxScreen on SourceForge TuxScreen CVS search the Wiki
Browsing -> Wiki -> Users -> [FvGestel]
Google
Topic:
edit, info, topics, orphans, hubs and nodes, or recent changes in the Wiki create a new user or login

4 June 2002

Itīs me again! :) First of all thank you very much for setting up the page, it helped me alot. Did you submit your patches (e.g. 3c589) for inclusion in the -tux patches? I ran into another problem while playing with qt/e. What did you do to get the TouchPanel work with it? Whatīs your QWS_MOUSE_PROTO value? -Rolf


2 May 2002

No problem, Rolf. I've setup a page and a downloadable kernel at http://fvgestel.dyndns.org/tuxscreen/

QPE works as a charm now. I had to start QPE from console to get the keyboard working(pretty obvious). I had to rename the applets directory though; applets seem to crash the server. Ihacked out all the specific ipaq stuff out of the battery applet, but I still cannot load any applets. Anyone with Success?

I also miss the start-button and the inputmethods (keyboard/writing). How do I activate these?

Next step is compiling conquerer/e and kmerlin(for my wife...)


30 april 2002

Hi! Sorry for messing with your Wiki, feel free to delete this text. I was not able to find your email so this is the only way I can think of to contact you. I am trying to get a 3C589 card to work with the tuxscreen but had no success so far. Would you mind giving me a working kernel and image file to start from? My email is rolf.offermanns@gmx.net. Thank you very much.


28 april 2002

Built QPE. hacked the touchscreen stuff to work on tuxscreen. Keyboard not working yet. I've built the full QPE-suite, so I end up with "out of memory"-errors when starting something big. I'll compile a new kernel, which allows swap over NFS. Will go to sleep now...


24 april 2002

read the kernel list again. Russel's suggested patch :


--- linux.org/drivers/net/pcmcia/3c589_cs.c     Mon Feb 25 20:37:59 2002
+++ linux/drivers/net/pcmcia/3c589_cs.c Wed Apr 17 06:28:56 2002
@@ -19,6 +19,7 @@
 
 #define DRV_NAME       "3c589_cs"
 #define DRV_VERSION    "1.162"
+#define SA1110_PCMCIA_PATCH 1
 
 #include <linux/module.h>
 #include <linux/init.h>
@@ -802,8 +803,13 @@
     /* Put out the doubleword header... */
     outw(skb->len, ioaddr + TX_FIFO);
     outw(0x00, ioaddr + TX_FIFO);
+
     /* ... and the packet rounded to a doubleword. */
+#ifdef SA1110_PCMCIA_PATCH
+    outsw(ioaddr + TX_FIFO, skb->data, ((skb->len + 3) & ~3) >> 1);
+#else
     outsl(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2);
+#endif
 
     dev->trans_start = jiffies;
     if (inw(ioaddr + TX_FREE) <= 1536) {
@@ -1062,8 +1068,15 @@
            if (skb != NULL) {
                skb->dev = dev;
                skb_reserve(skb, 2);
+
+#ifdef SA1110_PCMCIA_PATCH
+               insw(ioaddr+RX_FIFO, skb_put(skb, pkt_len),
+                       ((skb->len + 3) & ~3) >> 1);
+#else
                insl(ioaddr+RX_FIFO, skb_put(skb, pkt_len),
                        (pkt_len+3)>>2);
+#endif
+
                skb->protocol = eth_type_trans(skb, dev);
                netif_rx(skb);
                dev->last_rx = jiffies;



24 april 2002

It seemed the 3c589 cards had some trouble handling small packets. Modified the transmit/receive patch :


--- linux.org/drivers/net/pcmcia/3c589_cs.c     Mon Feb 25 20:37:59 2002
+++ linux/drivers/net/pcmcia/3c589_cs.c Wed Apr 17 04:55:33 2002
@@ -19,6 +19,7 @@
 
 #define DRV_NAME       "3c589_cs"
 #define DRV_VERSION    "1.162"
+#define SA1110_PCMCIA_PATCH 1
 
 #include <linux/module.h>
 #include <linux/init.h>
@@ -802,8 +803,21 @@
     /* Put out the doubleword header... */
     outw(skb->len, ioaddr + TX_FIFO);
     outw(0x00, ioaddr + TX_FIFO);
+
+#ifdef SA1110_PCMCIA_PATCH
+{
+        unsigned int i, totdw, w;
+
+       totdw = ((skb->len + 3) >> 2) << 2;
+        for (i = 0; i < totdw; i+=2) {
+                w = *((unsigned int *) (skb->data+i));
+                outw(w, ioaddr + TX_FIFO);
+        }
+}
+#else
     /* ... and the packet rounded to a doubleword. */
     outsl(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2);
+#endif
 
     dev->trans_start = jiffies;
     if (inw(ioaddr + TX_FREE) <= 1536) {
@@ -1062,8 +1076,23 @@
            if (skb != NULL) {
                skb->dev = dev;
                skb_reserve(skb, 2);
+
+#ifdef SA1110_PCMCIA_PATCH
+{
+        unsigned int i, totdw, w;
+        unsigned char *p = skb_put(skb, pkt_len);
+
+       totdw = ((skb->len + 3) >> 2) << 2;
+        for (i = 0; i < totdw; i += 2) {
+                w = inw(ioaddr + RX_FIFO);
+                *((unsigned int *) (skb->data+i)) = w;
+        }
+}
+#else
                insl(ioaddr+RX_FIFO, skb_put(skb, pkt_len),
                        (pkt_len+3)>>2);
+#endif
+
                skb->protocol = eth_type_trans(skb, dev);
                netif_rx(skb);
                dev->last_rx = jiffies;



22 april 2002

3Com cards work!

patches required :

SA1100 PCMCIA patch :


--- linux.org/drivers/pcmcia/sa1100_generic.c   Tue Apr 16 04:48:59 2002
+++ linux/drivers/pcmcia/sa1100_generic.c       Tue Apr 16 00:12:10 2002
@@ -374,7 +374,8 @@
   if (sock < sa1100_pcmcia_socket_count) {
     cap->features  = SS_CAP_PAGE_REGS | SS_CAP_STATIC_MAP | SS_CAP_PCCARD;
     cap->irq_mask  = 0;
-    cap->map_size  = PAGE_SIZE;
+    //cap->map_size  = PAGE_SIZE;
+    cap->map_size  = 0x4000000;
     cap->pci_irq   = skt->irq;
     cap->io_offset = (unsigned long)skt->virt_io;

Transmit/Receive patch

 
--- linux.org/drivers/net/pcmcia/3c589_cs.c     Mon Feb 25 20:37:59 2002
+++ linux/drivers/net/pcmcia/3c589_cs.c Tue Apr 16 00:09:15 2002
@@ -19,6 +19,7 @@
 
 #define DRV_NAME       "3c589_cs"
 #define DRV_VERSION    "1.162"
+#define SA1110_PCMCIA_PATCH 1
 
 #include <linux/module.h>
 #include <linux/init.h>
@@ -802,8 +803,21 @@
     /* Put out the doubleword header... */
     outw(skb->len, ioaddr + TX_FIFO);
     outw(0x00, ioaddr + TX_FIFO);
+
+#ifdef SA1110_PCMCIA_PATCH
+{
+        unsigned int i, rest, w;
+
+        rest = skb->len % 4;
+        for (i = 0; i < (skb->len + rest); i += 2) {
+                w = *((unsigned int *) (skb->data+i));
+                outw(w, ioaddr + TX_FIFO);
+        }
+}
+#else
     /* ... and the packet rounded to a doubleword. */
     outsl(ioaddr + TX_FIFO, skb->data, (skb->len + 3) >> 2);
+#endif
 
     dev->trans_start = jiffies;
     if (inw(ioaddr + TX_FREE) <= 1536) {
@@ -1062,8 +1076,23 @@
            if (skb != NULL) {
                skb->dev = dev;
                skb_reserve(skb, 2);
+
+#ifdef SA1110_PCMCIA_PATCH
+{
+        unsigned int i, rest, w;
+        unsigned char *p = skb_put(skb, pkt_len);
+
+        rest = pkt_len % 4;
+        for (i = 0; i < (pkt_len + rest); i += 2) {
+                w = inw(ioaddr + RX_FIFO);
+                *((unsigned int *) (skb->data+i)) = w;
+        }
+}
+#else
                insl(ioaddr+RX_FIFO, skb_put(skb, pkt_len),
                        (pkt_len+3)>>2);
+#endif
+
                skb->protocol = eth_type_trans(skb, dev);
                netif_rx(skb);
                dev->last_rx = jiffies;

5V PCMCIA patch :


--- linux.org/drivers/pcmcia/sa1100_shannon.c   Tue Apr 16 04:49:56 2002
+++ linux/drivers/pcmcia/sa1100_shannon.c       Tue Apr 16 00:11:04 2002
@@ -57,7 +57,7 @@
        state_array->state[0].wrprot = 0; /* Not available on Shannon. */
        state_array->state[0].bvd1 = 1; 
        state_array->state[0].bvd2 = 1; 
-       state_array->state[0].vs_3v  = 1; /* FIXME Can only apply 3.3V on Shannon. */
+       state_array->state[0].vs_3v  = 0; /* FIXME Can only apply 3.3V on Shannon. */
        state_array->state[0].vs_Xv  = 0;
 
        state_array->state[1].detect = (levels & SHANNON_GPIO_EJECT_1) ? 0 : 1;
@@ -65,7 +65,7 @@
        state_array->state[1].wrprot = 0; /* Not available on Shannon. */
        state_array->state[1].bvd1 = 1; 
        state_array->state[1].bvd2 = 1; 
-       state_array->state[1].vs_3v  = 1; /* FIXME Can only apply 3.3V on Shannon. */
+       state_array->state[1].vs_3v  = 0; /* FIXME Can only apply 3.3V on Shannon. */
        state_array->state[1].vs_Xv  = 0;
 
        return 1;
@@ -87,10 +87,10 @@
 
        switch (configure->vcc) {
        case 0: /* power off */;
-               printk(KERN_WARNING __FUNCTION__"(): CS asked for 0V, still applying 3.3V..n");
+               printk(KERN_WARNING __FUNCTION__"(): CS asked for 0V, still applying 5V..n");
                break;
        case 50:
-               printk(KERN_WARNING __FUNCTION__"(): CS asked for 5V, applying 3.3V..n");
+               printk(KERN_WARNING __FUNCTION__"(): CS asked for 5V, applying 5V..n");
        case 33:
                break;
        default:


Note: these patches aren't mine. I just copied them from the arm-kernel-mailinglist and other pages on the wiki.


18 april 2002 :

Still no success with 3com cards :

3C589C : No link detected


shannon_pcmcia_configure_socket(): CS asked for 5V, applying 3.3V..
shannon_pcmcia_configure_socket(): Warning, Can't perform reset
shannon_pcmcia_configure_socket(): CS asked for 5V, applying 3.3V..
shannon_pcmcia_configure_socket(): Warning, Can't perform reset
eth0: 3Com 3c589, io 0xd885e300, irq 48, hw_addr 00:00:00:00:07:07
  32K FIFO split 1:1 Rx:Tx, auto xcvr

# ifconfig eth0 192.168.11.92
# ping 192.168.11.79
PING 192.168.11.79 (192.168.11.79): 56 data bytes
NETDEV WATCHDOG: eth0: transmit timed out
eth0: Transmit timed out!
  irq status 0707, rx status 0000, tx status 07  tx free 0707
  diagnostics: fifo 0707 net 0000 ethernet 0000 media 0000
NETDEV WATCHDOG: eth0: transmit timed out
eth0: Transmit timed out!
  irq status 0808, rx status 0000, tx status 00  tx free 0000
  diagnostics: fifo 0000 net 0000 ethernet 0000 media 0000

--- 192.168.11.79 ping statistics ---
2 packets transmitted, 0 packets received, 100% packet loss

# NETDEV WATCHDOG: eth0: transmit timed out
eth0: Transmit timed out!
  irq status 0000, rx status 0000, tx status 00  tx free 0000
  diagnostics: fifo 0000 net 0000 ethernet 0000 media 0000

3C589D-TP: No link detected.


shannon_pcmcia_configure_socket(): CS asked for 5V, applying 3.3V..
shannon_pcmcia_configure_socket(): Warning, Can't perform reset
shannon_pcmcia_configure_socket(): CS asked for 5V, applying 3.3V..
shannon_pcmcia_configure_socket(): Warning, Can't perform reset
eth0: 3Com 3c589, io 0xd885e300, irq 48, hw_addr 00:00:07:07:00:00
  8K FIFO split 5:3 Rx:Tx, auto xcvr

# ifconfig eth0 192.168.11.92
# ping 192.168.11.79
PING 192.168.11.79 (192.168.11.79): 56 data bytes
NETDEV WATCHDOG: eth0: transmit timed out
eth0: Transmit timed out!
  irq status 0808, rx status 0000, tx status 00  tx free 0000
  diagnostics: fifo 0000 net 0000 ethernet 0000 media 0000
NETDEV WATCHDOG: eth0: transmit timed out
eth0: Transmit timed out!
  irq status 0808, rx status 0000, tx status 00  tx free 0000
  diagnostics: fifo 0000 net 0000 ethernet 0000 media 0000
NETDEV WATCHDOG: eth0: transmit timed out

3C562D: this card gives a link and a MAC-address is detected. pinging generates garbage on the network...


shannon_pcmcia_configure_socket(): CS asked for 5V, applying 3.3V..
shannon_pcmcia_configure_socket(): Warning, Can't perform reset
shannon_pcmcia_configure_socket(): CS asked for 5V, applying 3.3V..
shannon_pcmcia_configure_socket(): Warning, Can't perform reset
eth0: 3Com 3c562, io 0xd885e300, irq 48, hw_addr 00:60:97:FA:ED:8B
  8K FIFO split 5:3 Rx:Tx, auto xcvr

# ifconfig eth0 192.168.11.92
# eth0: flipped to 10baseT

# ping 192.168.11.79
PING 192.168.11.79 (192.168.11.79): 56 data bytes

--- 192.168.11.79 ping statistics ---
15 packets transmitted, 0 packets received, 100% packet loss


15 april 2002 :

Well I bought a 220V -> 110V converter (20 euros) and this works quite well. Started playing around with inferno, which had more features than expected. Nonetheless I flash-unlocked two phones and installed linux on them. I tried the update on cygwin under win2000. Unlocking flash wasn't a problem, but downloading kernel and ramfs was. cygwin doesn't allow multiple processes accesing the serial device, so when minicom opened /dev/com1, there was no way to start the uuencode on a seperate terminal. Tried ascii upload in minicom after uuencoding the kernel, but this also failed. Started linux under vmware and download went perfect.

Next step : Installing microwindows.

Installed the microwindows ramfs, but the touchscreen didn't work with v0.5 of the kernel. Installed the microwindows kernel and the touchscreen worked.

Next step : Networking

I've got two 3com 3c589 PCMCIA cards to test with. I soldered the 5V PCMCIA-hack on one tux, which seemed to work for detecting the cards with cardctl ident. No eth-device was detected though. Searched the wiki again and found the kernel-mod for allowing some 5V PCMCIA-cards to work. Modified kernel source and rebuilt kernel. cards and eth-devices get detected. Next problem : cards get empty MAC-address 00:00:00:00:00:00 and there is no link-indicator on my hub. Searched the web for 3c589 cards ands found the lastest mods on the arm-kernel for 3c589 cards. Downloaded and installed 2.4.18 kernel; installed arm-patches and tux-patches. Built kernel and installed. Problem with network-cards still exists. Another problem is the touchscreen. The rootfs I installed (microwindows) has a /dev/ucb1200-ts device-file which is major 11 minor 0. The kernel source states a /dev/ucb1x00-ts device-file with major 10 minor 12. Set /dev/ucb1200-ts to major 10 minor 12. Microwindows starts now, but the touchscreen is still not working... Will try tonight with two other network-cards.


Hi, I'm Frank van Gestel and I just ordered 4 tuxscreens. I'm planning on interfacing it with some other linux-arm stuff I've got at home : 2 empeg carplayers (SA2200) 1 rio receiver (ARM7 Cirrus processor)

I live in Europe, so I will have to find a way to power the tuxscreen. At this moment I'm looking at two options :

- Buy a 220v -> 110v convertor

- Find a suitable 220V -> 5v + 3.3V PS

I'm wondering : Is the 3.3V only used for PCMCIA or also for something else? If not, I could convert PCMCIA to 5V and use a simple 5V PS for powering the tuxscreen.

I'm not much of a hardware guy, so building a PS personally is out of the question.

SourceForge Content of these pages are owned and copyrighted by the poster. SourceForge