Ключевые слова:serial, multiport, freebsd, driver, serial, kernel, (найти похожие документы)
From: point212 <point212@mail.ru.>
Newsgroups: email
Date: Mon, 11 Apr 2005 14:31:37 +0000 (UTC)
Subject: Установка мультипортовки Advantech PCI-1620b под FreeBSD
Установка мультипортовки Advantech PCI-1620b (чип Oxford OX16PCI954) под FreeBSD
Купили мультипортовую карту Advantech на чипе OX16PCI945
К сожалению, сразу после включения компьютера ОС (FreeBSD 4.10) карты не обнаружила.
Выход был найден - puc. Универсальный драйвер.
Чтобы его активировать, надо в конфиге ядра написать
device puc
Только нам это тоже не помогло. Ибо карточка не непосредственно от
Oxford semiconductors, а от Advantech.
В общем полезли править /sys/dev/puc/pucdata.c
Обнаружилась там Oxford OX16PCI954.
Ладно. Внимательно читая dmesg | less и pciconf -lv
Нашли что наша карта, имеет vendor=0x13fe и card=1600 и card=16ff
Стали искать в базе вендоров (/usr/share/misc/pci_vendors)
Там ничего хорошего нет.
В общем решились на эксперимент. Добавили в /sys/dev/puc/pucdata.c
следующие строки (где-то посередине файла)
{ "Advantech Co., Ltd.",
{ 0x13fe, 0x1600, 0, 0 },
{ 0xffff, 0xffff, 0, 0 },
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
},
},
{ "Advantech Co., Ltd.",
{ 0x13fe, 0x16ff, 0, 0 },
{ 0xffff, 0xffff, 0, 0 },
{
{ PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ },
{ PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ },
{ PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ },
{ PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ },
},
},
Почему так? Потому что, одна карточка видится как два контроллера, по 4
компорта на каждом. (это обусловлено архитектурой чипа Oxford). Чтобы
это все выяснить пришлось перелопатить даташит на чип :) Узнал много
нового
В общем, после добавления строк все пошло как по маслу.
Ядро перекомпилил, перезагрузился. Вуаля. Новые sio. Создал
дополнительных /dev/cuaa
И радуюсь жизни. Чего и вам желаю