[Bug] 430VX is not setting PCI IRQ registers

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

[Bug] 430VX is not setting PCI IRQ registers

Postby Battler » Fri 02 Jun, 2017 9:13 pm

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

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

Postby SarahWalker » Fri 02 Jun, 2017 9:17 pm

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

Postby Battler » Fri 02 Jun, 2017 9:31 pm

- 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

Postby Battler » Fri 02 Jun, 2017 9:41 pm

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.
SarahWalker
Site Admin
Posts: 1335
Joined: Thu 24 Apr, 2014 4:18 pm

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

Postby SarahWalker » Fri 02 Jun, 2017 9:42 pm

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

Postby Battler » Fri 02 Jun, 2017 9:44 pm

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?
SarahWalker
Site Admin
Posts: 1335
Joined: Thu 24 Apr, 2014 4:18 pm

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

Postby SarahWalker » Sat 03 Jun, 2017 6:47 am

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 584 times
szadycbr
Posts: 187
Joined: Mon 21 Nov, 2016 6:23 pm

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

Postby szadycbr » Sat 03 Jun, 2017 8:52 am

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

Postby Battler » Sat 03 Jun, 2017 1:22 pm

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

Postby Battler » Sat 03 Jun, 2017 2:00 pm

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

Return to “Development”

Who is online

Users browsing this forum: No registered users and 1 guest