sandisk wifi connect plus
Guylhem Aznar
pcmcia at externe.net
Wed Mar 17 14:22:35 GMT 2004
Bonjour, Hello,
On Fri, 5 Mar 2004 12:02:34 -0500 (EST)
Pavel Roskin <proski at gnu.org> wrote:
> The Windows driver for the card includes RAM-loadable firmware for Prism
> 2.5 chipset, so it's probably supported by HostAP and linux-wlan-ng.
Some news- it should need a special initialisation sequence (see below) for
prism 3 download and for dual function activation.
Got the info below from trisoft.de. I'll try to purchase such a card (anyone in
the US here? it's $60 vs >130 Eur) and test that.
-------------
1. The combo card is Prism 3.0 based, they need to have the Prism 3.0
based driver.
2. Its linux PCMCIA driver has to support mulit-function PCMCIA
interface.
3. There's a special initialization sequence that needs to integrate
into the driver to enable the combo functionality. I have attached the sample
initialization code in this message.
// 1. There are three registers in the attribute memory sapce of Prism3
which need to be programmed:
//
// COR register at attribute_memory_space_base+0x3E0
// IO Base0 at attribute_memory_space_base+0x3F0
// IO Base1 at attribute_memory_space_base+0x3F2
//
// Procedure A listed below is an example of how the registers are
programmed and how the card is initialized.
//
// The above registers have to be programmed in the driver initialization
routine before the host
// can communication with the wireless function of the combo card.
// procedure A.
//
// In other words, each time the combo card plug-in, procedure A has be
performed.
//
//
// 2.The other part of the wireless driver is the same as the regular PRISM
3 driver.
// But if you are using PRISM 3's firware download function. You need the
following modified
// IoSetHCR function to implement this feature on the combo card.
//
//
// Function Definitions:
//
// WriteByteToAttributeMemory( X1,(unsigned char) X2) ==>
// Write an unsinged char X2 to Attribute memory space at offset X1
(attribute_base_address+X1).
//
// WriteByteToIOSpace( X1,(unsigned char) X2) ==>
// Write an unsinged char X2 to I/O space at offset X1
(io_base_address+X1).
//
// Delay(X1)
// Delay X1 microseconds to wait hardware completing operation
//
//
Procedure A:
{
WriteByteToAttributeMemory( 0x3e0, 0x80);
Delay(5000);
WriteByteToAttributeMemory( 0x3e0, 0x4b);
Delay(5000);
// Then, we need the I/O_base_address. For example, 0x0280
// Write low-byte of I/O_base_address to I/O space
WriteByteToAttributeMemory( 0x3f0, 0x80);
Delay(10);
// Write high-byte of I/O base address to I/O space.
WriteByteToAttributeMemory( 0x3f2, 0x02);
// P.S. If you don't have high-byte, use 0x00.
// Activate the Wireless function
{
WriteByteToIOSpace( 0x40,0xc5);
Delay(10);
WriteByteToIOSpace( 0x40,0x4b);
Delay(10);
}
}
/*
//
// IoSetHCR
//
// Arguments:
//
// dev_p - Pointer to the device block.
//
// Return Value:
//
// NONE.
*/
VOID IoSetHCR(
IN PIO_DEV dev_p,
IN UCHAR value
)
{
int i=0;
{
WriteByteToIOSpace( 0x40,0x80);
Delay(50);
// write ten times for ensuring that the value has been wrote to card via I/O
for(i=0;i<10;i++)
{
WriteByteToIOSpace( 0x42,value);
}
Delay(55);
WriteByteToIOSpace( 0x40,0x45);
}
} // end IoSetHCR
Bien a vous - Best regards,
Guylhem
--
*@externe.net ![guylhem at oeil.qc.ca->@metalab.unc.edu->@ibiblio.org->@7un.org]
http://externe.net/geekcode http://externe.net/photos http://externe.net/zaurus
GPG: 92EB37C1 DD11C9C9 20519D01 E8FA1B11 42975AF7 http://externe.net/pubkey
More information about the linux-pcmcia
mailing list