Port-sparc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: ts102 (tadpole controller) bug



Hello,

> While trying to get a tadpole (SparcBook 3GS) working (NetBSD 4.0.1,
> NETBSD 5.0.1 crashed at startup during install), I had a lot of trouble
> with getting a Cisco Aironet 350 wireless card to work.  
[...]
>                                               I went poking around in a
> few places, and ended up finding the following bit of code in the
> Tadpole TS102 code (/usr/src/sys/arch/sparc/dev/ts102.c):
> 
>         /*
>        * wait 100ms until power raise (Tpr) and 20ms to become
>        * stable (Tsu(Vcc)).
>        */
>       DELAY((100 + 20) * 1000);
> 
>       status &= ~TS102_CARD_STS_VPP1_MASK;
>       status |= TS102_CARD_STS_VPP1_VCC;
>       TSLOT_WRITE(td, TS102_REG_CARD_A_STS, status);
> 
> (This code appears unchanged in 5.0.1, so I do not believe this problem
> has been addressed.)
> 
> TS102_CARD_STS_VPP1_VCC sets the voltage bit for the slot.  Setting it
> to 1 forces the slot to 3.3v.  The status before initialization showed
> up as 0x201, which meant it was 5v before initialization.  So I removed
> the TS102_CARD_STS_VPP1_VCC line to leave the power bit alone, and sure
> enough, the Aironet 350 came right up.

I'm afraid you are reading wrong; the bit controlling whether Vcc is
5V or 3.3V is TS102_CARD_STS_VCC (0x08), and it is never modified by
the driver, which assumes this choice will be made by the hardware
itself.

On the other hand, this code explicitely enables Vcc and disables Vpp;
maybe this Aironet card needs more power than provided by the Vcc lines
only.

But then if you have only removed the
    status |= TS102_CARD_STS_VPP1_VCC
line, then there should be no power sent to the card, and it should not
work at all...

Unless, of course, the documented bit assignments in the Tadpole documentation
are wrong. That would not be the first time )-:

>                                                           is the
> Aironet's use of the "battery low" bit nonstandard? 

The battery bits are only meaningful on memory type PCMCIA cards. Your
card is an I/O card, and these bits should be ignored.

Miod



Home | Main Index | Thread Index | Old Index