Sphere478 wrote on 2022-06-21, 10:32:
zyga64 wrote on 2022-06-21, 10:11:
Not all signals are connected in parallel for PCI slots. It is only true for ISA Slots. For example not all IRQ lines are available on single PCI Slot.
Note that in some BIOSes, you can assign an IRQ for the corresponding PCI slot.
somehow they made this work. ( I have one) it’s buried in my stuff atm but looking at the pic now I see a chip that I didn’t remember before.
Think I can pull IRQs from the ISA slots? gonna be plugging into them anyway...
That chip you didn't remember before may have been a PCI-PCI bridge.
Interrupt lines are not the problem. Each PCI slot has 4 interrupt pins, INTA# through INTD#. PCI interrupts are designed to be shared; with 5 or 6 PCI slots and 1 AGP slot (which just a fancy variant of PCI after all) on an ATX motherboard plus any PCI devices soldered onto the board plus the PCI devices integrated into the southbridge, there's far more devices than interrupt lines. In practice, motherboard makers would rotate the PCI interrupt lines coming from the southbridge, so that INTA# did not get overused by PCI cards that only needed 1 IRQ. So slot 1 would have INTA#, INTB#, INTC#, INTD#, and then slot 2 would have INTB#, INTC#, INTD#, INTA#, and so on.
As for the ISA IRQs, they behave entirely differently and are edge triggered instead of level triggered IIRC, and the PCI Interrupt Controller will not be expecting PCI devices to use them. (PC/PCI aka SBLink is a separate thing from this.)
There are several signals on each PCI slot that are not a "bus", they are unique per-slot. From Wikipedia:
Most lines are connected to each slot in parallel. The exceptions are: […]
Most lines are connected to each slot in parallel. The exceptions are:
- Each slot has its own REQ# output to, and GNT# input from the motherboard arbiter.
- Each slot has its own IDSEL line, usually connected to a specific AD line.
- TDO is daisy-chained to the following slot's TDI. Cards without JTAG support must connect TDI to TDO so as not to break the chain.
- PRSNT1# and PRSNT2# for each slot have their own pull-up resistors on the motherboard. The motherboard may (but does not have to) sense these pins to determine the presence of PCI cards and their power requirements.
The REQ/GNT lines are bus mastering. The IDSEL is a slot identifier. I think these signals are why PCI-PCI bridges are a thing - so that bus mastering and slot identification can be shared.