From owner-freebsd-current Thu May 18 05:43:44 1995 Return-Path: current-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id EAA05618 for current-outgoing; Thu, 18 May 1995 04:01:40 -0700 Received: from wc.cdrom.com (wc.cdrom.com [192.216.223.37]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id EAA05612 for ; Thu, 18 May 1995 04:01:38 -0700 Received: from FileServ1.MI.Uni-Koeln.DE (FileServ1.MI.Uni-Koeln.DE [134.95.212.1]) by wc.cdrom.com (8.6.12/8.6.12) with SMTP id EAA21057 for ; Thu, 18 May 1995 04:01:43 -0700 Received: by FileServ1.MI.Uni-Koeln.DE id AA14966 (5.67b/IDA-1.5 for current@freebsd.org); Thu, 18 May 1995 12:55:57 +0200 Message-Id: <199505181055.AA14966@FileServ1.MI.Uni-Koeln.DE> From: esser@ZPR.Uni-Koeln.DE (Stefan Esser) Date: Thu, 18 May 1995 12:55:57 +0200 In-Reply-To: Bruce Evans "Re: Enthusiasm boost: make world works on 386SX16 4Mb" (May 18, 20:20) X-Mailer: Mail User's Shell (7.2.5 10/14/92) To: Bruce Evans Subject: Re: Enthusiasm boost: make world works on 386SX16 4Mb Cc: current@freebsd.org Sender: current-owner@freebsd.org Precedence: bulk On May 18, 20:20, Bruce Evans wrote: } Subject: Re: Enthusiasm boost: make world works on 386SX16 4Mb I've got one new idea regarding tallying PCI interrupts. Not a solution, but an easy workaround for now: How about reserving the "0" entry in intrcnt[] and the intrnames list for PCI ? Having "config" generate "vector.h" accordingly, if a "controller pci0" entry was found would be trivial. This would make the device_id of 0 do the right thing, though there was only one combined counter for all PCI interrupts for now. } >} It's actually only an index into intr_countp[] and intrnames[]. } >} Config is supposed to fill in all device tables with suitable } >} indexes and build a string table to match. You can fake this } >} now using dummy isa devices: } >} } >} device PCI0 at isa? } >} ... } >} device PCI15 at isa? } >} } >} Use a trivial failing probe routine to copy the ids to a pci-specific } >} place. } } >Yes. Know this. But this would be to much of a hack IMHO ! } } It seems reasonable to have a real to have a real isa device } behind the glue routines in isa/pcibus.c. Hmm, don't quite understand ... PCI device structures can be dynamically configured. PCI interrupts can be shared (i.e. any number of similar or even totally unrelated devices connected to one IRQ). I don't see PCI as a bus "behind" ISA, even though this is reality in today's predominant PCI system base ... } >I've locally patched "config" to put pci devices into } >"vector.h". This makes the names appear in the intrnames } >array, it just can't be located by the register_intr() } >code. } } >By having an explicit intrcnt address and another name } >parameter, register_intr() could match the name in the } >intrnames array as build by the modified config. } } OK. Put all the controller names in the string table so } that you don't have to decide which. To support PCI devices, I've got to put some number of each into the string table. E.g. the "de" driver can be used with 4channel Ethernet cards, which will all use the same IRQ, but are independent devices and should get private intrcnt values, IMHO. So it might be useful to have some 8 entries for each PCI driver, as long as a fixed string table is used. But this won't do for loadable device drivers and really is no good match for PCI neither. STefan -- Stefan Esser Internet: Zentrum fuer Paralleles Rechnen Tel: +49 221 4706017 Universitaet zu Koeln FAX: +49 221 4705160 Weyertal 80 50931 Koeln