com1 incorrectly associated with ttyd1, com2 with ttyd0

John Baldwin jhb at freebsd.org
Thu Nov 17 08:04:40 PST 2005


On Thursday 17 November 2005 12:03 am, Joe Rhett wrote:
> This is funny.  This is true in both 5.4-RELEASE and 6.0-RELEASE
>
> 1. Plug serial connection into com1, configure as console
> 2. Edit /etc/ttys, enable ttyd0
> 3. set console=comconsole in /boot/loader.conf
> 4. Boot system (generic kernel) -- all output goes to com1
> 5. No login prompt...
>
> Edit /etc/ttys, enable ttyd1
> kill -HUP 1
> Login prompt
>
> devinfo -r  shows
>
>     sio0
>         Interrupt request lines:
>             0x3
>         I/O ports:
>             0x2f8-0x2ff
>     sio1
>         Interrupt request lines:
>             0x4
>         I/O ports:
>             0x3f8-0x3ff
>
>
> So... so COM1 is sio0/ttyd0 until the system finishes booting, at which
> time it swap with com2 and becomes sio1/ttyd1 ?
>
> NOTE: in the BIOS I've assigned 3f8/int4 to serial B, and 2f8/int3 to
> serial A.  But why would sio assignments be tied to the hardware order
> instead of the io assignments?  And better yet, why would they swap during
> the boot process?

The boot process has an I/O port (3f8) hardcoded by default.  However, the 
kernel enumerates devices based on what the BIOS tells us, and since you have 
serial A setup as COM2 resources and serial B setup as COM1 resources, the 
BIOS will list serial A first, so sio0 will get serial A and thus COM2.  Try 
fixing your BIOS to map serial A to COM1.

-- 
John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org


More information about the freebsd-hardware mailing list