[Bug] 430VX is not setting PCI IRQ registers

Discussion of development and patch submission.
Post Reply
Battler
Posts: 793
Joined: Sun 06 Jul, 2014 7:05 pm

[Bug] 430VX is not setting PCI IRQ registers

Post by Battler »

Basically, it never updates the registers so they always stay at 0x80, ie. disabled.
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: [Bug] 430VX is not setting PCI IRQ registers

Post by SarahWalker »

Pretty sure it is. I did test this you know...

Code: Select all

                switch (addr)
                {
                        case 0x00: case 0x01: case 0x02: case 0x03:
                        case 0x08: case 0x09: case 0x0a: case 0x0b:
                        case 0x0e:
                        return;
                        
                        case 0x60:
//                        pclog("IRQ routing %02x %02x\n", addr, val);
                        if (val & 0x80)
                                pci_set_irq_routing(PCI_INTA, PCI_IRQ_DISABLED);
                        else
                                pci_set_irq_routing(PCI_INTA, val & 0xf);
                        break;
                        case 0x61:
//                        pclog("IRQ routing %02x %02x\n", addr, val);
                        if (val & 0x80)
                                pci_set_irq_routing(PCI_INTB, PCI_IRQ_DISABLED);
                        else
                                pci_set_irq_routing(PCI_INTB, val & 0xf);
                        break;
                        case 0x62:
//                        pclog("IRQ routing %02x %02x\n", addr, val);
                        if (val & 0x80)
                                pci_set_irq_routing(PCI_INTC, PCI_IRQ_DISABLED);
                        else
                                pci_set_irq_routing(PCI_INTC, val & 0xf);
                        break;
                        case 0x63:
//                        pclog("IRQ routing %02x %02x\n", addr, val);
                        if (val & 0x80)
                                pci_set_irq_routing(PCI_INTD, PCI_IRQ_DISABLED);
                        else
                                pci_set_irq_routing(PCI_INTD, val & 0xf);
                        break;
                }
                card_piix[addr] = val;
Battler
Posts: 793
Joined: Sun 06 Jul, 2014 7:05 pm

Re: [Bug] 430VX is not setting PCI IRQ registers

Post by Battler »

- SarahWalker: I commented out the pclog's, and I don't see anything. What BIOS are you using?
Battler
Posts: 793
Joined: Sun 06 Jul, 2014 7:05 pm

Re: [Bug] 430VX is not setting PCI IRQ registers

Post by Battler »

OK, I just tried another BIOS and it works correctly. Howeveer, the fact some BIOS'es do not set those registers still means soemthing is wrong IMHO.
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: [Bug] 430VX is not setting PCI IRQ registers

Post by SarahWalker »

The regular 430VX one, 55xwuq0e.bin. You are emulating with a PCI card that uses IRQs aren't you? You won't see any writes otherwise.
Battler
Posts: 793
Joined: Sun 06 Jul, 2014 7:05 pm

Re: [Bug] 430VX is not setting PCI IRQ registers

Post by Battler »

I am. And I confirmed above that with the regular 430VX BIOS, I indeed see the writes. However, with other BIOS'es I don't, at all. Maybe some register is returning a value some BIOS'es don't like?
User avatar
SarahWalker
Site Admin
Posts: 2054
Joined: Thu 24 Apr, 2014 4:18 pm

Re: [Bug] 430VX is not setting PCI IRQ registers

Post by SarahWalker »

Are you sure the other BIOSes are mapping the PCI slots to the same PCI devices as the normal BIOS? Generally they will only try to route IRQs for devices in slots that are recognised. PCI.EXE will be able to tell you which devices are being routed - the normal BIOS (for a Shuttle HOT-433) routes slots 17, 18, 19 and 20 :
pcem_routing.png
pcem_routing.png (45.04 KiB) Viewed 6689 times
szadycbr
Posts: 295
Joined: Mon 21 Nov, 2016 6:23 pm

Re: [Bug] 430VX is not setting PCI IRQ registers

Post by szadycbr »

Do you remember old motherboards, that You had to set IRQ's manually? Can that have caused the problem with Bios?
Battler
Posts: 793
Joined: Sun 06 Jul, 2014 7:05 pm

Re: [Bug] 430VX is not setting PCI IRQ registers

Post by Battler »

Where can I get this PCI.EXE? It looks like I'd really need it.
Battler
Posts: 793
Joined: Sun 06 Jul, 2014 7:05 pm

Re: [Bug] 430VX is not setting PCI IRQ registers

Post by Battler »

Found the right PCI.EXE, and got all the slot information right. Much better! Thanks. :p
Post Reply