Solved PCIe RS232 board not detected

Hello,

I have a FreeBSD10.3 server. No customizations regarding kernel etc. On this system I've connected a MGE Pulsar Ellpise UPS. Unfortunately, the motherboard lacks a RS232 needed for communication, so I purchased this PCIe serial board: http://www.ebay.com/itm/272225366025

Problem is that it does not seem to create any serial-type devices.

From dmesg:

Code:
Copyright (c) 1992-2016 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
  The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 10.3-RELEASE-p4 #0: Sat May 28 12:23:44 UTC 2016
  root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512
CPU: Intel(R) Core(TM) i5-4460  CPU @ 3.20GHz (3198.21-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x306c3  Family=0x6  Model=0x3c  Stepping=3
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x7ffafbbf<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,SDBG,FMA,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x21<LAHF,ABM>
  Structured Extended Features=0x27ab<FSGSBASE,TSCADJ,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,NFPUSG>
  XSAVE Features=0x1<XSAVEOPT>
  VT-x: (disabled in BIOS) PAT,HLT,MTF,PAUSE,EPT,UG,VPID
  TSC: P-state invariant, performance statistics
real memory  = 8589934592 (8192 MB)
avail memory = 8140283904 (7763 MB)
Event timer "LAPIC" quality 600
ACPI APIC Table: <ALASKA A M I>
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 4 core(s)
cpu0 (BSP): APIC ID:  0
cpu1 (AP): APIC ID:  2
cpu2 (AP): APIC ID:  4
cpu3 (AP): APIC ID:  6
random: <Software, Yarrow> initialized
ioapic0 <Version 2.0> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <ALASKA A M I> on motherboard
acpi0: Power Button (fixed)
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
cpu2: <ACPI CPU> on acpi0
cpu3: <ACPI CPU> on acpi0
hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0
Timecounter "HPET" frequency 14318180 Hz quality 950
Event timer "HPET" frequency 14318180 Hz quality 550
Event timer "HPET1" frequency 14318180 Hz quality 440
Event timer "HPET2" frequency 14318180 Hz quality 440
Event timer "HPET3" frequency 14318180 Hz quality 440
Event timer "HPET4" frequency 14318180 Hz quality 440
atrtc0: <AT realtime clock> port 0x70-0x77 irq 8 on acpi0
atrtc0: Warning: Couldn't map I/O.
Event timer "RTC" frequency 32768 Hz quality 0
attimer0: <AT timer> port 0x40-0x43,0x50-0x53 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1808-0x180b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> irq 16 at device 1.0 on pci0
pci1: <ACPI PCI bus> on pcib1
vgapci0: <VGA-compatible display> port 0xf000-0xf03f mem 0xf7400000-0xf77fffff,0xe0000000-0xefffffff irq 16 at device 2.0 on pci0
agp0: <Haswell desktop GT2> on vgapci0
vgapci0: Boot video device
hdac0: <Intel Haswell HDA Controller> mem 0xf7c14000-0xf7c17fff irq 16 at device 3.0 on pci0
xhci0: <Intel Lynx Point USB 3.0 controller> mem 0xf7c00000-0xf7c0ffff irq 21 at device 20.0 on pci0
xhci0: 32 bytes context size, 64-bit DMA
xhci0: Port routing mask set to 0xffffffff
usbus0 on xhci0
pci0: <simple comms> at device 22.0 (no driver attached)
ehci0: <Intel Lynx Point USB 2.0 controller USB-B> mem 0xf7c1c000-0xf7c1c3ff irq 20 at device 26.0 on pci0
usbus1: EHCI version 1.0
usbus1 on ehci0
hdac1: <Intel Lynx Point HDA Controller> mem 0xf7c10000-0xf7c13fff irq 22 at device 27.0 on pci0
pcib2: <ACPI PCI-PCI bridge> irq 16 at device 28.0 on pci0
pci2: <ACPI PCI bus> on pcib2
em0: <Intel(R) PRO/1000 Network Connection 7.6.1-k> port 0xe000-0xe01f mem 0xf7bc0000-0xf7bdffff,0xf7b00000-0xf7b7ffff,0xf7be0000-0xf7be3fff irq 16 at device 0.0 on pci2
em0: Using MSIX interrupts with 3 vectors
em0: Ethernet address: 68:05:ca:3f:46:51
pcib3: <ACPI PCI-PCI bridge> irq 17 at device 28.1 on pci0
pci3: <ACPI PCI bus> on pcib3
pcib4: <ACPI PCI-PCI bridge> irq 17 at device 0.0 on pci3
pci4: <ACPI PCI bus> on pcib4
pci4: <simple comms, UART> at device 0.0 (no driver attached)
pcib5: <ACPI PCI-PCI bridge> irq 18 at device 28.2 on pci0
pci5: <ACPI PCI bus> on pcib5
re0: <RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet> port 0xc000-0xc0ff mem 0xf7a00000-0xf7a00fff,0xf0000000-0xf0003fff irq 18 at device 0.0 on pci5
re0: Using 1 MSI-X message
re0: turning off MSI enable bit.
re0: Chip rev. 0x4c000000
re0: MAC rev. 0x00000000
miibus0: <MII bus> on re0
rgephy0: <RTL8251 1000BASE-T media interface> PHY 1 on miibus0
rgephy0:  none, 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 100baseTX-FDX, 100baseTX-FDX-flow, 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 1000baseT-FDX-flow-master, auto, auto-flow
re0: Using defaults for TSO: 65518/35/2048
re0: Ethernet address: f8:32:e4:be:35:b0
pcib6: <ACPI PCI-PCI bridge> irq 19 at device 28.3 on pci0
pci6: <ACPI PCI bus> on pcib6
em1: <Intel(R) PRO/1000 Network Connection 7.6.1-k> port 0xb000-0xb01f mem 0xf79c0000-0xf79dffff,0xf7900000-0xf797ffff,0xf79e0000-0xf79e3fff irq 19 at device 0.0 on pci6
em1: Using MSIX interrupts with 3 vectors
em1: Ethernet address: 68:05:ca:3f:46:46
pcib7: <ACPI PCI-PCI bridge> irq 16 at device 28.4 on pci0
pci7: <ACPI PCI bus> on pcib7
xhci1: <ASMedia ASM1042A USB 3.0 controller> mem 0xf7800000-0xf7807fff irq 16 at device 0.0 on pci7
xhci1: 32 bytes context size, 64-bit DMA
usbus2 on xhci1
ehci1: <Intel Lynx Point USB 2.0 controller USB-A> mem 0xf7c1b000-0xf7c1b3ff irq 23 at device 29.0 on pci0
usbus3: EHCI version 1.0
usbus3 on ehci1
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
ahci0: <Intel Lynx Point AHCI SATA controller> port 0xf0b0-0xf0b7,0xf0a0-0xf0a3,0xf090-0xf097,0xf080-0xf083,0xf060-0xf07f mem 0xf7c1a000-0xf7c1a7ff irq 19 at device 31.2 on pci0
ahci0: AHCI v1.30 with 4 6Gbps ports, Port Multiplier not supported
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich1: <AHCI channel> at channel 1 on ahci0
ahciem0: <AHCI enclosure management bridge> on ahci0
acpi_button0: <Power Button> on acpi0
acpi_tz0: <Thermal Zone> on acpi0
acpi_tz1: <Thermal Zone> on acpi0
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
orm0: <ISA Option ROMs> at iomem 0xd0000-0xd0fff,0xd1000-0xd1fff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
ppc0: cannot reserve I/O port range
est0: <Enhanced SpeedStep Frequency Control> on cpu0
est1: <Enhanced SpeedStep Frequency Control> on cpu1
est2: <Enhanced SpeedStep Frequency Control> on cpu2
est3: <Enhanced SpeedStep Frequency Control> on cpu3
Timecounters tick every 1.000 msec
hdacc0: <Intel Haswell HDA CODEC> at cad 0 on hdac0
hdaa0: <Intel Haswell Audio Function Group> at nid 1 on hdacc0
hdacc1: <Realtek ALC887 HDA CODEC> at cad 0 on hdac1
hdaa1: <Realtek ALC887 Audio Function Group> at nid 1 on hdacc1
pcm0: <Realtek ALC887 (Rear Analog)> at nid 20 and 24,26 on hdaa1
pcm1: <Realtek ALC887 (Front Analog)> at nid 27 and 25 on hdaa1
pcm2: <Realtek ALC887 (Internal Digital)> at nid 17 on hdaa1
random: unblocking device.
usbus0: 5.0Gbps Super Speed USB v3.0
usbus1: 480Mbps High Speed USB v2.0
usbus2: 5.0Gbps Super Speed USB v3.0
usbus3: 480Mbps High Speed USB v2.0
ugen2.1: <0x1b21> at usbus2
uhub0: <0x1b21 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus2
ugen1.1: <Intel> at usbus1
uhub1: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
ugen0.1: <0x8086> at usbus0
uhub2: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1> on usbus0
ugen3.1: <Intel> at usbus3
uhub3: <Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus3
ses0 at ahciem0 bus 0 scbus2 target 0 lun 0
ses0: <AHCI SGPIO Enclosure 1.00 0001> SEMB S-E-S 2.00 device
ses0: SEMB SES Device
ada0 at ahcich1 bus 0 scbus1 target 0 lun 0
ada0: <WDC WD5003AZEX-00MK2A0 01.01A01> ACS-2 ATA SATA 3.x device
ada0: Serial Number WD-WCC3F4HZ3LYF
ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)
cd0 at ahcich0 bus 0 scbus0 target 0 lun 0
cd0: <ATAPI DVD A  DH16A1L KH37> Removable CD-ROM SCSI device
cd0: 150.000MB/s transfers (SATA 1.x, UDMA5, ATAPI 12bytes, PIO 8192bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
ada0: Command Queueing enabled
ada0: 476940MB (976773168 512 byte sectors)
ada0: quirks=0x1<4K>
ada0: Previously was known as ad6
SMP: AP CPU #3 Launched!
SMP: AP CPU #1 Launched!
SMP: AP CPU #2 Launched!
Timecounter "TSC-low" frequency 1599106090 Hz quality 1000
uhub0: 4 ports with 4 removable, self powered
Root mount waiting for: usbus3 usbus1 usbus0
uhub2: 17 ports with 17 removable, self powered
uhub1: 2 ports with 2 removable, self powered
uhub3: 2 ports with 2 removable, self powered
Root mount waiting for: usbus3 usbus1
ugen1.2: <vendor 0x8087> at usbus1
uhub4: <vendor 0x8087 product 0x8008, class 9/0, rev 2.00/0.05, addr 2> on usbus1
ugen3.2: <vendor 0x8087> at usbus3
uhub5: <vendor 0x8087 product 0x8000, class 9/0, rev 2.00/0.05, addr 2> on usbus3
uhub4: 4 ports with 4 removable, self powered
uhub5: 6 ports with 6 removable, self powered
Trying to mount root from ufs:/dev/ada0p2 [rw]...
re0: link state changed to DOWN
em0: link state changed to UP
re0: link state changed to UP
em1: link state changed to UP
em0: promiscuous mode enabled

From pciconf -lv:

Code:
...
pcib4@pci0:3:0:0:  class=0x060400 card=0x00000000 chip=0x10801b21 rev=0x04 hdr=0x01
  vendor  = 'ASMedia Technology Inc.'
  device  = 'ASM1083/1085 PCIe to PCI Bridge'
  class  = bridge
  subclass  = PCI-PCI
none2@pci0:4:0:0:  class=0x070002 card=0x32734651 chip=0x32734651 rev=0x10 hdr=0x00
  class  = simple comms
  subclass  = UART
...

Not an expert here, but does this mean that the ASMedia bridge (on which the actual RS232 chip connects to) is properly detected, yet the serial logic isn't?

Reading https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/serial.html shows that perhaps I should modify hint.uart.0.* and hint.uart.1.* in /boot/device.hints. Plus, reading around some suggested to go with a custom FreeBSD kernel (which, although I did on FreeBSD 8.X, I'd hate to repeat under 10.x, unless there are no other alternatives).

Any ideas on how to proceed?

EDIT: According to the serial board product page from ebay above, it is "Compatible with Standard 16C550 UART with 16-Byte Transmit-Receive FIFO."
 
Not an expert here, but does this mean that the ASMedia bridge (on which the actual RS232 chip connects to) is properly detected, yet the serial logic isn't?
No, the output from pciconf(8) just shows info that's enumerated through the PCI bus. It says nothing about drivers, or if it's detected by the OS. It's simply information that's read from the bus.
 
Well, your device seems to be a 0x32734651 for both PCI card ID and chip ID. That translates to PCI vendor ID 0x4651, device ID 0x3273.

grep -r 0x3273 /usr/src/sys/dev and grep -r 0x4651 /usr/src/sys/dev on 10.3 do not find any likely matches. The drivers likely to support a miscellaneous 16550 on PCI are puc(4) and sio(4), but there's no sign of support for 0x4651 cards/chips in /usr/src/sys/dev/puc/pucdata.c or /usr/src/sys/dev/sio/sio_pci.c.

So, I think you may be out of luck, without patching one of those drivers to support the card.
 
Looking at OpenBSD's src/sys/dev/pci/pcidevs, it looks like someone has had a go at adding support for it over there. I wouldn't want to speculate on the status of that support, but it may be a starting point for adding support to FreeBSD.
 
Thanks for the info. It seems that I'll have to install this into another system then, and use NUT in client mode instead of server.
 
Back
Top