From b8b8efd454d2d01d7b596cd753bb66d445bac752 Mon Sep 17 00:00:00 2001 From: OBattler Date: Sat, 27 Sep 2025 00:56:50 +0200 Subject: [PATCH] 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. --- src/network/net_ne2000.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/network/net_ne2000.c b/src/network/net_ne2000.c index e9732fba8..3e2e7dd38 100644 --- a/src/network/net_ne2000.c +++ b/src/network/net_ne2000.c @@ -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)); } }