On 2011-03-08, Tero Koskinen <tero.koski...@iki.fi> wrote: > On Mon, 7 Mar 2011 22:59:36 +0000 (UTC) Stuart Henderson wrote: >> The PCIE parts use quite different addresses. You can try these: >> >> { PUC_PORT_TYPE_COM, 0x10, 0x1000, 4000000 * 8 }, >> { PUC_PORT_TYPE_COM, 0x10, 0x1200, 4000000 * 8 }, > > Thanks, with these values the system doesn't freeze anymore and > I can send data from one port to another. > >> The speeds will almost certainly be wrong, you'll probably need to >> cu -s 4800 to get a 9600 baud connection with this (the divisor should >> be 4000000 * 16 but I couldn't get this to work, for more info see >> http://marc.info/?l=openbsd-tech&m=126446213208560&w=2). >> >> I may have datasheets for this somewhere...you can learn some things >> from the linux driver too, they have some fancy stuff to work out how >> many ports the devices have, etc. > > I tried to look at drivers/serial/8250_pci.c at one point, but couldn't > find anything special for these oxford cards. (I also didn't realize that > first_offset = 0x1000, .uart_offset = 0x200 maps into 0x1000/0x1200 on > OpenBSD, so I probably missed other things too.)
Look for pci_oxsemi_tornado_init(). Unfortunately I don't have my card available for hacking on, it's running as an active console server in a colo ~5 hours away.