PCI: Fix and delegate bridge initialization on Dell riser machines

This commit is contained in:
RichardG867
2025-05-28 16:35:38 -03:00
parent 72a52318f5
commit 2b71002dab
6 changed files with 41 additions and 28 deletions

View File

@@ -170,14 +170,14 @@ machine_at_optiplexgxa_init(const machine_t *model)
pci_register_slot(0x11, PCI_CARD_NETWORK, 4, 0, 0, 0);
pci_register_slot(0x0E, PCI_CARD_NORMAL, 3, 4, 2, 1);
pci_register_slot(0x0D, PCI_CARD_NORMAL, 2, 1, 3, 4);
pci_register_slot(0x0F, PCI_CARD_BRIDGE, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_BRIDGE, 0, 0, 0, 0);
if (sound_card_current[0] == SOUND_INTERNAL)
device_add(machine_get_snd_device(machine));
device_add(&i440lx_device);
device_add(&piix4_device);
device_add(&dec21152_device);
machine_at_optiplex_21152_init();
device_add_params(&pc87307_device, (void *) (PCX730X_PHOENIX_42 | PCX7307_PC87307));
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);

View File

@@ -46,6 +46,15 @@
#include <86box/network.h>
#include <86box/pci.h>
void
machine_at_optiplex_21152_init(void)
{
uint8_t bus_index = pci_bridge_get_bus_index(device_add(&dec21152_device));
pci_register_bus_slot(bus_index, 0x09, PCI_CARD_NORMAL, 1, 2, 3, 4);
pci_register_bus_slot(bus_index, 0x0a, PCI_CARD_NORMAL, 4, 2, 1, 3);
pci_register_bus_slot(bus_index, 0x0b, PCI_CARD_NORMAL, 1, 3, 4, 2);
}
int
machine_at_acerv35n_init(const machine_t *model)
{
@@ -989,7 +998,7 @@ machine_at_optiplexgn_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_VIDEO, 4, 0, 0, 0); /* Trio64V2/GX, temporarily Trio64V2/DX is given */
pci_register_slot(0x11, PCI_CARD_NETWORK, 4, 0, 0, 0); /* 3C905, not yet emulated */
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 4);
pci_register_slot(0x0F, PCI_CARD_BRIDGE, 1, 2, 3, 4);
pci_register_slot(0x0F, PCI_CARD_BRIDGE, 0, 0, 0, 0);
if (gfxcard[0] == VID_INTERNAL)
device_add(machine_get_vid_device(machine));
@@ -999,7 +1008,7 @@ machine_at_optiplexgn_init(const machine_t *model)
device_add(&i430tx_device);
device_add(&piix4_device);
device_add(&dec21152_device);
machine_at_optiplex_21152_init();
device_add_params(&pc87307_device, (void *) (PCX730X_PHOENIX_42 | PCX7307_PC87307));
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 128);