First, many thanks to those who have given me help and advice in trying to get CompactFlash cards to work with the Balloon. As yet, I've been unsuccessful, but I thought I'd post an update to let others see how I'm getting on... and possibly spot where I'm going wrong. Board: # cat /proc/balloon_board Board type: 2.05 Board build: Red Aleph dev board CPLD version: 0x0b I'm running a version of 2.4.25-vrs2-tcl1 that I compiled myself. The pcmcia support (pcmcia_core, sa1100_cs etc) are compiled as modules The /etc/pcmcia directory and various tools (cardmgr) come from the pcmcia-cs package on husaberg. Cards: I have three cards, none of which I can get to work on the balloon (but all of which worked when tested on another ARM-based device). The cards are:- Linksys WCF12 - Wireless 802.11b card D-Link DCF-660W - Wireless 802.11b card SanDisk Ultra-II 512MB - Memory card Power: Steve suggested that I try measuring the volts supplied to the card. This is a bit fidly but I have managed to get some numbers - which may or may not be particularly useful. The absolute numbers are probably not comparible between the two cards (I get slightly different numbers each time depending on how good a connection I get with the multimeter probe) but the voltage drop is fairly consistent. Linksys card: 3.355V --> 3.284V --> 3.355V drop = 0.071V D-Link card: 3.351V --> 3.314V --> 3.351V drop = 0.037V The three numbers are: the voltage prior to /etc/init.d/pcmcia start the voltage while the card does something* (for a minute or so) the voltage after the card has stopped doing whatever it was doing * This is using the hostap driver. When the driver starts, it registers a net device, and an interrupt. The interrupt gets called about 10000 times in about a minute (/proc/interrupts) and then that's it. The LED on the card is lit during this time. Afterwards it turns off (D-Link) or starts blinking (Linksys). I'm powering the balloon with the 0V and 5V lines and the board produces it's own 3.3V. I haven't yet tried supplying an external 3.3V supply to the board. The board noramlly draws 0.2A, but while the card is doing something it can draw as much as 0.4A to 0.5A. I've always inserted or removed the cards with the power off. I've tried rebooting the board with the reset button (after the initial power on) and it doesn't make any difference. Drivers: There are several drivers that support the chipsets used by the wireless cards. The orinoco driver (orinoco_cs.o, orinoco.o and hermes.o) is in the kernel sources. The hostap driver is available in the hoastap-modules package on husaberg, although for me this caused a stack backtrace, so I compiled my own. I have also tried the prism2 driver from the linux-wlan-ng project. The driver that gets used is selectable based on the contents of /etc/pcmcia/config.opts. By the way, cardmgr, cardctl and dump_cis all correctly identify whichever card is in the balloon, and cardmgr does load the appropriate driver. Here is the output from dmesg for the two drivers (with the D-Link card) after '/etc/init.d/pcmcia start'. Orinoco: Linux Kernel Card Services 3.1.22 options: [pm] SA-1100 PCMCIA (CS release 3.1.22) hermes.c: 4 Dec 2002 David Gibson orinoco.c 0.13d (David Gibson and others) orinoco_cs.c 0.13d (David Gibson and others) eth0: failed to initialize firmware (err = -19) orinoco_cs: register_netdev() failed Hostap: Linux Kernel Card Services 3.1.22 options: [pm] SA-1100 PCMCIA (CS release 3.1.22) hostap_crypt: registered algorithm 'NULL' hostap_cs: 0.2.5 - 2004-10-03 (Jouni Malinen ) hostap_cs: setting Vcc=33 (constant) hostap_cs: CS_EVENT_CARD_INSERTION hostap_cs: ignoring Vcc=50 (from config) Checking CFTABLE_ENTRY 0x01 (default 0x01) IO window settings: cfg->io.nwin=1 dflt.io.nwin=1 io->flags = 0x0046, io.base=0x0000, len=64 hostap_cs: Registered netdevice wifi0 hostap_cs: index 0x01: Vcc 5.0, irq 42, io 0xc4828000-0xc482803f prism2_hw_init: initialized in 90 ms prism2_enable_aux_port(1) timed out prism2_enable_aux_port: was not enabled!? wifi0: CMD=0x0021 => res=0x7b, resp0=0x0004 wifi0: hfa384x_get_rid: CMDCODE_ACCESS failed (res=123, rid=fd0b, len=8) wifi0: NIC: id=0x02 v57344.50008.127 wifi0: CMD=0x0021 => res=0x7b, resp0=0x0004 wifi0: hfa384x_get_rid: CMDCODE_ACCESS failed (res=123, rid=fd02, len=8) wifi0: PRI: id=0x02 v57344.50008.127 wifi0: CMD=0x0021 => res=0x7b, resp0=0x0004 wifi0: hfa384x_get_rid: CMDCODE_ACCESS failed (res=123, rid=fd20, len=8) wifi0: STA: id=0x02 v57344.50008.127 wifi0: CMD=0x0021 => res=0x7b, resp0=0x0004 wifi0: hfa384x_get_rid: CMDCODE_ACCESS failed (res=123, rid=fd20, len=8) wifi0: CMD=0x0021 => res=0x7b, resp0=0x0004 wifi0: hfa384x_get_rid: CMDCODE_ACCESS failed (res=123, rid=fc01, len=6) wifi0: hfa384x_setup_bap - offset error (0,0x04fce0,0); reg=0x4000 wifi0: hfa384x_set_rid (rid=fce0, len=2) - failed - res=-22 wifi0: hfa384x_setup_bap - offset error (0,0x04fc00,0); reg=0x4000 wifi0: hfa384x_set_rid (rid=fc00, len=2) - failed - res=-22 wifi0: Port type setting to 6 failed wifi0: registered netdevice wlan0 prism2: wlan0: operating mode changed 3 -> 2 wlan0: hfa384x_setup_bap - offset error (0,0x04fc00,0); reg=0x4000 wlan0: hfa384x_set_rid (rid=fc00, len=2) - failed - res=-22 wlan0: hfa384x_setup_bap - offset error (0,0x04fc0e,0); reg=0x4000 wlan0: hfa384x_set_rid (rid=fc0e, len=34) - failed - res=-22 wlan0: hfa384x_setup_bap - offset error (0,0x04fc02,0); reg=0x4000 wlan0: hfa384x_set_rid (rid=fc02, len=34) - failed - res=-22 Now the hostap driver is somewhat more verbose that the orinoco driver, but I think the problem is actually the same. I beleive that the telling lines of the hostap driver output are: wifi0: NIC: id=0x02 v57344.50008.127 wifi0: PRI: id=0x02 v57344.50008.127 wifi0: STA: id=0x02 v57344.50008.127 Basically the driver is attempting to establish the versions number of the card hardware and the primary and secondary firmware, and gets completely bogus results... The hostap driver does get as far as registering the wifi0 and wlan0 net devices, and they appear in /proc/net/wireless, but iwconfig cannot do anything with them - not surprisingly. The Memory card: The SanDisk memory card doesn't work in the balloon either. I was hoping that it would be fairly simple to get working since unlike wireless cards it has no radio, no MAC address, no complicated configuration etc. It was not to be... The card basically acts like an IDE drive, and cardmgr loads the ide-cs driver when it detects the card. This driver produces the following output in dmesg: Linux Kernel Card Services 3.1.22 options: [pm] SA-1100 PCMCIA (CS release 3.1.22) Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4 ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx ide_cs: ide_register() at 0xc4828000 & 0xc482800e, irq 42 failed Things I haven't tried yet: Use the 2.6.8.1 kernel instead of 2.4.25 Provide 3.3V to the board (will the power converter on the board get upset if I supply both 5V and 3.3V?) Trying a different CPLD version (although David Bisset has told me that the version I have should work as long as I don't try 'cardctl eject;cardctl insert' - which I'm not) Any other suggestions as to how to proceed would be appreciated. Many thanks for reading this far, Paul. Paul Fidler -- Cambridge University Engineering Department | Tel: +44 1223 332816 Trumpington Street, Cambridge, CB2 1PZ, UK | Fax: +44 1223 332662