From owner-freebsd-hackers Wed Sep 8 12:17:10 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from pinhead.parag.codegen.com (207-44-235-154.CodeGen.COM [207.44.235.154]) by hub.freebsd.org (Postfix) with ESMTP id 3B7251510D for ; Wed, 8 Sep 1999 12:17:06 -0700 (PDT) (envelope-from parag@pinhead.parag.codegen.com) Received: from pinhead.parag.codegen.com (parag@localhost.parag.codegen.com [127.0.0.1]) by pinhead.parag.codegen.com (8.9.3/8.9.3) with ESMTP id MAA16597; Wed, 8 Sep 1999 12:16:13 -0700 (PDT) (envelope-from parag@pinhead.parag.codegen.com) To: David Malone Cc: freebsd-hackers@freebsd.org, Sheldon Hearn Subject: Re: STABLE kern/13546: Too-verbose output from PCI probe at bootup In-Reply-To: Message from David Malone of "Wed, 08 Sep 1999 08:18:43 BST." <199909080818.aa15279@salmon.maths.tcd.ie> X-Face: =O'Kj74icvU|oS*<7gS/8'\Pbpm}okVj*@UC!IgkmZQAO!W[|iBiMs*|)n*`X ]pW%m>Oz_mK^Gdazsr.Z0/JsFS1uF8gBVIoChGwOy{EK=<6g?aHE`[\S]C]T0Wm X-URL: http://www.codegen.com Date: Wed, 08 Sep 1999 12:16:13 -0700 Message-ID: <16593.936818173@pinhead.parag.codegen.com> From: Parag Patel Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG >It seemmed to work fine for us too, but if there is a possibility >of some problem it's probably worth working around "properly". It >only takes about 4 lines of code. (Unless someone can say this >is definitely harmless in the SMP case) Ok, here's the proper 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. Better? Anyone out there with 255 Orion chips in their system? -- 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-hackers" in the body of the message