Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Sep 2000 23:25:17 +0200 (CEST)
From:      =?ISO-8859-1?Q?G=E9rard_Roudier?= <groudier@club-internet.fr>
To:        Peter Wemm <peter@netplex.com.au>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/i386/isa pcibus.c 
Message-ID:  <Pine.LNX.4.10.10009052308180.1684-100000@linux.local>
In-Reply-To: <200009052110.e85LAFG46854@netplex.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help


On Tue, 5 Sep 2000, Peter Wemm wrote:

> =3D?ISO-8859-1?Q?G=3DE9rard_Roudier?=3D wrote:
> >=20
> > On Mon, 4 Sep 2000, Peter Wemm wrote:
> >=20
> > > peter       2000/09/04 17:53:34 PDT
> > >=20
> > >   Modified files:
> > >     sys/i386/isa         pcibus.c=20
> > >   Log:
> > >   Catch a few more bogosities in certain chipsets before they mess us=
 up.
> > >   Some have dual host->PCI bridges for the same logical pci bus (!), =
eg:
> >=20
> > I donnot understand what a logical bus is, but I have no problem
> > understanding physical, btw. ;-)
> >=20
> > Note that this may rather look like a nice simplification, since we
> > will probably never want, nor need:
> >=20
> > 1) To send a Special Cycle transaction from the physical secondary bus
> >    using a configuration type 1 transaction.
> > 2) To send a configuration type 1 transaction to a secondary physical P=
CI
> >    BUS that has same number as the primary BUS.
> >=20
> > :-) :-)
> >=20
> > >   some of the RCC chipsets.  This is a 32/64 bit 33/66MHz and dual pc=
i
> > >   voltage motherboard so persumably there are electical or signalling
> > >   differences but they are otherwise the same logical bus.
> > >   The new PCI probe code however was getting somewhat upset about it =
and
> > >   ended up creating two pci bridges to the same logical bus, which ca=
used
> > >   devices on that logical bus to appear and be probed twice.
> >=20
> > Does that mean that FreeBSD-4.X does fail the boot with such RCC chipse=
t ?
> > (I may well be bitten by this in a couple of weeks if this is the case)
>=20
> I don't think so.  What used to happen would be that we would see the two
> bridges to pci bus #1, and one of them would get renunbered to pcib2.  An=
d
> of course, the old probe mechanism was assuming pcib unit number =3D=3D
> physical bus number, so it was probing pci bus #2, which didn't really
> exist and therefore found no duplicate devices.

Thanks for the explanation of the issue.
Sometimes we may prefer a broken code that succeeds by luck over a correct
one that gets confused enough and fail. :)

> With the new code, it remembers the correct bus number even if it has to
> renumber the pcib unit number.

Frankly, I am a bit impressed by this RCC chipset bug|feature.

- Old simplistic codes that donnot care about bridges will see a single
  PCI BUS as in good old time of PCI.
- Old broken code may succeed.
- I guess that usual transactions from one BUS targetting the other one
  should work just fine.

But indeed, it is preferable to actally register the 2 resources, in order
to be able to deal with the differences, if it ever happens to get useful.

Thanks.
  G=E9rard.



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.10.10009052308180.1684-100000>