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

Re: Pcmcia card speed

Hi Jean,

> 	Yes, I agree 100% with you. I was reading the doc of the
> 16C950 yesterday and staring at the driver, and I came to the same
> conclusion.
> Now, I'm thinking that Brainboxes uses the default 1.8432MHz
> clock by default, and that you need to play with 'CKS' to get what you
> need. I would like those friends at Brainboxes to tell us the trick
> ;-)

Nice to see that I am not the only one struggeling to get these cards to 
work at full speed. I have also tried to modify the CPR register. Maybe 
I should have noted that there is already a kernel patch at sourceforge 
(http://sourceforge.net/projects/serial/). But I couldn't guess the 
right register settings so far.
When the speed of the CSR chip is changed, it keeps the setting in its 
internal flash memory. That is why you have to return the card to 
factory after setting a baudrate that is not supported by the UART. When 
starting OpenBT with a certain baudrate (e.g. 460800), OpenBT first 
initializes the serial interface with 115200 to do some startup commands 
(e.g. reading the HCI buffer sizes), then sets the baud rate of the CSR 
chip and finally changes the baud rate of the serial line. The fact that 
you can do this more than once shows that OpenBT actually fails to 
change the baud rate of the CSR chip (at least, for me).
So I have changed the baud rate of the CSR chip of my cards with 
Brainboxes Windows programm PSTool to 921600. As expected, OpenBT is now 
unable to access the cards even at the startup phase. Before playing 
with the UART, you should take at look at this.
Using Windows, I have to set the UART to a baud rate of 921600 before 
the Windows tools can access the cards. So the Windows drivers seem to 
be able to set the UART to 921600. I have had a closer look at this and 
found out that BB uses the default windows drivers. The setup routine 
adds the value "ClockFrequency, 0xe10000" to the registry, that is used 
for 14.745.600 MHz. So do the cards have a clock of this frequency? I am 
not sure, because that UART should be set to full speed (CPR=1, so 
TCS=16 and divisor=1 lead to 921600 baud) after a chip reset. Maybe the 
trick of BB's UART is that it initializes the CPR with a value of 8. I 
will check this again on Monday.

br, Ulrich