kern/118093: [firewire] firewire bus reset hogs CPU, causing
data to be lost
Gavin Atkinson
gavin at FreeBSD.org
Fri Mar 6 07:53:46 PST 2009
On Wed, 2009-03-04 at 21:37 +0000, Dieter wrote:
> In message <200902022113.n12LDfEI059994 at freefall.freebsd.org>, gavin at freebsd.org writes:
>
> > This looks like it may be some bad
> > interaction between the firewire stack and using a serial
> > console. To submitter: It may be worth while switching to
> > uart(4) rather than sio(4) for your serial ports and seeing
> > if that makes any difference (as I don't think uart(4) uses
> > the Giant lock).
>
> The box is running 7.1 now. I commented out sio in the config file
> and built a new kernel.
>
> normal kernel:
>
> freebsd # dmesg | grep ^sio
> sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
> sio0: type 16550A, console
> sio0: [FILTER]
> sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
> sio1: type 16550A
> sio1: [FILTER]
> freebsd # dmesg | grep -i ^uart
> freebsd # dmesg | grep -i 1655
> sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
> sio0: type 16550A, console
> sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
> sio1: type 16550A
> freebsd # dmesg | grep -i console
> sio0: type 16550A, console
> sc0: <System console> at flags 0x100 on isa0
> sc0: VGA <16 virtual consoles, flags=0x100>
> freebsd # dmesg | grep -i giant
> ohci0: [GIANT-LOCKED]
> ehci0: [GIANT-LOCKED]
> ohci1: [GIANT-LOCKED]
> ohci2: [GIANT-LOCKED]
> ehci1: [GIANT-LOCKED]
> ppc0: [GIANT-LOCKED]
> atkbd0: [GIANT-LOCKED]
>
> With sio commented out:
>
> OK boot kernel_uart
> /boot/kernel_uart/kernel text=0x3f8090 data=0x5b678+0x38cc8 syms=[0x8+0x6ee08+0x
> 8+0x609a9]
> /
>
> And nothing else appears on the console.
>
>
> freebsd # dmesg | grep -i ^sio
> freebsd # dmesg | grep -i ^uart
> uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 on acpi0
> uart0: [FILTER]
> uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0
> uart1: [FILTER]
> freebsd # dmesg | grep -i 1655
> uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 on acpi0
> uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0
> freebsd # dmesg | grep -i console
> sc0: <System console> at flags 0x100 on isa0
> sc0: VGA <16 virtual consoles, flags=0x300>
>
> echo hello >> /dev/console
> doesn't show up. Nothing shows up on console.
>
> And looking at files in /var/log I found:
>
> getty[789]: open /dev/ttyd0: No such file or directory
> getty[790]: open /dev/ttyd1: No such file or directory
>
>
> Looks to me like commenting out sio doesn't work so well on my box.
> Is that the wrong way to switch from sio to uart?
> Is there something else I need to change instead, or in addition?
You'll also need to add the uart hints to your device.hints file, if you
haven't already, and update /etc/ttys.
hint.uart.0.at="isa"
hint.uart.0.port="0x3F8"
hint.uart.0.flags="0x10"
hint.uart.0.irq="4"
/etc/ttys: you may find you need to change "ttyd0" to "ttyu0".
Gavin
More information about the freebsd-bugs
mailing list