Date: Thu, 13 Apr 2006 20:30:30 GMT From: Marcel Moolenaar <marcel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 95180 for review Message-ID: <200604132030.k3DKUUvL087489@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=95180 Change 95180 by marcel@marcel_nfs on 2006/04/13 20:30:23 Make a big leap and reduce the puc_devices array by a factor of 10 (i.e. 25K to 2.5K): o Eliminate PUC_MAX_PORTS. The number and type of ports is encoded by a single 8-bit entity. For non-standard cards, use PUC_PORT_NONSTANDARD, which causes the number of ports and the type of each to be determined at runtime. There's currently one card that needs PUC_PORT_NONSTANDARD -- it's a 2S1P2S1P card. o Specify the RID/BAR and offset for each of the ports by 3 8-bit values. The first value is the RID/BAR of the first port. The second is a delta value for the RID/BAR and is added to the RID/BAR for subsequent ports. The third value is a delta value for the offset of a sub-region of the resource specified by a RID/BAR. The 2 common configurations are now encoded as follows: 0x10, 0, 8 - All ports use the same RID, but have different offsets within the RID. port 1: 0x10, 0 port 2: 0x10, 8 : 0x14, 4, 0 - All ports have a seperate RID and use offset 0 within the resource. port 1: 0x14, 0 port 2: 0x18, 0 : There are currently 3 cards that cannot directly be encoded this way and will be handled at runtime. o Change the type of the ILR related variables to 8-bit entities. The details of how the configuration is obtained at runtime has not yet been fleshed out beyond calling a function. This will be done when puc.c is brought in sync with these changes. At this time puc.c cannot be compiled. Affected files ... .. //depot/projects/uart/dev/puc/pucdata.c#21 edit .. //depot/projects/uart/dev/puc/pucvar.h#17 edit Differences ... ==== //depot/projects/uart/dev/puc/pucdata.c#21 (text+ko) ==== @@ -44,53 +44,37 @@ #include <dev/pci/pcivar.h> #include <dev/puc/pucvar.h> -int puc_config_win877(struct puc_softc *); +static puc_config_f puc_config_cronyx; +static puc_config_f puc_config_diva; +static puc_config_f puc_config_syba; +static puc_config_f puc_config_siig; +static puc_config_f puc_config_titan; const struct puc_device_description puc_devices[] = { { 0x0009, 0x7168, 0xffff, 0, "Sunix SUN1889", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - }, + PUC_PORT_2S, 0x10, 0, 8, }, { 0x103c, 0x1048, 0x103c, 0x1282, "Diva Serial [GSP] Multiport UART", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x38 }, - }, + PUC_PORT_3S, 0x10, 0, -1, + .config_function = puc_config_diva }, { 0x10b5, 0x1076, 0x10b5, 0x1076, "VScom PCI-800", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x08 }, - { PUC_PORT_TYPE_COM, 0x18, 0x10 }, - { PUC_PORT_TYPE_COM, 0x18, 0x18 }, - { PUC_PORT_TYPE_COM, 0x18, 0x20 }, - { PUC_PORT_TYPE_COM, 0x18, 0x28 }, - { PUC_PORT_TYPE_COM, 0x18, 0x30 }, - { PUC_PORT_TYPE_COM, 0x18, 0x38 }, - }, + PUC_PORT_8S, 0x18, 0, 8, }, { 0x10b5, 0x1077, 0x10b5, 0x1077, "VScom PCI-400", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x08 }, - { PUC_PORT_TYPE_COM, 0x18, 0x10 }, - { PUC_PORT_TYPE_COM, 0x18, 0x18 }, - }, + PUC_PORT_4S, 0x18, 0, 8, }, /* @@ -101,27 +85,13 @@ { 0x10b5, 0x9050, 0x12e0, 0x0021, "Boca Research Turbo Serial 658", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x08 }, - { PUC_PORT_TYPE_COM, 0x18, 0x10 }, - { PUC_PORT_TYPE_COM, 0x18, 0x18 }, - { PUC_PORT_TYPE_COM, 0x18, 0x20 }, - { PUC_PORT_TYPE_COM, 0x18, 0x28 }, - { PUC_PORT_TYPE_COM, 0x18, 0x30 }, - { PUC_PORT_TYPE_COM, 0x18, 0x38 }, - }, + PUC_PORT_8S, 0x18, 0, 8, }, { 0x10b5, 0x9050, 0x12e0, 0x0031, "Boca Research Turbo Serial 654", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x08 }, - { PUC_PORT_TYPE_COM, 0x18, 0x10 }, - { PUC_PORT_TYPE_COM, 0x18, 0x18 }, - }, + PUC_PORT_4S, 0x18, 0, 8, }, /* @@ -133,10 +103,7 @@ { 0x10b5, 0x9050, 0xd84d, 0x6808, "Dolphin Peripherals 4035", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - }, + PUC_PORT_2S, 0x18, 4, 0, }, /* @@ -148,128 +115,67 @@ { 0x10b5, 0x9050, 0xd84d, 0x6810, "Dolphin Peripherals 4014", 0, - { - { PUC_PORT_TYPE_LPT, 0x20, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x24, 0x00 }, - }, + PUC_PORT_2P, 0x20, 4, 0, }, { 0x11fe, 0x8010, 0xffff, 0, "Comtrol RocketPort 550/8 RJ11 part A", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x11fe, 0x8011, 0xffff, 0, "Comtrol RocketPort 550/8 RJ11 part B", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x11fe, 0x8012, 0xffff, 0, "Comtrol RocketPort 550/8 Octa part A", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x11fe, 0x8013, 0xffff, 0, "Comtrol RocketPort 550/8 Octa part B", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x11fe, 0x8014, 0xffff, 0, "Comtrol RocketPort 550/4 RJ45", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x11fe, 0x8015, 0xffff, 0, "Comtrol RocketPort 550/Quad", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x11fe, 0x8016, 0xffff, 0, "Comtrol RocketPort 550/16 part A", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x11fe, 0x8017, 0xffff, 0, "Comtrol RocketPort 550/16 part B", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - { PUC_PORT_TYPE_COM, 0x10, 0x20 }, - { PUC_PORT_TYPE_COM, 0x10, 0x28 }, - { PUC_PORT_TYPE_COM, 0x10, 0x30 }, - { PUC_PORT_TYPE_COM, 0x10, 0x38 }, - { PUC_PORT_TYPE_COM, 0x10, 0x40 }, - { PUC_PORT_TYPE_COM, 0x10, 0x48 }, - { PUC_PORT_TYPE_COM, 0x10, 0x50 }, - { PUC_PORT_TYPE_COM, 0x10, 0x58 }, - }, + PUC_PORT_12S, 0x10, 0, 8, }, { 0x11fe, 0x8018, 0xffff, 0, "Comtrol RocketPort 550/8 part A", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x11fe, 0x8019, 0xffff, 0, "Comtrol RocketPort 550/8 part B", DEFAULT_RCLK * 4, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, /* @@ -285,414 +191,251 @@ { 0x131f, 0x1010, 0xffff, 0, "SIIG Cyber I/O PCI 16C550 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x1c, 0x00 }, - }, + PUC_PORT_1S1P, 0x18, 4, 0, }, { 0x131f, 0x1011, 0xffff, 0, "SIIG Cyber I/O PCI 16C650 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x1c, 0x00 }, - }, + PUC_PORT_1S1P, 0x18, 4, 0, }, { 0x131f, 0x1012, 0xffff, 0, "SIIG Cyber I/O PCI 16C850 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x1c, 0x00 }, - }, + PUC_PORT_1S1P, 0x18, 4, 0, }, { 0x131f, 0x1020, 0xffff, 0, "SIIG Cyber Parallel PCI (10x family)", 0, - { - { PUC_PORT_TYPE_LPT, 0x18, 0x00 }, - }, + PUC_PORT_1P, 0x18, 0, 0, }, { 0x131f, 0x1021, 0xffff, 0, "SIIG Cyber Parallel Dual PCI (10x family)", 0, - { - { PUC_PORT_TYPE_LPT, 0x18, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x20, 0x00 }, - }, + PUC_PORT_2P, 0x18, 8, 0, }, { 0x131f, 0x1030, 0xffff, 0, "SIIG Cyber Serial Dual PCI 16C550 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - }, + PUC_PORT_2S, 0x18, 4, 0, }, { 0x131f, 0x1031, 0xffff, 0, "SIIG Cyber Serial Dual PCI 16C650 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - }, + PUC_PORT_2S, 0x18, 4, 0, }, { 0x131f, 0x1032, 0xffff, 0, "SIIG Cyber Serial Dual PCI 16C850 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - }, + PUC_PORT_2S, 0x18, 4, 0, }, { 0x131f, 0x1034, 0xffff, 0, /* XXX really? */ "SIIG Cyber 2S1P PCI 16C550 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x20, 0x00 }, - }, + PUC_PORT_2S1P, 0x18, 4, 0, }, { 0x131f, 0x1035, 0xffff, 0, /* XXX really? */ "SIIG Cyber 2S1P PCI 16C650 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x20, 0x00 }, - }, + PUC_PORT_2S1P, 0x18, 4, 0, }, { 0x131f, 0x1036, 0xffff, 0, /* XXX really? */ "SIIG Cyber 2S1P PCI 16C850 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x20, 0x00 }, - }, + PUC_PORT_2S1P, 0x18, 4, 0, }, { 0x131f, 0x1050, 0xffff, 0, "SIIG Cyber 4S PCI 16C550 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - { PUC_PORT_TYPE_COM, 0x20, 0x00 }, - { PUC_PORT_TYPE_COM, 0x24, 0x00 }, - }, + PUC_PORT_4S, 0x18, 4, 0, }, { 0x131f, 0x1051, 0xffff, 0, "SIIG Cyber 4S PCI 16C650 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - { PUC_PORT_TYPE_COM, 0x20, 0x00 }, - { PUC_PORT_TYPE_COM, 0x24, 0x00 }, - }, + PUC_PORT_4S, 0x18, 4, 0, }, { 0x131f, 0x1052, 0xffff, 0, "SIIG Cyber 4S PCI 16C850 (10x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - { PUC_PORT_TYPE_COM, 0x20, 0x00 }, - { PUC_PORT_TYPE_COM, 0x24, 0x00 }, - }, + PUC_PORT_4S, 0x18, 4, 0, }, { 0x131f, 0x2010, 0xffff, 0, "SIIG Cyber I/O PCI 16C550 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x14, 0x00 }, - }, + PUC_PORT_1S1P, 0x10, 4, 0, }, { 0x131f, 0x2011, 0xffff, 0, "SIIG Cyber I/O PCI 16C650 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x14, 0x00 }, - }, + PUC_PORT_1S1P, 0x10, 4, 0, }, { 0x131f, 0x2012, 0xffff, 0, "SIIG Cyber I/O PCI 16C850 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x14, 0x00 }, - }, + PUC_PORT_1S1P, 0x10, 4, 0, }, { 0x131f, 0x2020, 0xffff, 0, "SIIG Cyber Parallel PCI (20x family)", 0, - { - { PUC_PORT_TYPE_LPT, 0x10, 0x00 }, - }, + PUC_PORT_1P, 0x10, 0, 0, }, { 0x131f, 0x2021, 0xffff, 0, "SIIG Cyber Parallel Dual PCI (20x family)", 0, - { - { PUC_PORT_TYPE_LPT, 0x10, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x18, 0x00 }, - }, + PUC_PORT_2P, 0x10, 8, 0, }, { 0x131f, 0x2030, 0xffff, 0, "SIIG Cyber Serial Dual PCI 16C550 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - }, + PUC_PORT_2S, 0x10, 4, 0, }, { 0x131f, 0x2031, 0xffff, 0, "SIIG Cyber Serial Dual PCI 16C650 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - }, + PUC_PORT_2S, 0x10, 4, 0, }, { 0x131f, 0x2032, 0xffff, 0, "SIIG Cyber Serial Dual PCI 16C850 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - }, + PUC_PORT_2S, 0x10, 4, 0, }, { 0x131f, 0x2040, 0xffff, 0, "SIIG Cyber 2P1S PCI 16C550 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x14, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x1c, 0x00 }, - }, + PUC_PORT_1S2P, 0x10, -1, 0, + .config_function = puc_config_siig }, { 0x131f, 0x2041, 0xffff, 0, "SIIG Cyber 2P1S PCI 16C650 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x14, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x1c, 0x00 }, - }, + PUC_PORT_1S2P, 0x10, -1, 0, + .config_function = puc_config_siig }, { 0x131f, 0x2042, 0xffff, 0, "SIIG Cyber 2P1S PCI 16C850 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x14, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x1c, 0x00 }, - }, + PUC_PORT_1S2P, 0x10, -1, 0, + .config_function = puc_config_siig }, { 0x131f, 0x2050, 0xffff, 0, "SIIG Cyber 4S PCI 16C550 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - }, + PUC_PORT_4S, 0x10, 4, 0, }, { 0x131f, 0x2051, 0xffff, 0, "SIIG Cyber 4S PCI 16C650 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - }, + PUC_PORT_4S, 0x10, 4, 0, }, { 0x131f, 0x2052, 0xffff, 0, "SIIG Cyber 4S PCI 16C850 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - }, + PUC_PORT_4S, 0x10, 4, 0, }, { 0x131f, 0x2060, 0xffff, 0, "SIIG Cyber 2S1P PCI 16C550 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x18, 0x00 }, - }, + PUC_PORT_2S1P, 0x10, 4, 0, }, { 0x131f, 0x2061, 0xffff, 0, "SIIG Cyber 2S1P PCI 16C650 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x18, 0x00 }, - }, + PUC_PORT_2S1P, 0x10, 4, 0, }, { 0x131f, 0x2062, 0xffff, 0, "SIIG Cyber 2S1P PCI 16C850 (20x family)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x18, 0x00 }, - }, + PUC_PORT_2S1P, 0x10, 4, 0, }, { 0x1393, 0x1040, 0xffff, 0, "Moxa Technologies, Smartio C104H/PCI", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x08 }, - { PUC_PORT_TYPE_COM, 0x18, 0x10 }, - { PUC_PORT_TYPE_COM, 0x18, 0x18 }, - }, + PUC_PORT_4S, 0x18, 0, 8, }, { 0x1393, 0x1041, 0xffff, 0, "Moxa Technologies, Smartio CP-104UL/PCI", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x08 }, - { PUC_PORT_TYPE_COM, 0x18, 0x10 }, - { PUC_PORT_TYPE_COM, 0x18, 0x18 }, - }, + PUC_PORT_4S, 0x18, 0, 8, }, { 0x1393, 0x1141, 0xffff, 0, "Moxa Technologies, Industio CP-114", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x08 }, - { PUC_PORT_TYPE_COM, 0x18, 0x10 }, - { PUC_PORT_TYPE_COM, 0x18, 0x18 }, - }, + PUC_PORT_4S, 0x18, 0, 8, }, { 0x1393, 0x1680, 0xffff, 0, "Moxa Technologies, C168H/PCI", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x08 }, - { PUC_PORT_TYPE_COM, 0x18, 0x10 }, - { PUC_PORT_TYPE_COM, 0x18, 0x18 }, - { PUC_PORT_TYPE_COM, 0x18, 0x20 }, - { PUC_PORT_TYPE_COM, 0x18, 0x28 }, - { PUC_PORT_TYPE_COM, 0x18, 0x30 }, - { PUC_PORT_TYPE_COM, 0x18, 0x38 }, - }, + PUC_PORT_8S, 0x18, 0, 8, }, { 0x1393, 0x1681, 0xffff, 0, "Moxa Technologies, C168U/PCI", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x08 }, - { PUC_PORT_TYPE_COM, 0x18, 0x10 }, - { PUC_PORT_TYPE_COM, 0x18, 0x18 }, - { PUC_PORT_TYPE_COM, 0x18, 0x20 }, - { PUC_PORT_TYPE_COM, 0x18, 0x28 }, - { PUC_PORT_TYPE_COM, 0x18, 0x30 }, - { PUC_PORT_TYPE_COM, 0x18, 0x38 }, - }, + PUC_PORT_8S, 0x18, 0, 8, }, { 0x13a8, 0x0158, 0xffff, 0, "Cronyx Omega2-PCI", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x010, 0x000 }, - { PUC_PORT_TYPE_COM, 0x010, 0x200 }, - { PUC_PORT_TYPE_COM, 0x010, 0x400 }, - { PUC_PORT_TYPE_COM, 0x010, 0x600 }, - { PUC_PORT_TYPE_COM, 0x010, 0x800 }, - { PUC_PORT_TYPE_COM, 0x010, 0xA00 }, - { PUC_PORT_TYPE_COM, 0x010, 0xC00 }, - { PUC_PORT_TYPE_COM, 0x010, 0xE00 }, - }, + PUC_PORT_8S, 0x10, 0, -1, + .config_function = puc_config_cronyx }, { 0x1407, 0x0100, 0xffff, 0, /* MASK */ "Lava Computers dual serial port", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - }, + PUC_PORT_2S, 0x10, 4, 0, }, { 0x1407, 0x0120, 0xffff, 0, /* MASK */ "Lava Computers Quattro-PCI serial port", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - }, + PUC_PORT_2S, 0x10, 4, 0, }, { 0x1407, 0x0180, 0xffff, 0, /* MASK */ "Lava Computers Octopus-550 8-port serial", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - }, + PUC_PORT_4S, 0x10, 4, 0, }, { 0x1407, 0x8000, 0xffff, 0, "Lava Computers 2SP-PCI parallel port", 0, - { - { PUC_PORT_TYPE_LPT, 0x10, 0x00 }, - }, + PUC_PORT_1P, 0x10, 0, 0, }, /* @@ -702,10 +445,7 @@ { 0x1409, 0x7168, 0xffff, 0, "Dolphin Peripherals 4036", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - }, + PUC_PORT_2S, 0x10, 0, 8, }, /* @@ -721,68 +461,43 @@ { 0x1415, 0x8403, 0xffff, 0, "Oxford Semiconductor OX12PCI840 Parallel port", 0, - { - { PUC_PORT_TYPE_LPT, 0x10, 0x00 }, - }, + PUC_PORT_1P, 0x10, 0, 0, }, { 0x1415, 0x9501, 0xffff, 0, "Oxford Semiconductor OX16PCI954 UARTs", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x1415, 0x950a, 0xffff, 0, "Oxford Semiconductor OX16PCI954 UARTs", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x1415, 0x9511, 0xffff, 0, "Oxford Semiconductor OX9160/OX16PCI954 UARTs (function 1)", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x1415, 0x9513, 0xffff, 0, "Oxford Semiconductor OX16PCI954 Parallel port", 0, - { - { PUC_PORT_TYPE_LPT, 0x10, 0x00 }, - }, + PUC_PORT_1P, 0x10, 0, 0, }, { 0x14d2, 0x8020, 0xffff, 0, "VScom PCI-200L", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - }, + PUC_PORT_2S, 0x14, 4, 0, }, { 0x14d2, 0x8028, 0xffff, 0, "VScom 200Li", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x20, 0x00 }, - { PUC_PORT_TYPE_COM, 0x20, 0x08 }, - }, + PUC_PORT_2S, 0x20, 0, 8, }, /* @@ -797,16 +512,8 @@ { 0x14d2, 0x8080, 0xffff, 0, "Titan VScom PCI-800L", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x20, 0x00 }, - { PUC_PORT_TYPE_COM, 0x20, 0x08 }, - { PUC_PORT_TYPE_COM, 0x20, 0x10 }, - { PUC_PORT_TYPE_COM, 0x20, 0x18 }, - { PUC_PORT_TYPE_COM, 0x20, 0x20 }, - { PUC_PORT_TYPE_COM, 0x20, 0x28 }, - }, + PUC_PORT_8S, 0x14, -1, -1, + .config_function = puc_config_titan }, /* @@ -817,249 +524,154 @@ { 0x14d2, 0xa003, 0xffff, 0, "Titan PCI-800H", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x14d2, 0xa004, 0xffff, 0, "Titan PCI-800H", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - { PUC_PORT_TYPE_COM, 0x10, 0x10 }, - { PUC_PORT_TYPE_COM, 0x10, 0x18 }, - }, + PUC_PORT_4S, 0x10, 0, 8, }, { 0x14d2, 0xa005, 0xffff, 0, "Titan PCI-200H", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x10, 0x08 }, - }, + PUC_PORT_2S, 0x10, 0, 8, }, { 0x14d2, 0xe020, 0xffff, 0, "Titan VScom PCI-200HV2", DEFAULT_RCLK * 8, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - }, + PUC_PORT_2S, 0x10, 4, 0, }, { 0x14db, 0x2130, 0xffff, 0, /* MASK */ "Avlab Technology, PCI IO 2S", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - }, + PUC_PORT_2S, 0x10, 4, 0, }, { 0x14db, 0x2150, 0xffff, 0, "Avlab Low Profile PCI 4 Serial", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - }, + PUC_PORT_4S, 0x10, 4, 0, }, { 0x1592, 0x0781, 0xffff, 0, "Syba Tech Ltd. PCI-4S2P-550-ECP", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x2e8 }, - { PUC_PORT_TYPE_COM, 0x10, 0x2f8 }, - { PUC_PORT_TYPE_LPT, 0x10, 0x000 }, - { PUC_PORT_TYPE_COM, 0x10, 0x3e8 }, - { PUC_PORT_TYPE_COM, 0x10, 0x3f8 }, - { PUC_PORT_TYPE_LPT, 0x10, 0x000 }, - }, - .init = puc_config_win877, + PUC_PORT_NONSTANDARD, 0x10, 0, -1, + .config_function = puc_config_syba }, { 0x6666, 0x0001, 0xffff, 0, "Decision Computer Inc, PCCOM 4-port serial", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x08 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x10 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x18 }, - }, + PUC_PORT_4S, 0x1c, 0, 8, }, { 0x6666, 0x0004, 0xffff, 0, "PCCOM dual port RS232/422/485", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x08 }, - }, + PUC_PORT_2S, 0x1c, 0, 8, }, { 0x9710, 0x9805, 0xffff, 0, "NetMos NM9805 1284 Printer port", 0, - { - { PUC_PORT_TYPE_LPT, 0x10, 0x00 }, - }, + PUC_PORT_1P, 0x10, 0, 0, }, { 0x9710, 0x9835, 0xffff, 0, "NetMos NM9835 Dual UART and 1284 Printer port", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_LPT, 0x18, 0x00 }, - }, + PUC_PORT_2S1P, 0x10, 4, 0, }, { 0x9710, 0x9845, 0xffff, 0, "NetMos NM9845 Quad UART", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, - { PUC_PORT_TYPE_COM, 0x14, 0x00 }, - { PUC_PORT_TYPE_COM, 0x18, 0x00 }, - { PUC_PORT_TYPE_COM, 0x1c, 0x00 }, - }, + PUC_PORT_4S, 0x10, 4, 0, }, { 0xb00c, 0x021c, 0xffff, 0, "IC Book Labs Gunboat x4 Lite", DEFAULT_RCLK, - { - { PUC_PORT_TYPE_COM, 0x10, 0x00 }, >>> TRUNCATED FOR MAIL (1000 lines) <<<
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200604132030.k3DKUUvL087489>