Hi,
i recently got some SanDisk ConnectPlus Cards. Its a multifunction-card with w-lan and 128mb flash onboard.
I found some pseudocode via google how to initialize the card to make the wlan-part work. there is also a patch for hostap which i integrated into hostap-2.1, but the card still refuses to work.
has anyone some news about this card, to getting it work.
here are some logs (with firmware download enabled):
dmesg:
hostap_crypt: registered algorithm 'NULL'
hostap_cs: 0.2.1 - 2004-05-06 (Jouni Malinen <jkmaline@cc.hut.fi>)
hostap_cs: setting Vcc=33 (constant)
hostap_cs: CS_EVENT_CARD_INSERTION
hostap_cs: setting Vcc=33 (from config)
Checking CFTABLE_ENTRY 0x01 (default 0x01)
IO window settings: cfg->io.nwin=1 dflt.io.nwin=1
io->flags = 0x0047, io.base=0x0000, len=128
hostap_cs: Registered netdevice wifi0
wifi0: Interrupt, but dev not OK
hostap_cs: index 0x01: Vcc 3.3, irq 35, io 0xc4860000-0xc486007f
hostap_cs: assuming no Primary image in flash - card initialization not completed
wifi0: test Genesis mode with HCR 0x1f
prism2_pccard_cor_sreset: original COR 45
writing to attribute mem
Setting I/O base to 0xc4860000
Activating wireless function
prism2_pccard_genesis_sretting HCR directly to 0x1f
Readback test failed, HCR 0x1f write 00 e1 a1 ff read 00 20 00 20
wifi0: test Genesis mode with HCR 0x0f
prism2_pccard_cor_sreset: original COR 45
writing to attribute mem
Setting I/O base to 0xc4860000
Activating wireless function
prism2_pccard_genesis_sreset: original COR 45
Setting HCR directly to 0xf
Readback test failed, HCR 0x0f write 00 e1 a1 ff read 00 20 00 20
prism2_pccard_genesis_sreset: original COR 45
Setting HCR directly to 0x17
wifi0: registered netdevice wlan0
prism2: wlan0: operating mode changed 3 -> 2
wlan0: cannot set RID fc00 (len=2) - no PRI f/w
wlan0: cannot set RID fc0e (len=34) - no PRI f/w
wlan0: updating basic rate set automatically to match with the new supported rate set
wlan0: cannot set RID fcb3 (len=2) - no PRI f/w
wlan0: failed to set cnfBasicRates
wlan0: cannot set RID fc84 (len=2) - no PRI f/w
wlan0: TXRateControl/cnfSupportedRates setting to 0xf failed
wlan0: cannot set RID fc02 (len=34) - no PRI f/wset: original COR 45
The current development snapshot in Host AP driver CVS repository (http://hostap.epitest.fi/) has support for SanDisk ConnectPlus cards. Please note that this card does not include firmware code, so both PRI and STA firmware images need to be loaded after driver initialization (see utils/hostap_fw_load for an example).
So far, I have not been able to use both the wireless and flash parts at the same time, but both functions work separately.
The problem of using both functions at the same time looks like something that could be in the pcmcia code, though. Regardless of the initialiation order, the driver (hostap_cs or ide-cs) that gets loaded after the other fails in RequestIO (pcmcia_request_io) with resources not being available.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It sounds like this card implements the dual functions using only a single set of PCMCIA configuration registers, rather than following the PCMCIA multifunction card specification. That's common enough, but inconvenient; it means that you'll have to make driver modifications to get this to work, and can't just bind both the hostap_cs and ide-cs drivers.
(cards that follow the multifunction spec have separate sets of configuration registers for each card function, and the drivers for each function don't need to be aware of the other functions at all; but for your card, there's just one set of registers. So if one driver configures the card, the other has to retrieve and use the existing configuration)
For network/serial drivers, what I've done is to treat the network driver as the "master" that configures the card, and the serial driver as the "slave", that first checks to see if the card is configured, and if so, just share the existing IO and interrupt mapping. In this case, I'd make the hostap_cs driver the "master", so that it sets up the IO windows for both the network and flash sides, and then make ide-cs check for a configured card, and if so, reuse the exiting IO mapping.
-- Dave
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
we, did also a hack for hostap some time ago to make the sandisk connect plus working (mainly 1stein did). due to lack of time i didn't posted it to the hostap list. i wasn't also really sure if the hack works with other cards too, cause a lot of timings were changed. but im happy that some functional code is now incorporated in the main hostap line. i tested it yesterday and it seems to work well, also with other cards.
did someone now tried this master/slave solution, as mentioned? are there already existing examples wich uses this kind of setup?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,
i recently got some SanDisk ConnectPlus Cards. Its a multifunction-card with w-lan and 128mb flash onboard.
I found some pseudocode via google how to initialize the card to make the wlan-part work. there is also a patch for hostap which i integrated into hostap-2.1, but the card still refuses to work.
has anyone some news about this card, to getting it work.
here are some logs (with firmware download enabled):
dmesg:
hostap_crypt: registered algorithm 'NULL'
hostap_cs: 0.2.1 - 2004-05-06 (Jouni Malinen <jkmaline@cc.hut.fi>)
hostap_cs: setting Vcc=33 (constant)
hostap_cs: CS_EVENT_CARD_INSERTION
hostap_cs: setting Vcc=33 (from config)
Checking CFTABLE_ENTRY 0x01 (default 0x01)
IO window settings: cfg->io.nwin=1 dflt.io.nwin=1
io->flags = 0x0047, io.base=0x0000, len=128
hostap_cs: Registered netdevice wifi0
wifi0: Interrupt, but dev not OK
hostap_cs: index 0x01: Vcc 3.3, irq 35, io 0xc4860000-0xc486007f
hostap_cs: assuming no Primary image in flash - card initialization not completed
wifi0: test Genesis mode with HCR 0x1f
prism2_pccard_cor_sreset: original COR 45
writing to attribute mem
Setting I/O base to 0xc4860000
Activating wireless function
prism2_pccard_genesis_sretting HCR directly to 0x1f
Readback test failed, HCR 0x1f write 00 e1 a1 ff read 00 20 00 20
wifi0: test Genesis mode with HCR 0x0f
prism2_pccard_cor_sreset: original COR 45
writing to attribute mem
Setting I/O base to 0xc4860000
Activating wireless function
prism2_pccard_genesis_sreset: original COR 45
Setting HCR directly to 0xf
Readback test failed, HCR 0x0f write 00 e1 a1 ff read 00 20 00 20
prism2_pccard_genesis_sreset: original COR 45
Setting HCR directly to 0x17
wifi0: registered netdevice wlan0
prism2: wlan0: operating mode changed 3 -> 2
wlan0: cannot set RID fc00 (len=2) - no PRI f/w
wlan0: cannot set RID fc0e (len=34) - no PRI f/w
wlan0: updating basic rate set automatically to match with the new supported rate set
wlan0: cannot set RID fcb3 (len=2) - no PRI f/w
wlan0: failed to set cnfBasicRates
wlan0: cannot set RID fc84 (len=2) - no PRI f/w
wlan0: TXRateControl/cnfSupportedRates setting to 0xf failed
wlan0: cannot set RID fc02 (len=34) - no PRI f/wset: original COR 45
dump_cis:
Socket 0:
dev_info
fn_specific 700ns, 2kb
mfc {
vers_1 7.0, "SanDisk", "ConnectPlus"
manfid 0xd601, 0x0101
funcid network_adapter
lan_technology wireless
lan_speed 34 mb/sec
lan_speed 35 mb/sec
config base 0x03e0 mask 0x0001 last_index 0x01
cftable_entry 0x01 [default]
Vcc Vnom 3300mV Vmin 3V Vmax 3600mV Iavg 300mA
Ipeak 300mA Idown 10mA
io 0x0000-0x007f [lines=7] [16bit]
irq mask 0xffff [level] [pulse] [shared]
}, {
common_jedec 0xdf 0x01
funcid fixed_disk [post]
disk_interface [ide]
disk_features [silicon] [unique] [single]
[sleep] [standby] [idle] [low power]
config base 0x0200 mask 0x000f last_index 0x07
cftable_entry 0x00 [default]
[rdybsy] [mwait] [pwrdown]
Vcc Vnom 5V Vmin 4500mV Vmax 5500mV Ipeak 80mA
memory 0x0000-0x07ff @ 0x0000
cftable_entry 0x00
Vcc Vnom 3300mV Ipeak 45mA
cftable_entry 0x01 [default]
[rdybsy] [pwrdown]
Vcc Vnom 5V Vmin 4500mV Vmax 5500mV Ipeak 80mA
io 0x0000-0x000f [lines=4] [8bit] [16bit]
irq mask 0xffff [level] [pulse] [shared]
cftable_entry 0x01
Vcc Vnom 3300mV Ipeak 45mA
cftable_entry 0x02 [default]
[rdybsy] [pwrdown]
Vcc Vnom 5V Vmin 4500mV Vmax 5500mV Ipeak 80mA
io 0x01f0-0x01f7, 0x03f6-0x03f7 [lines=10] [8bit] [16bit] [range]
irq 14 [level] [pulse] [shared]
cftable_entry 0x02
Vcc Vnom 3300mV Ipeak 45mA
cftable_entry 0x03 [defa [rdybsy] [pwrdown]
Vcc Vnom 5V Vmin 4500mV Vmax 5500mV Ipeak 80mA
io 0x0170-0x0177, 0x0376-0x0377 [lines=10] [8bit] [16bit] [range]
irq 14 [level] [pulse] [shared]
cftable_entry 0x03
Vcc Vnom 3300mV Ipeak 45mA
cftable_entry 0x07
}
Socket 1:
no CIS present
All is running on a Zaurus Collie. with OZ 3.3.6
The current development snapshot in Host AP driver CVS repository (http://hostap.epitest.fi/) has support for SanDisk ConnectPlus cards. Please note that this card does not include firmware code, so both PRI and STA firmware images need to be loaded after driver initialization (see utils/hostap_fw_load for an example).
So far, I have not been able to use both the wireless and flash parts at the same time, but both functions work separately.
The problem of using both functions at the same time looks like something that could be in the pcmcia code, though. Regardless of the initialiation order, the driver (hostap_cs or ide-cs) that gets loaded after the other fails in RequestIO (pcmcia_request_io) with resources not being available.
It sounds like this card implements the dual functions using only a single set of PCMCIA configuration registers, rather than following the PCMCIA multifunction card specification. That's common enough, but inconvenient; it means that you'll have to make driver modifications to get this to work, and can't just bind both the hostap_cs and ide-cs drivers.
(cards that follow the multifunction spec have separate sets of configuration registers for each card function, and the drivers for each function don't need to be aware of the other functions at all; but for your card, there's just one set of registers. So if one driver configures the card, the other has to retrieve and use the existing configuration)
For network/serial drivers, what I've done is to treat the network driver as the "master" that configures the card, and the serial driver as the "slave", that first checks to see if the card is configured, and if so, just share the existing IO and interrupt mapping. In this case, I'd make the hostap_cs driver the "master", so that it sets up the IO windows for both the network and flash sides, and then make ide-cs check for a configured card, and if so, reuse the exiting IO mapping.
-- Dave
we, did also a hack for hostap some time ago to make the sandisk connect plus working (mainly 1stein did). due to lack of time i didn't posted it to the hostap list. i wasn't also really sure if the hack works with other cards too, cause a lot of timings were changed. but im happy that some functional code is now incorporated in the main hostap line. i tested it yesterday and it seems to work well, also with other cards.
did someone now tried this master/slave solution, as mentioned? are there already existing examples wich uses this kind of setup?