On 01/02/11 17:40, David Pasek:
potrebuji vice seriovych portu

To jsme pred par lety resil taky a nakonec jsem s uspechem koupil a dodnes spokojene pouzivam:

http://www.koutech.com/proddetail.asp?linenumber=59

poridil tuto ctyr portovou kartu
http://www.sunix.com.tw/product/ser4056a.html

Karta funguje, ale detekuji se pouze dva ze ctyrech RS-232 portu


Vygooglil jsem podobny problem na FreeBSD 7 a nekdo tam vytvoril
patch, ktery pomohl.
http://www.mail-archive.com/[email protected]/msg96080.html
Nicmene jsem se koukal do zdrojaku 8.1 do souboru
/usr/src/sys/dev/puc/pucdata.c
a pripada mi, ze uz to je opravene presne podle toho patche.


Ten patch resi trivialni chybu, kdy se zapomelo, ze RID na techto kartach ma krok 4 a nikoli 1

Neopraveny kod predpklada pro porty 0,1 RID 0x10 a pro porty 2,3 RID 0x11, zatimco sktuecnost je takova, ze to jsou RID 0x10 a 0x14.

Pridej k tomu pciconf -lv jeste option -b a mel bys to videt sam - kata ma definovane bar[10] a bar[14] (mozna jeste i nejake dalsi, nas ale zajimaji tyhle - jsou oba typu I/O port) ale bar[11] tam zadny neni.

Ale prestanme se zabyvat timhle - to je chyba, ktera byla odstranena, je odstranena a podle meho nejlepsiho presvedceni se tveho problemu netyka. Tvuj problem je podl eme jinde - ne proto, z ebych si byl az tak jisty kde, jako spis, ze jsem si takrka jisty, ze tady byt nemuze.

Nez se pustim do slozitejsich uvah zkusime ranu naslepo (ono to neni uplne naslepo, ale abych vysvetlil proc to navrhuju, musel bych vysvetlit prilis moc docela netrivialnich veci) - proved jednoduchou upravu. Ve stejne funkci, co se provadela minula oprava (tedy puc_config_timedia) je kod:

        case PUC_CFG_GET_OFS:
                *res = (port == 1 || port == 3) ? 8 : 0;

Tak tu osmicku nahrad sestnactkou.

Vypis z dmesg:
============
puc0:<Timedia technology 4 Port Serial>  port
0xe000-0xe01f,0xe020-0xe02f irq 10 at device 17.0 on pci0
puc0: [FILTER]
uart2:<16550 or compatible>  on puc0
uart3:<16550 or compatible>  on puc0

Tvoje karta je organizovana jako dva dvojporty - to je klasicke usporadani zachovavane kvuli snadne kompatibilite mezi systemy (takhle to ocekaval DOS v legaci seriakach). Nicmene, z tohoto vypisu nepozname, ktere dva ze ctyrech portu byly nalezeny.

Potrebujeme jeste vypis devinfo -rv , respektive, z nej ten podstrom, ktery popisuje informace o puc0 zarizeni.

Pokud budes mit prvni porty z obou paru, pak problem asi je tam co predpokladam, a pokud's zkusil shora navrzenou opravu, tak je mozna uz i napraveny. Pokud nemas prvni dva porty z paru a mas druhe dva porty, pripadne jeden par kompletni a z druheho nic, pak je teorie patrne chybna a zkusit doporucovanou zmenu to sice rozhodne muzes, ale hodne by me prekvapilo, kdyby to pomohlo.

Pokdu se nahodou nepodari problem vyresit touto "prvni ranou naslepo" tak relevantni casti vypisu pciconf -vlb, devinfo -rv a dmesg z verbose bootu by mohla pomoct pri vytvateni dalsich teorii.

Jeste jednou rikam, ze tu tvoji kartu neznam - takze varim skutecne jen z teoretickych uvah. Rozhodne pocitej, ze to nemusi pomoct - a ze se muze stat dokoce i to, ze upraveny modul ti system shodi. Nemel by, ale znas to ...


Dan
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem