Kerlun 发表于 2012-08-20 11:57

FreeBSD下怎么支持6个COM口

各位大牛:
    我是做BIOS的,最近客户需要在FreeBSD系统(8.3版)下实现6个COM通信,但是只有2个COM能测试通过,而同样的再windows系统下是可以全部通过的。不论我单独分配IRQ还是共享IRQ,后面4个COM都无法测试通过,在disabled ACPI的情况下,客户也测试过说不行。不知道FreeBSD系统对多COM需要怎么支持呢?小弟对这方面是菜鸟都不如,还请各位大大支点招,谢谢!!!

以下是我们获取的配置:
# dmesg |grep uart
uart0: <16550 or compatible> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
uart0:
uart1: <16550 or compatible> port 0x2f8-0x2ff irq 3 on acpi0
uart1:
uart2: <16550 or compatible> port 0x3e8-0x3ef irq 7 on acpi0
uart2:
uart3: <16550 or compatible> port 0x2e8-0x2ef irq 5 on acpi0
uart3:
uart4: <16550 or compatible> port 0x2e0-0x2e7 irq 6 on acpi0
uart4:
uart5: <16550 or compatible> port 0x2f0-0x2f7 irq 10 on acpi0
uart5:

测试方法:
在命令行中输入:
echo 'test' >/dev/cuau0
echo 'test' >/dev/cuau1
echo 'test' >/dev/cuau2
echo 'test' >/dev/cuau3
echo 'test' >/dev/cuau4
echo 'test' >/dev/cuau5
分别向0~5六个端口发送数据,每个端口发送4次,能够发送成功即可。

在Disabled ACPI时,我配置了后面4个COM,如下:
hint.uart.2.at="isa"
hint.uart.2.port="0x3E8"
hint.uart.2.flags="0x301"
hint.uart.3.at="isa"
hint.uart.3.port="0x2E8"
hint.uart.3.flags="0x301"
hint.uart.3.irq="7"

hint.uart.4.at="isa"
hint.uart.4.port="0x2E0"
hint.uart.4.flags="0x501"
hint.uart.5.at="isa"
hint.uart.5.port="0x2F0"
hint.uart.5.flags="0x501"
hint.uart.5.irq="10"

ulovko 发表于 2012-08-20 12:12

http://www.freebsd.org/doc/handbook/serial.html
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/serialconsole-setup.html
http://www.freebsd.org/doc/faq/serial.html

Hongqiyaodao 发表于 2012-08-20 12:16

Kerlun 发表于 2012-08-20 12:29

这个我也看过一些手册,都是按照他们上面来配置的,但还是一样无法实现。
我发现在boot过程中就只扫到前2个COM,但在系统下又能获取后面4个的配置,就是测试无法通过。
在没disabled ACPI的情况下,系统能否支持6个COM?我在手册上看的都是说在disabled ACPI时配置,则可以支持。
页: [1]
查看完整版本: FreeBSD下怎么支持6个COM口