From owner-freebsd-bugs Thu Sep 9 10:50: 9 1999 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id E1AC21584E for ; Thu, 9 Sep 1999 10:50:04 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id KAA90024; Thu, 9 Sep 1999 10:50:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Date: Thu, 9 Sep 1999 10:50:02 -0700 (PDT) Message-Id: <199909091750.KAA90024@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: Parag Patel Subject: Re: kern/13546: Too-verbose output from PCI probe at bootup Reply-To: Parag Patel Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR kern/13546; it has been noted by GNATS. From: Parag Patel To: freebsd-gnats-submit@freebsd.org Cc: Subject: Re: kern/13546: Too-verbose output from PCI probe at bootup Date: Thu, 09 Sep 1999 10:41:51 -0700 Here's a better fix. Turns out that this 4xPPro box has two "Orion" chips in it, and the code that picks off the number of subordinate buses returns 255 for whatever reason. The fix is copied from the fixbushigh_450nx() routine into the fixbushigh_orion() routine, which appears to have the same problem. The fix could be made generic and moved out of both bushigh routines if there are no systems out there with 255 subordinate buses. The magic number 255 may mean different things to different chipsets so I settled for this Orion-specific fix. -- Parag Patel *** /sys/pci/pcisupport.c Sat Sep 4 04:02:49 1999 - --- pcisupport.c Wed Sep 8 12:03:00 1999 *************** *** 129,134 **** - --- 129,149 ---- { tag->secondarybus = pci_cfgread(tag, 0x4a, 1); tag->subordinatebus = pci_cfgread(tag, 0x4b, 1); + + if (tag->subordinatebus == 255) { + printf("fixbushigh_orion: bogus highest PCI bus %d", + tag->subordinatebus); + #ifdef NBUS + tag->subordinatebus = NBUS - 2; + #else + tag->subordinatebus = 10; + #endif + printf(", reduced to %d\n", tag->subordinatebus); + } + + if (bootverbose) + printf("fixbushigh_orion: subordinatebus is %d\n", + tag->subordinatebus); } static void To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message