Serial port stops working after upgrade to 9-CURRENT

Jeremy Chadwick freebsd at jdc.parodius.com
Fri Jan 20 15:28:13 UTC 2012


On Fri, Jan 20, 2012 at 04:49:58PM +0200, Sergey Listopad wrote:
> After system upgrade from 8.2-CURRENT to 9.0-CURRENT serial port
> (motherboard integrated) stops working.
> 
> FreeBSD ferma.loc 9.0-STABLE FreeBSD 9.0-STABLE #2: Fri Jan 20
> 15:50:06 EET 2012     root at ferma.loc:/usr/obj/usr/src-8/sys/RT  i386
> 
> > dmesg | grep -E '^uart[0-9]'
> uart0: <16550 or compatible> at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
> uart0: <16550 or compatible> at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
> 
> > grep uart /boot/device.hints
> hint.uart.0.at="isa"
> hint.uart.0.port="0x3F8"
> hint.uart.0.flags="0x10"
> hint.uart.0.irq="4"
> #hint.uart.1.at="isa"
> #hint.uart.1.port="0x2F8"
> #hint.uart.1.irq="3"
> 
> > config -x /boot/kernel/kernel  | egrep 'uart|sio'
> device  uart_ns8250
> device  uart
> 
> Where can i search the problem?

CC'ing Marcel Moolenaar (author of uart(4)), who should be able to help.

You can start by explaining what "stops working" means, as well as
provide a verbose boot, your full kernel configuration file, and
contents of /boot/loader.conf.

Also, does this machine have ACPI support?  I do not use 9.x, but uartX
on our RELENG_8 systems is tied to acpi0, not isa0.  It's been this way
for quite some time (even our RELENG_7 boxes are this way).

Also, why are you modifying /boot/device.hints?  You shouldn't be
touching that file (please don't :-) ); instead, to disable a serial
port such as uart1, you can simply add this to /boot/loader.conf:

hint.uart.1.disabled="1"

I realise this isn't well-documented.  For example, uart(4) and sio(4)
talk about "/boot/device.hints", while things like ahci(4) talk about
how you can modify variables via loader(8), while cam(4) says you can
use either (how wonderfully consistent, eh?).

Both methods functionally work, yes, but /boot/device.hints is a file
that will get stomped on either installworld or installkernel or
mergemaster (I forget which).  You can set hints in /boot/loader.conf
and leave /boot/device.hints alone entirely.

-- 
| Jeremy Chadwick                                 jdc at parodius.com |
| Parodius Networking                     http://www.parodius.com/ |
| UNIX Systems Administrator                 Mountain View, CA, US |
| Making life hard for others since 1977.             PGP 4BD6C0CB |



More information about the freebsd-stable mailing list