ISDN4BSD (HPS version) is going into ports

Andreas Longwitz longwitz at incore.de
Tue Jan 15 20:24:34 UTC 2013


Hi,

please forget the last passage of my last post.

In the meantime I changed some parts according to my former list to make
things work like BSD does:

>> 2. DELAY times on startup is different: 4 ms in isdn4bsd, 10 ms in BSD
>> 3. Initializing the chip is more expansive in BSD, otherwise the
>>    register cmdrd is only used in isdn4bsd.
>>
>> 4. In avm_pci_fifo_reset() we write two single bytes, but BSD does one
>>    (atomic) four byte read. Particularly we do not write the HSCX_LEN
>>    byte between the both written bytes (must set to 0 ?)
>>
>> 5. In avm_pci_b_status_read() - analog to 4. - we read two single bytes,
>>    BSD (atomic) four bytes.

With these adaptions isdn4bsd/isdnd now works with my AVM Fritzcard !!

Because the driver works with "transparent mode" I observe that we have
data exchange of 64kbit/s full duplex between chip and kernel as soon as
a B-channel is up. And it makes no difference if I ping something over
the line or run a ssh session or do nothing. I see about 500 irq's every
second, I think that is the price for the tiny fifo buffer of 32 byte.

Using the BSD driver I see for a ping only 12 irqs/sec and no irqs if
the ping stops. Obviously thats not "transparent mode", the BSD driver
uses HSCX_MODE_ITF_FLAG instead of HSCX_MODE_TRANS, that make probably
the difference.

If the 500 irqs/sec is what you expected, I will send you a complete
patchfile.

Thanks again for helping to track down this long standing problem.

-- 
Andreas Longwitz



More information about the freebsd-isdn mailing list