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