| TuxScreen on SourceForge | TuxScreen CVS | search the Wiki |
| Browsing -> Wiki -> Users -> [FvGestel] |
| 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 :
--- 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. |
|
|
|