RTL8019AS: Inform ISA PnP of the I/O base address, configured in the EEPROM even if it's programmed to start inactive, fixes the remaining I/O range check errors in RSET8019.

This commit is contained in:
OBattler
2025-09-27 00:56:50 +02:00
parent ca1005817a
commit b8b8efd454

View File

@@ -1411,21 +1411,20 @@ nic_init(const device_t *info)
isapnp_set_normal(dev->pnp_card, !!(dev->config3 & 0x80));
isapnp_set_single_ld(dev->pnp_card);
if (!(dev->config3 & 0x01)) {
uint8_t irq_map[8] = { 9, 3, 4, 5, 10, 11, 12, 15 };
uint8_t irq_map[8] = { 9, 3, 4, 5, 10, 11, 12, 15 };
dev->base_address = 0x0200;
dev->base_address |= (dev->config1 & 0x01) ? 0x0020 : 0x0000;
dev->base_address |= (dev->config1 & 0x02) ? 0x0040 : 0x0000;
dev->base_address |= (dev->config1 & 0x04) ? 0x0000 : 0x0100;
dev->base_address |= (dev->config1 & 0x08) ? 0x0080 : 0x0000;
dev->base_address = 0x0200;
dev->base_address |= (dev->config1 & 0x01) ? 0x0020 : 0x0000;
dev->base_address |= (dev->config1 & 0x02) ? 0x0040 : 0x0000;
dev->base_address |= (dev->config1 & 0x04) ? 0x0000 : 0x0100;
dev->base_address |= (dev->config1 & 0x08) ? 0x0080 : 0x0000;
dev->base_irq = irq_map[(dev->config1 >> 4) & 0x07];
dev->base_irq = irq_map[(dev->config1 >> 4) & 0x07];
if (!(dev->config3 & 0x01))
nic_ioset(dev, dev->base_address);
isapnp_activate(dev->pnp_card, dev->base_address, dev->base_irq);
}
isapnp_activate(dev->pnp_card, dev->base_address, dev->base_irq, !(dev->config3 & 0x01));
}
}