Module Name: src Committed By: soren Date: Wed Jul 17 19:49:11 UTC 2013
Modified Files: src/sys/dev/pci: pcidevs pucdata.c pucvar.h Log Message: Extend support for Nanjing QinHeng Electronics puc(4) devices. To generate a diff of this commit: cvs rdiff -u -r1.1158 -r1.1159 src/sys/dev/pci/pcidevs cvs rdiff -u -r1.84 -r1.85 src/sys/dev/pci/pucdata.c cvs rdiff -u -r1.9 -r1.10 src/sys/dev/pci/pucvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/pcidevs diff -u src/sys/dev/pci/pcidevs:1.1158 src/sys/dev/pci/pcidevs:1.1159 --- src/sys/dev/pci/pcidevs:1.1158 Thu Jun 13 06:11:34 2013 +++ src/sys/dev/pci/pcidevs Wed Jul 17 19:49:11 2013 @@ -1,4 +1,4 @@ -$NetBSD: pcidevs,v 1.1158 2013/06/13 06:11:34 matt Exp $ +$NetBSD: pcidevs,v 1.1159 2013/07/17 19:49:11 soren Exp $ /* * Copyright (c) 1995, 1996 Christopher G. Demetriou @@ -633,6 +633,7 @@ vendor EVE 0x1adb EVE vendor QUMRANET 0x1af4 Qumranet vendor ASMEDIA 0x1b21 ASMedia vendor FRESCO 0x1b73 Fresco Logic +vendor QINHENG2 0x1c00 Nanjing QinHeng Electronics (PCIe) vendor SYMPHONY2 0x1c1c Symphony Labs (2nd PCI Vendor ID) vendor TEKRAM2 0x1de1 Tekram Technology (2nd PCI Vendor ID) vendor SUNIX2 0x1fd4 SUNIX Co @@ -4500,8 +4501,27 @@ product PROMISE PDC20619 0x6629 PDC20619 product PROMISE PDC20277 0x7275 PDC20277 Ultra/133 IDE Controller /* Nanjing QinHeng Electronics */ -product QINHENG CH352 0x3253 CH352 -product QINHENG CH353 0x7053 CH353 +product QINHENG CH352_2S 0x3253 CH352 2S +product QINHENG CH353_4S 0x3453 CH353 4S +product QINHENG CH356_8S 0x3853 CH356 8S +product QINHENG CH356_6S 0x3873 CH356 6S +product QINHENG CH353_2S1PAR 0x5046 CH353 2S, 1P (fixed address) +product QINHENG CH352_1S1P 0x5053 CH352 1S, 1P +product QINHENG CH357_4S 0x5334 CH357 4S +product QINHENG CH358_4S1P 0x5334 CH358 4S, 1P +product QINHENG CH358_8S 0x5338 CH358 8S +product QINHENG CH359_16S 0x5838 CH359 16S +product QINHENG CH353_2S1P 0x7053 CH353 2S, 1P +product QINHENG CH356_4S1P 0x7073 CH356 4S, 1P +product QINHENG CH355_4S 0x7173 CH355 4S + +/* Nanjing QinHeng Electronics (PCIe) */ +product QINHENG2 CH384_4S1P 0x3450 CH384 4S, 1P +product QINHENG2 CH384_4S 0x3470 CH384 4S +product QINHENG2 CH382_2S1P 0x3250 CH382 2S, 1P +product QINHENG2 CH382_2S 0x3253 CH382 2S +product QINHENG2 CH384_8S 0x3853 CH384 8S +product QINHENG2 CH384_28S 0x4353 CH384 28S /* QLogic products */ product QLOGIC QLA200 0x0119 QLA200 Index: src/sys/dev/pci/pucdata.c diff -u src/sys/dev/pci/pucdata.c:1.84 src/sys/dev/pci/pucdata.c:1.85 --- src/sys/dev/pci/pucdata.c:1.84 Mon Jun 3 16:21:50 2013 +++ src/sys/dev/pci/pucdata.c Wed Jul 17 19:49:11 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: pucdata.c,v 1.84 2013/06/03 16:21:50 msaitoh Exp $ */ +/* $NetBSD: pucdata.c,v 1.85 2013/07/17 19:49:11 soren Exp $ */ /* * Copyright (c) 1998, 1999 Christopher G. Demetriou. All rights reserved. @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pucdata.c,v 1.84 2013/06/03 16:21:50 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pucdata.c,v 1.85 2013/07/17 19:49:11 soren Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1229,10 +1229,6 @@ const struct puc_device_description puc_ { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ * 8}, { PUC_PORT_TYPE_COM, 0x14, 0x10, COM_FREQ * 8}, { PUC_PORT_TYPE_COM, 0x14, 0x18, COM_FREQ * 8}, -/* - * PUC_MAX_PORTS needs to be raised in order to reach these ports - */ -#if PUC_MAX_PORTS >= 16 { PUC_PORT_TYPE_COM, 0x14, 0x20, COM_FREQ * 8}, { PUC_PORT_TYPE_COM, 0x14, 0x28, COM_FREQ * 8}, { PUC_PORT_TYPE_COM, 0x14, 0x30, COM_FREQ * 8}, @@ -1241,7 +1237,6 @@ const struct puc_device_description puc_ { PUC_PORT_TYPE_COM, 0x14, 0x48, COM_FREQ * 8}, { PUC_PORT_TYPE_COM, 0x14, 0x50, COM_FREQ * 8}, { PUC_PORT_TYPE_COM, 0x14, 0x58, COM_FREQ * 8}, -#endif /* PUC_MAX_PORTS >= 16 */ }, }, @@ -1375,19 +1370,52 @@ const struct puc_device_description puc_ * 2 serial port converter. Product codes from * documentation (and physical 2 port serial card) */ - { "Nanjing QinHeng Electronics 2S", - { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH352, + { "Nanjing QinHeng Electronics CH352", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH352_2S, + PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH352_2S }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, + }, + }, + + { "Nanjing QinHeng Electronics CH352", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH352_1S1P, + PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH352_1S1P }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, + }, + }, + + { "Nanjing QinHeng Electronics CH353", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH353_4S, + PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH353_4S }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, + }, + }, + + { "Nanjing QinHeng Electronics CH353", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH353_2S1P, PCI_VENDOR_QINHENG, 0x3253 }, { 0xffff, 0xffff, 0xffff, 0xffff }, { { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_LPT, 0x18, 0x00, 0x00 }, }, }, - { "Nanjing QinHeng Electronics 2S, 1P", - { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH353, - PCI_VENDOR_QINHENG, 0x7053 }, + { "Nanjing QinHeng Electronics CH353 (fixed address)", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH353_2S1PAR, + PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH353_2S1PAR }, { 0xffff, 0xffff, 0xffff, 0xffff }, { { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, @@ -1396,6 +1424,224 @@ const struct puc_device_description puc_ }, }, + { "Nanjing QinHeng Electronics CH355", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH355_4S, + PCI_VENDOR_QINHENG, 0x3473 }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, + }, + }, + + { "Nanjing QinHeng Electronics CH356", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH356_4S1P, + PCI_VENDOR_QINHENG, 0x3473 }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, + }, + }, + + { "Nanjing QinHeng Electronics CH356", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH356_6S, + PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH356_6S }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ }, + }, + }, + + { "Nanjing QinHeng Electronics CH356", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH356_8S, + PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH356_8S }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ }, + }, + }, + + { "Nanjing QinHeng Electronics CH357", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH357_4S, + PCI_VENDOR_QINHENG, 0x5053 }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, + }, + }, + + { "Nanjing QinHeng Electronics CH358", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH358_4S1P, + PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH358_4S1P }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_LPT, 0x20, 0x00, 0x00 }, + }, + }, + + { "Nanjing QinHeng Electronics CH358", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH358_8S, + PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH358_8S }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ }, + }, + }, + + { "Nanjing QinHeng Electronics CH359", + { PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH359_16S, + PCI_VENDOR_QINHENG, PCI_PRODUCT_QINHENG_CH359_16S }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x1c, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x14, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x18, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x1c, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x10, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x20, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x30, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x18, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x28, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x20, 0x38, COM_FREQ }, + }, + }, + + { "Nanjing QinHeng Electronics CH382", + { PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH382_2S, + PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH382_2S }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0xc0, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xc8, COM_FREQ }, + }, + }, + + { "Nanjing QinHeng Electronics CH382", + { PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH382_2S1P, + PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH382_2S1P }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0xc0, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xc8, COM_FREQ }, + { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, + }, + }, + + { "Nanjing QinHeng Electronics CH384", + { PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH384_4S, + PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH384_4S }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0xc0, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xc8, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xd0, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xd8, COM_FREQ }, + }, + }, + + { "Nanjing QinHeng Electronics CH384", + { PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH384_4S1P, + PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH384_4S1P }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0xc0, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xc8, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xd0, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xd8, COM_FREQ }, + { PUC_PORT_TYPE_LPT, 0x14, 0x00, 0x00 }, + }, + }, + + { "Nanjing QinHeng Electronics CH384", + { PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH384_8S, + PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH384_8S }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ }, + }, + }, + + { "Nanjing QinHeng Electronics CH384", + { PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH384_28S, + PCI_VENDOR_QINHENG2, PCI_PRODUCT_QINHENG2_CH384_28S }, + { 0xffff, 0xffff, 0xffff, 0xffff }, + { + { PUC_PORT_TYPE_COM, 0x10, 0xc0, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xc8, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xd0, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xd8, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x00, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x10, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x20, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x30, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x08, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x18, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x28, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x38, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x40, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x50, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x60, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x70, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x48, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x58, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x68, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x78, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x80, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x90, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xa0, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xb0, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x88, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0x98, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xa8, COM_FREQ }, + { PUC_PORT_TYPE_COM, 0x10, 0xb8, COM_FREQ }, + }, + }, + /* Intel 82946GZ/GL KT */ { "Intel 82946GZ/GL KT", { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_82946GZ_KT, 0, 0 }, Index: src/sys/dev/pci/pucvar.h diff -u src/sys/dev/pci/pucvar.h:1.9 src/sys/dev/pci/pucvar.h:1.10 --- src/sys/dev/pci/pucvar.h:1.9 Sun Aug 1 18:50:24 2010 +++ src/sys/dev/pci/pucvar.h Wed Jul 17 19:49:11 2013 @@ -1,4 +1,4 @@ -/* $NetBSD: pucvar.h,v 1.9 2010/08/01 18:50:24 msaitoh Exp $ */ +/* $NetBSD: pucvar.h,v 1.10 2013/07/17 19:49:11 soren Exp $ */ /* * Copyright (c) 1998, 1999 Christopher G. Demetriou. All rights reserved. @@ -37,7 +37,7 @@ * Author: Christopher G. Demetriou, May 14, 1998. */ -#define PUC_MAX_PORTS 16 +#define PUC_MAX_PORTS 32 struct puc_device_description { const char *name;