Date: Thu, 18 May 1995 12:55:57 +0200 From: esser@ZPR.Uni-Koeln.DE (Stefan Esser) To: Bruce Evans <bde@zeta.org.au> Cc: current@freebsd.org Subject: Re: Enthusiasm boost: make world works on 386SX16 4Mb Message-ID: <199505181055.AA14966@FileServ1.MI.Uni-Koeln.DE> In-Reply-To: Bruce Evans <bde@zeta.org.au> "Re: Enthusiasm boost: make world works on 386SX16 4Mb" (May 18, 20:20)
next in thread | previous in thread | raw e-mail | index | archive | help
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: <se@ZPR.Uni-Koeln.DE> Zentrum fuer Paralleles Rechnen Tel: +49 221 4706017 Universitaet zu Koeln FAX: +49 221 4705160 Weyertal 80 50931 Koeln
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199505181055.AA14966>