From spork@h10.biglist.com  Fri Oct 18 00:04:24 2002
Return-Path: <spork@h10.biglist.com>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 25ECA37B401
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 18 Oct 2002 00:04:24 -0700 (PDT)
Received: from h10.biglist.com (h10.biglist.com [209.123.46.110])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 8840843E88
	for <FreeBSD-gnats-submit@freebsd.org>; Fri, 18 Oct 2002 00:04:23 -0700 (PDT)
	(envelope-from spork@h10.biglist.com)
Received: from synapse.biglist.com (localhost [127.0.0.1])
	by synapse.biglist.com (8.12.6/8.12.6) with ESMTP id g9C75d71000488
	for <FreeBSD-gnats-submit@freebsd.org>; Sat, 12 Oct 2002 03:05:39 -0400 (EDT)
	(envelope-from spork@synapse.biglist.com)
Received: (from spork@localhost)
	by synapse.biglist.com (8.12.6/8.12.6/Submit) id g9C75dMY000487;
	Sat, 12 Oct 2002 03:05:39 -0400 (EDT)
Message-Id: <200210120705.g9C75dMY000487@synapse.biglist.com>
Date: Sat, 12 Oct 2002 03:05:39 -0400 (EDT)
From: Charles Sprickman <spork@inch.com>
Reply-To: Charles Sprickman <spork@inch.com>
To: FreeBSD-gnats-submit@freebsd.org
Cc:
Subject: -stable rp driver does not work with multiple rp cards.
X-Send-Pr-Version: 3.113
X-GNATS-Notify:

>Number:         44202
>Category:       kern
>Synopsis:       [rp] [patch] -stable rp driver does not work with multiple rp cards.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Oct 18 00:10:03 PDT 2002
>Closed-Date:    
>Last-Modified:  Mon Oct 24 06:01:09 GMT 2005
>Originator:     Charles Sprickman
>Release:        FreeBSD 4.7-RELEASE i386
>Organization:
>Environment:
System: FreeBSD synapse.fasttrackmonkey.com 4.7-RELEASE FreeBSD 4.7-RELEASE #3: Fri Oct 11 22:26:54 EDT 2002 spork@synapse.fasttrackmonkey.com:/usr/obj/usr/src/sys/SYNAPSE i386


	
>Description:
	Installing a single multiport Comtrol RocketPort controller (in this 
case a PCI-8J) everything is fine.  If you install two of these cards, they
are both probed/detected at boot, but only rp0 functions.  I have elminated
cabling problems, term software problems (cu, kermit, minicom tested) and
hopefully operator error.  Additionally testing with a backported -current
driver shows that both cards function (see below).

The -stable driver also generates warnings about "old style compatibility
shims" and "WARNING: "rp" is usurping "rp"'s cdevsw[]".

>How-To-Repeat:
	Install multiple RocketPort PCI cards.
	
>Fix:
	I'm not a coder, but I found the following backport of the -current
driver:  http://people.freebsd.org/~gallatin/rp.tgz which allows both 
cards to work.  It seems to have it's own problems however, as it produces
spurious errors in the data passing through the port; the errors are serious
enough to preclude use of this driver.  It's also only available as a kld.

	


>Release-Note:
>Audit-Trail:

From: Mark Linimon <linimon@lonesome.com>
To: freebsd-gnats-submit@FreeBSD.org, spork@inch.com
Cc: <rand@meridian-enviro.com>
Subject: Re: kern/44202: -stable rp driver does not work with multiple rp cards.
Date: Fri, 24 Oct 2003 22:48:16 -0500

 Adding to audit trail from misfiled PR pending/58151 from "Douglas K. Rand"
 <rand@meridian-enviro.com> on Thu, 16 Oct 2003 18:22:44 -0500:
 
 I stumbled across this patch on the Comtrol web site at
 http://forum.comtrol.com/
 index.php?t=msg&th=204&rid=&S=6c65760ee25e2e2e548b5183696beb3e&pl_view=&start=0#msg_204
 that patches sys/i386/isa/rp.c and solves the problem for me.
  
  *** rp.c.old Thu May 16 16:04:40 2002
  --- rp.c Wed May 22 11:45:52 2002
  ***************
  *** 1104,1109 ****
  --- 1104,1118 ----
  printf("RocketPort%d = %d ports\n", unit, num_ports);
  rp_num_ports[unit] = num_ports;
  
  +
  + /* Bradford J. Snow BradS@pacelinesystems.com */
  + /* Sets ndevs to the number of cards currently found */
  + /* Fixes Bug that prevented multiple PCI boards from working */
  + ndevs = unit;
  + printf("RocketPort Boards Found: %d\n",ndevs+1);
  +
  +
  +
  rp = (struct rp_port *)
  malloc(sizeof(struct rp_port) * num_ports, M_TTYS,
  M_NOWAIT);
  if(rp == 0) {
 
 
 
>Unformatted:
