dingusppc/devices/common
joevt 2a64f547cc Add 64-bit BAR support.
While dingusppc only emulates 32-bit Macs (for now), it is possible for a 32-bit Power Mac to use a PCIe card that has 64-bit BARs.

finish_config_bars is added to scan the cfg values of the BARs and determine their type. The type is stored separately so that it does not need to be determined again.
The type can be I/O (16 or 32 bit) or Mem (20 or 32 or 64 bit). A 64 bit bar is two BARs, the second contains the most significant 32 bits.

set_bar_value uses the stored type instead of trying to determine the type itself. It is always called even when the firmware is doing sizing. For sizing, It does the job of setting the bar value so do_bar_sizing is now just a stub.

Every PCIDevice that has a BAR needs to call finish_config_bars after setting up the cfg values just as they need to setup the cfg values. Since they need to do both, maybe the cfg values should be arguments of finish_config_bars, then finish_config_bars() should be renamed config_bars().
2023-02-02 02:47:34 -08:00
..
adb Clean up some ctors/dtors. 2022-01-10 17:56:24 +01:00
i2c Generic I2C PROM emulation. 2022-08-14 23:01:55 +02:00
pci Add 64-bit BAR support. 2023-02-02 02:47:34 -08:00
scsi Fix HWComponent name initialization. 2023-01-11 00:05:23 -08:00
dbdma.cpp dbdma: disable two logging messages. 2022-11-18 18:07:32 +01:00
dbdma.h Rework DBDMA logic for bidirectional channels. 2022-11-17 18:03:18 +01:00
dmacore.h Rework DBDMA logic for bidirectional channels. 2022-11-17 18:03:18 +01:00
hwcomponent.h Make NVRAM a full-fledged HW component. 2022-05-21 14:51:27 +02:00
hwinterrupt.h Hacks for debugging HW interrupts. 2022-08-27 17:38:53 +02:00
machineid.h Fix Gossamer system register. 2023-01-11 23:49:20 +01:00
mmiodevice.h Fix read/write argument names 2022-08-22 17:16:22 -07:00
nvram.cpp Remove unnecessary linefeeds from log 2022-08-14 05:26:56 -07:00
nvram.h nvram: self-registration with the device registry. 2022-07-18 20:27:34 +02:00
ofnvram.cpp Fix compiler warnings: cast loses precision. 2023-01-11 01:17:12 -08:00
ofnvram.h Fix setenv and printenv 2022-08-22 17:20:04 -07:00
viacuda.cpp Hacks for debugging HW interrupts. 2022-08-27 17:38:53 +02:00
viacuda.h Hacks for debugging HW interrupts. 2022-08-27 17:38:53 +02:00