summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2013-05-01 16:29:58 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2013-05-01 16:29:58 +0200
commit27f65a138abeee6accd3924f3e2c760b45c0b6ec (patch)
tree83e3fa0cf8a8d90235334efb901b390f5139255d
parentb94a33e01cb7d4e587567c6dc0ac5e0daf793c82 (diff)
uartpci: add detection for StarTech PCI8S9503V (P588UG) (from sources)
-rw-r--r--sys/src/9/pc/uartpci.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/src/9/pc/uartpci.c b/sys/src/9/pc/uartpci.c
index d86acf50f..ec8ce9e94 100644
--- a/sys/src/9/pc/uartpci.c
+++ b/sys/src/9/pc/uartpci.c
@@ -99,8 +99,9 @@ uartpcipnp(void)
perlehead = perletail = nil;
ctlrno = 0;
for(p = pcimatch(nil, 0, 0); p != nil; p = pcimatch(p, 0, 0)){
- if(p->ccrb != Pcibccomm || p->ccru > 2)
- continue;
+ /* StarTech PCI8S9503V has ccru == 0x80 (other) */
+ if(p->ccrb != Pcibccomm || p->ccru > 2 && p->ccru != 0x80)
+ continue;
switch(p->did<<16 | p->vid){
default:
@@ -165,7 +166,14 @@ uartpcipnp(void)
freq = 7372800;
switch(subid){
default:
+ print("uartpci: unknown perle subid %#ux\n", subid);
continue;
+ case (0x1588<<16)|0x10B5: /* StarTech PCI8S9503V (P588UG) */
+ name = "P588UG";
+ /* max. baud rate is 921,600 */
+ freq = 1843200;
+ uart = uartpci(ctlrno, p, 2, 8, freq, name, 8);
+ break;
case (0x0011<<16)|0x12E0: /* Perle PCI-Fast16 */
name = "PCI-Fast16";
uart = uartpci(ctlrno, p, 2, 16, freq, name, 8);