PUC driver addition Sealevel cPCI 7203 possible

Bernd Walter ticso at cicely12.cicely.de
Mon Aug 29 10:46:50 GMT 2005


On Mon, Aug 29, 2005 at 12:13:53PM +0200, Maarten wrote:
> Hi,
> 
> Intro
> 
> My company is currently using Linux as a platform for our own control
> software platform (all in c). We often have clashes between kernel and the
> rest in the sense of timings, priority handling etc. I feel Linux is not
> an OS but a kernel plus the rest which hampers us (too) often. My personal
> experience with FreeBSD is better, a nicely integrated platform being more
> complete and better documented.
> I am not a deep inside programmer, only an engineer that uses the packages
> provided, fixes minor application issues an goes in the field. I would
> like to convince my colleagues to consider FreeBSD. Good part is the
> software is rather easily ported, bad part is I am missing crucial support
> for a type of serial port card.
> 
> Question
> 
> Who can help me to add the correct entries - if possible- to
> src/sys/dev/puc/pucdata.c (as I understand from the sources) for this
> card:
> http://www.sealevel.com/product_detail.asp?product_id=497&PCI%5FRS%2D232%5FRS%2D422%5FRS%2D485%5FIsolated%5FSerial%5FInterface%5F
> The sealevel model no. 7203 that utilizes 16C850 UART.
> Our systems use 4 of these boards on a cPCI bus.

At best you have vendor documentation on chip mappings, but
usually one can guess the UART layout within the PCI mappings
within a few trys once you know the mappings that a given card
requests on PCI.
Do a boot -v on a FreeBSD system with such a card plugged in to
get the required PCI values.
Try it with and without puc compiled in - maybe there is already
support for that card.

Once all chips are probed correctly you should tryout the xtals.
Many cards use raised frequencies over PC traditional once, some
cards even have different frequencies on their ports.
Considered the documented 460.8k rates I would asume COM_FREQ * 4.

Proper identification of such cards is sometimes troublesome.
In many cases different cards identify themself identic and the
kernel won't know the correct configuration to use.
It is advised not to mix different puc cards to avoid such situations.

Fortunately the 16C850 have large FiFos - with traditional 16C550
FiFo sizes you easily get into troubles even with moderate speeds,
especially if your interrupts are shared with non-sio devices and
you can't use PUC_FASTINTR.
Nevertheless a configuration with PUC_FASTINTR is still prefered.

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd at bwct.de                                  info at bwct.de



More information about the freebsd-hackers mailing list