From owner-freebsd-hackers Wed Apr 9 14:19:10 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id OAA18718 for hackers-outgoing; Wed, 9 Apr 1997 14:19:10 -0700 (PDT) Received: from root.com (implode.root.com [198.145.90.17]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id OAA18679; Wed, 9 Apr 1997 14:18:58 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by root.com (8.8.5/8.6.5) with SMTP id OAA22425; Wed, 9 Apr 1997 14:18:41 -0700 (PDT) Message-Id: <199704092118.OAA22425@root.com> X-Authentication-Warning: implode.root.com: localhost [127.0.0.1] didn't use HELO protocol To: asami@vader.cs.berkeley.edu (Satoshi Asami) cc: stesin@gu.net, se@freebsd.org, hackers@freebsd.org, scsi@freebsd.org Subject: Re: Intel XXpress again (was: 2 PCI busses, 2 AIC chips, 2.2.1. Howto ? In-reply-to: Your message of "Tue, 08 Apr 1997 14:58:31 PDT." <199704082158.OAA27677@silvia.HIP.Berkeley.EDU> From: David Greenman Reply-To: dg@root.com Date: Wed, 09 Apr 1997 14:18:41 -0700 Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > * I'm considering this, but I don't trust my own skills of > * hacking pretty unfamiliar kernel code to get production > * system running in 2-3 days... I still hope that there already is > * a solution... > >Well, let's see if David can help you. I am, of course. I've attached the fix I used on the Intel Alder box, but I don't know if the patch will even apply cleanly anymore...so you might have to do this by hand. -DG David Greenman Core-team/Principal Architect, The FreeBSD Project Index: pci.c =================================================================== RCS file: /home/ncvs/src/sys/pci/pci.c,v retrieving revision 1.23.4.5 diff -c -r1.23.4.5 pci.c *** 1.23.4.5 1996/01/19 19:21:03 --- pci.c 1996/01/30 08:18:14 *************** *** 158,163 **** --- 158,173 ---- 0x4000000, 0xFFFFFFFFu, /* nonprefetch membase/limit */ 0x4000000, 0xFFFFFFFFu /* prefetch membase/limit */ }; + #define SECOND_BUS 1 + static struct pcicb pcibus1 = { + NULL, NULL, NULL, + { 0 }, + 0, SECOND_BUS, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, /* real allocation */ + 0, 0xFFFF, /* iobase/limit */ + 0x2000000, 0xFFFFFFFFu, /* nonprefetch membase/limit */ + 0x2000000, 0xFFFFFFFFu /* prefetch membase/limit */ + }; static struct pcicb *pcicb; /*======================================================== *************** *** 207,212 **** --- 217,238 ---- if (pcicb) pcicb = pcicb->pcicb_next; } + #if 1 + for (pcicb = &pcibus1; pcicb != NULL;) { + pci_bus_config (); + + if (pcicb->pcicb_down) { + pcicb = pcicb->pcicb_down; + continue; + }; + + while (pcicb && !pcicb->pcicb_next) + pcicb = pcicb->pcicb_up; + + if (pcicb) + pcicb = pcicb->pcicb_next; + } + #endif pci_conf_count++; }