i82875p: Host bridge fun [O. Galibert]
This commit is contained in:
parent
50b149ce29
commit
f7c7c43dcb
@ -6,6 +6,38 @@ const device_type I82875P_AGP = &device_creator<i82875p_agp_device>;
|
||||
DEVICE_ADDRESS_MAP_START(agp_translation_map, 32, i82875p_host_device)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
DEVICE_ADDRESS_MAP_START(config_map, 32, i82875p_host_device)
|
||||
AM_RANGE(0x50, 0x53) AM_READWRITE8 (agpm_r, agpm_w, 0x0000ff00)
|
||||
AM_RANGE(0x50, 0x53) AM_READ8 (gc_r, 0x00ff0000)
|
||||
AM_RANGE(0x50, 0x53) AM_READ8 (csabcont_r, 0xff000000)
|
||||
AM_RANGE(0x58, 0x5b) AM_READ (eap_r)
|
||||
AM_RANGE(0x5c, 0x5f) AM_READ8 (derrsyn_r, 0x000000ff)
|
||||
AM_RANGE(0x5c, 0x5f) AM_READ8 (des_r, 0x0000ff00)
|
||||
AM_RANGE(0x60, 0x63) AM_READWRITE8 (fpllcont_r, fpllcont_w, 0x000000ff)
|
||||
AM_RANGE(0x90, 0x97) AM_READWRITE8 (pam_r, pam_w, 0xffffffff)
|
||||
AM_RANGE(0x9c, 0x9f) AM_READWRITE8 (smram_r, smram_w, 0x0000ff00)
|
||||
AM_RANGE(0x9c, 0x9f) AM_READWRITE8 (esmramc_r, esmramc_w, 0x00ff0000)
|
||||
AM_RANGE(0xa0, 0xa3) AM_READ (acapid_r)
|
||||
AM_RANGE(0xa4, 0xa7) AM_READ (agpstat_r)
|
||||
AM_RANGE(0xa8, 0xab) AM_READ (agpcmd_r)
|
||||
AM_RANGE(0xb0, 0xb3) AM_READWRITE (agpctrl_r, agpctrl_w)
|
||||
AM_RANGE(0xb4, 0xb7) AM_READWRITE8 (apsize_r, apsize_w, 0x000000ff)
|
||||
AM_RANGE(0xb8, 0xbb) AM_READWRITE (attbase_r, attbase_w)
|
||||
AM_RANGE(0xbc, 0xbf) AM_READWRITE8 (amtt_r, amtt_w, 0x000000ff)
|
||||
AM_RANGE(0xbc, 0xbf) AM_READWRITE8 (lptt_r, lptt_w, 0x0000ff00)
|
||||
AM_RANGE(0xc4, 0xc7) AM_READWRITE16(toud_r, toud_w, 0x0000ffff)
|
||||
AM_RANGE(0xc4, 0xc7) AM_READWRITE16(mchcfg_r, mchcfg_w, 0xffff0000)
|
||||
AM_RANGE(0xc8, 0xcb) AM_READ16 (errsts_r, 0x0000ffff)
|
||||
AM_RANGE(0xc8, 0xcb) AM_READWRITE16(errcmd_r, errcmd_w, 0xffff0000)
|
||||
AM_RANGE(0xcc, 0xcf) AM_READWRITE16(smicmd_r, smicmd_w, 0x0000ffff)
|
||||
AM_RANGE(0xcc, 0xcf) AM_READWRITE16(scicmd_r, scicmd_w, 0xffff0000)
|
||||
AM_RANGE(0xdc, 0xdf) AM_READWRITE16(skpd_r, skpd_w, 0xffff0000)
|
||||
AM_RANGE(0xe4, 0xe7) AM_READ (capreg1_r)
|
||||
AM_RANGE(0xe8, 0xeb) AM_READ8 (capreg2_r, 0x000000ff)
|
||||
|
||||
AM_INHERIT_FROM(pci_host_device::config_map)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
i82875p_host_device::i82875p_host_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: pci_host_device(mconfig, I82875P_HOST, "i82875p northbridge", tag, owner, clock, "i82875p_host", __FILE__)
|
||||
{
|
||||
@ -21,6 +53,11 @@ void i82875p_host_device::set_ram_size(int _ram_size)
|
||||
ram_size = _ram_size;
|
||||
}
|
||||
|
||||
READ8_MEMBER(i82875p_host_device::capptr_r)
|
||||
{
|
||||
return 0xe4;
|
||||
}
|
||||
|
||||
void i82875p_host_device::device_start()
|
||||
{
|
||||
pci_host_device::device_start();
|
||||
@ -41,15 +78,334 @@ void i82875p_host_device::device_start()
|
||||
add_map(256*1024*1024, M_MEM, FUNC(i82875p_host_device::agp_translation_map));
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::agpm_r)
|
||||
{
|
||||
return agpm;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( i82875p_host_device::agpm_w)
|
||||
{
|
||||
agpm = data;
|
||||
logerror("%s: agpm = %02x\n", tag(), agpm);
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::gc_r)
|
||||
{
|
||||
return 0x08;
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::csabcont_r)
|
||||
{
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
READ32_MEMBER( i82875p_host_device::eap_r)
|
||||
{
|
||||
return 0x00000000;
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::derrsyn_r)
|
||||
{
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::des_r)
|
||||
{
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::fpllcont_r)
|
||||
{
|
||||
return fpllcont;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( i82875p_host_device::fpllcont_w)
|
||||
{
|
||||
fpllcont = data;
|
||||
logerror("%s: fpllcont = %02x\n", tag(), data);
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::pam_r)
|
||||
{
|
||||
return pam[offset];
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( i82875p_host_device::pam_w)
|
||||
{
|
||||
pam[offset] = data;
|
||||
logerror("%s: pam[%d] = %02x\n", tag(), offset, data);
|
||||
remap_cb();
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::smram_r)
|
||||
{
|
||||
return smram;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( i82875p_host_device::smram_w)
|
||||
{
|
||||
if(!(smram & 0x10))
|
||||
smram = (data & 0xfe) | 0x02;
|
||||
logerror("%s: smram = %02x\n", tag(), smram);
|
||||
remap_cb();
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::esmramc_r)
|
||||
{
|
||||
return esmramc;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( i82875p_host_device::esmramc_w)
|
||||
{
|
||||
if(!(smram & 0x10))
|
||||
esmramc = (data & 0x87) | 0x38;
|
||||
logerror("%s: esmramc = %02x\n", tag(), smram);
|
||||
remap_cb();
|
||||
}
|
||||
|
||||
READ32_MEMBER( i82875p_host_device::acapid_r)
|
||||
{
|
||||
return 0x00300002;
|
||||
}
|
||||
|
||||
READ32_MEMBER( i82875p_host_device::agpstat_r)
|
||||
{
|
||||
return 0x1f004a13;
|
||||
}
|
||||
|
||||
READ32_MEMBER( i82875p_host_device::agpcmd_r)
|
||||
{
|
||||
return 0x00000a00;
|
||||
}
|
||||
|
||||
READ32_MEMBER( i82875p_host_device::agpctrl_r)
|
||||
{
|
||||
return agpctrl;
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(i82875p_host_device::agpctrl_w)
|
||||
{
|
||||
COMBINE_DATA(&agpctrl);
|
||||
logerror("%s: agpctrl = %08x\n", tag(), agpctrl);
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::apsize_r)
|
||||
{
|
||||
return apsize;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( i82875p_host_device::apsize_w)
|
||||
{
|
||||
apsize = data;
|
||||
logerror("%s: apsize = %02x\n", tag(), apsize);
|
||||
}
|
||||
|
||||
READ32_MEMBER( i82875p_host_device::attbase_r)
|
||||
{
|
||||
return attbase;
|
||||
}
|
||||
|
||||
WRITE32_MEMBER(i82875p_host_device::attbase_w)
|
||||
{
|
||||
COMBINE_DATA(&attbase);
|
||||
logerror("%s: attbase = %08x\n", tag(), attbase);
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::amtt_r)
|
||||
{
|
||||
return amtt;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( i82875p_host_device::amtt_w)
|
||||
{
|
||||
amtt = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::lptt_r)
|
||||
{
|
||||
return lptt;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( i82875p_host_device::lptt_w)
|
||||
{
|
||||
lptt = data;
|
||||
}
|
||||
|
||||
READ16_MEMBER( i82875p_host_device::toud_r)
|
||||
{
|
||||
return toud;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(i82875p_host_device::toud_w)
|
||||
{
|
||||
COMBINE_DATA(&toud);
|
||||
logerror("%s: toud = %08x\n", tag(), 512*toud);
|
||||
remap_cb();
|
||||
}
|
||||
|
||||
READ16_MEMBER( i82875p_host_device::mchcfg_r)
|
||||
{
|
||||
return mchcfg;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(i82875p_host_device::mchcfg_w)
|
||||
{
|
||||
COMBINE_DATA(&mchcfg);
|
||||
}
|
||||
|
||||
READ16_MEMBER( i82875p_host_device::errsts_r)
|
||||
{
|
||||
return 0x0000;
|
||||
}
|
||||
|
||||
READ16_MEMBER( i82875p_host_device::errcmd_r)
|
||||
{
|
||||
return errcmd;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(i82875p_host_device::errcmd_w)
|
||||
{
|
||||
COMBINE_DATA(&errcmd);
|
||||
}
|
||||
|
||||
READ16_MEMBER( i82875p_host_device::smicmd_r)
|
||||
{
|
||||
return smicmd;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(i82875p_host_device::smicmd_w)
|
||||
{
|
||||
COMBINE_DATA(&smicmd);
|
||||
}
|
||||
|
||||
READ16_MEMBER( i82875p_host_device::scicmd_r)
|
||||
{
|
||||
return scicmd;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(i82875p_host_device::scicmd_w)
|
||||
{
|
||||
COMBINE_DATA(&scicmd);
|
||||
}
|
||||
|
||||
READ16_MEMBER( i82875p_host_device::skpd_r)
|
||||
{
|
||||
return skpd;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(i82875p_host_device::skpd_w)
|
||||
{
|
||||
COMBINE_DATA(&skpd);
|
||||
}
|
||||
|
||||
READ32_MEMBER( i82875p_host_device::capreg1_r)
|
||||
{
|
||||
return 0x0106a009;
|
||||
}
|
||||
|
||||
READ8_MEMBER( i82875p_host_device::capreg2_r)
|
||||
{
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
void i82875p_host_device::device_reset()
|
||||
{
|
||||
pci_host_device::device_reset();
|
||||
|
||||
agpm = 0x00;
|
||||
fpllcont = 0x00;
|
||||
memset(pam, 0, sizeof(pam));
|
||||
smram = 0x02;
|
||||
esmramc = 0x38;
|
||||
agpctrl = 0x00000000;
|
||||
apsize = 0x00;
|
||||
attbase = 0x00000000;
|
||||
amtt = 0x10;
|
||||
lptt = 0x10;
|
||||
toud = 0x0400;
|
||||
mchcfg = 0x0000;
|
||||
errcmd = 0x0000;
|
||||
smicmd = 0x0000;
|
||||
scicmd = 0x0000;
|
||||
skpd = 0x0000;
|
||||
}
|
||||
|
||||
void i82875p_host_device::map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
|
||||
{
|
||||
io_space->install_device(0, 0xffff, *static_cast<pci_host_device *>(this), &pci_host_device::io_configuration_access_map);
|
||||
|
||||
UINT32 top = toud << 16;
|
||||
if(top > ram_size)
|
||||
top = ram_size;
|
||||
|
||||
memory_space->install_ram (0x00000000, 0x0007ffff, &ram[0x00000000/4]);
|
||||
|
||||
if(smram & 0x40)
|
||||
memory_space->install_ram (0x000a0000, 0x000bffff, &ram[0x000a0000/4]);
|
||||
|
||||
if(pam[1] & 0x01)
|
||||
memory_space->install_rom (0x000c0000, 0x000c3fff, &ram[0x000c0000/4]);
|
||||
if(pam[1] & 0x02)
|
||||
memory_space->install_writeonly(0x000c0000, 0x000c3fff, &ram[0x000c0000/4]);
|
||||
if(pam[1] & 0x10)
|
||||
memory_space->install_rom (0x000c4000, 0x000c7fff, &ram[0x000c4000/4]);
|
||||
if(pam[1] & 0x20)
|
||||
memory_space->install_writeonly(0x000c4000, 0x000c7fff, &ram[0x000c4000/4]);
|
||||
if(pam[2] & 0x01)
|
||||
memory_space->install_rom (0x000c8000, 0x000cbfff, &ram[0x000c8000/4]);
|
||||
if(pam[2] & 0x02)
|
||||
memory_space->install_writeonly(0x000c8000, 0x000cbfff, &ram[0x000c8000/4]);
|
||||
if(pam[2] & 0x10)
|
||||
memory_space->install_rom (0x000cc000, 0x000cffff, &ram[0x000cc000/4]);
|
||||
if(pam[2] & 0x20)
|
||||
memory_space->install_writeonly(0x000cc000, 0x000cffff, &ram[0x000cc000/4]);
|
||||
if(pam[3] & 0x01)
|
||||
memory_space->install_rom (0x000d0000, 0x000d3fff, &ram[0x000d0000/4]);
|
||||
if(pam[3] & 0x02)
|
||||
memory_space->install_writeonly(0x000d0000, 0x000d3fff, &ram[0x000d0000/4]);
|
||||
if(pam[3] & 0x10)
|
||||
memory_space->install_rom (0x000d4000, 0x000d7fff, &ram[0x000d4000/4]);
|
||||
if(pam[3] & 0x20)
|
||||
memory_space->install_writeonly(0x000d4000, 0x000d7fff, &ram[0x000d4000/4]);
|
||||
if(pam[4] & 0x01)
|
||||
memory_space->install_rom (0x000d8000, 0x000dbfff, &ram[0x000d8000/4]);
|
||||
if(pam[4] & 0x02)
|
||||
memory_space->install_writeonly(0x000d8000, 0x000dbfff, &ram[0x000d8000/4]);
|
||||
if(pam[4] & 0x10)
|
||||
memory_space->install_rom (0x000dc000, 0x000dffff, &ram[0x000dc000/4]);
|
||||
if(pam[4] & 0x20)
|
||||
memory_space->install_writeonly(0x000dc000, 0x000dffff, &ram[0x000dc000/4]);
|
||||
if(pam[5] & 0x01)
|
||||
memory_space->install_rom (0x000e0000, 0x000e3fff, &ram[0x000e0000/4]);
|
||||
if(pam[5] & 0x02)
|
||||
memory_space->install_writeonly(0x000e0000, 0x000e3fff, &ram[0x000e0000/4]);
|
||||
if(pam[5] & 0x10)
|
||||
memory_space->install_rom (0x000e4000, 0x000e7fff, &ram[0x000e4000/4]);
|
||||
if(pam[5] & 0x20)
|
||||
memory_space->install_writeonly(0x000e4000, 0x000e7fff, &ram[0x000e4000/4]);
|
||||
if(pam[6] & 0x01)
|
||||
memory_space->install_rom (0x000e8000, 0x000ebfff, &ram[0x000e8000/4]);
|
||||
if(pam[6] & 0x02)
|
||||
memory_space->install_writeonly(0x000e8000, 0x000ebfff, &ram[0x000e8000/4]);
|
||||
if(pam[6] & 0x10)
|
||||
memory_space->install_rom (0x000ec000, 0x000effff, &ram[0x000ec000/4]);
|
||||
if(pam[6] & 0x20)
|
||||
memory_space->install_writeonly(0x000ec000, 0x000effff, &ram[0x000ec000/4]);
|
||||
if(pam[0] & 0x10)
|
||||
memory_space->install_rom (0x000f0000, 0x000fffff, &ram[0x000f0000/4]);
|
||||
if(pam[0] & 0x20)
|
||||
memory_space->install_writeonly(0x000f0000, 0x000fffff, &ram[0x000f0000/4]);
|
||||
|
||||
memory_space->install_ram (0x00100000, 0x00efffff, &ram[0x00100000/4]);
|
||||
if(!(pam[7] & 0x80))
|
||||
memory_space->install_ram (0x00f00000, 0x00ffffff, &ram[0x00f00000/4]);
|
||||
if(top > 0x01000000)
|
||||
memory_space->install_ram (0x01000000, top-1, &ram[0x01000000/4]);
|
||||
|
||||
if((esmramc & 0x40) && (smram & 0x08))
|
||||
memory_space->install_ram (0xfeda0000, 0xfedbffff, &ram[0x000a0000/4]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -23,6 +23,54 @@ public:
|
||||
virtual void map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
|
||||
|
||||
virtual DECLARE_ADDRESS_MAP(config_map, 32);
|
||||
|
||||
virtual DECLARE_READ8_MEMBER(capptr_r);
|
||||
|
||||
DECLARE_READ8_MEMBER( agpm_r);
|
||||
DECLARE_WRITE8_MEMBER( agpm_w);
|
||||
DECLARE_READ8_MEMBER( gc_r);
|
||||
DECLARE_READ8_MEMBER( csabcont_r);
|
||||
DECLARE_READ32_MEMBER( eap_r);
|
||||
DECLARE_READ8_MEMBER( derrsyn_r);
|
||||
DECLARE_READ8_MEMBER( des_r);
|
||||
DECLARE_READ8_MEMBER( fpllcont_r);
|
||||
DECLARE_WRITE8_MEMBER( fpllcont_w);
|
||||
DECLARE_READ8_MEMBER( pam_r);
|
||||
DECLARE_WRITE8_MEMBER( pam_w);
|
||||
DECLARE_READ8_MEMBER( smram_r);
|
||||
DECLARE_WRITE8_MEMBER( smram_w);
|
||||
DECLARE_READ8_MEMBER( esmramc_r);
|
||||
DECLARE_WRITE8_MEMBER( esmramc_w);
|
||||
DECLARE_READ32_MEMBER( acapid_r);
|
||||
DECLARE_READ32_MEMBER( agpstat_r);
|
||||
DECLARE_READ32_MEMBER( agpcmd_r);
|
||||
DECLARE_READ32_MEMBER( agpctrl_r);
|
||||
DECLARE_WRITE32_MEMBER(agpctrl_w);
|
||||
DECLARE_READ8_MEMBER( apsize_r);
|
||||
DECLARE_WRITE8_MEMBER( apsize_w);
|
||||
DECLARE_READ32_MEMBER( attbase_r);
|
||||
DECLARE_WRITE32_MEMBER(attbase_w);
|
||||
DECLARE_READ8_MEMBER( amtt_r);
|
||||
DECLARE_WRITE8_MEMBER( amtt_w);
|
||||
DECLARE_READ8_MEMBER( lptt_r);
|
||||
DECLARE_WRITE8_MEMBER( lptt_w);
|
||||
DECLARE_READ16_MEMBER( toud_r);
|
||||
DECLARE_WRITE16_MEMBER(toud_w);
|
||||
DECLARE_READ16_MEMBER( mchcfg_r);
|
||||
DECLARE_WRITE16_MEMBER(mchcfg_w);
|
||||
DECLARE_READ16_MEMBER( errsts_r);
|
||||
DECLARE_READ16_MEMBER( errcmd_r);
|
||||
DECLARE_WRITE16_MEMBER(errcmd_w);
|
||||
DECLARE_READ16_MEMBER( smicmd_r);
|
||||
DECLARE_WRITE16_MEMBER(smicmd_w);
|
||||
DECLARE_READ16_MEMBER( scicmd_r);
|
||||
DECLARE_WRITE16_MEMBER(scicmd_w);
|
||||
DECLARE_READ16_MEMBER( skpd_r);
|
||||
DECLARE_WRITE16_MEMBER(skpd_w);
|
||||
DECLARE_READ32_MEMBER( capreg1_r);
|
||||
DECLARE_READ8_MEMBER( capreg2_r);
|
||||
|
||||
protected:
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
@ -34,6 +82,11 @@ private:
|
||||
int ram_size;
|
||||
cpu_device *cpu;
|
||||
dynamic_array<UINT32> ram;
|
||||
|
||||
UINT8 agpm, fpllcont, pam[8], smram, esmramc;
|
||||
UINT8 apsize, amtt, lptt;
|
||||
UINT16 toud, mchcfg, errsts, errcmd, smicmd, scicmd, skpd;
|
||||
UINT32 agpctrl, attbase;
|
||||
};
|
||||
|
||||
class i82875p_agp_device : public agp_bridge_device {
|
||||
|
@ -13,8 +13,10 @@ DEVICE_ADDRESS_MAP_START(config_map, 32, pci_device)
|
||||
AM_RANGE(0x0c, 0x0f) AM_READ8 (header_type_r, 0x00ff0000)
|
||||
AM_RANGE(0x0c, 0x0f) AM_READ8 (bist_r, 0xff000000)
|
||||
|
||||
AM_RANGE(0x2c, 0x2f) AM_READ16(subvendor_r, 0x0000ffff)
|
||||
AM_RANGE(0x2c, 0x2f) AM_READ16(subsystem_r, 0xffff0000)
|
||||
AM_RANGE(0x2c, 0x2f) AM_READ16(subvendor_r, 0x0000ffff)
|
||||
AM_RANGE(0x2c, 0x2f) AM_READ16(subsystem_r, 0xffff0000)
|
||||
|
||||
AM_RANGE(0x34, 0x37) AM_READ8 (capptr_r, 0x000000ff)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
pci_device::pci_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
|
||||
@ -87,6 +89,11 @@ READ16_MEMBER(pci_device::subsystem_r)
|
||||
return subsystem_id;
|
||||
}
|
||||
|
||||
READ8_MEMBER(pci_device::capptr_r)
|
||||
{
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
void pci_device::scan_sub_devices(pci_device **devices, dynamic_array<pci_device *> &all, dynamic_array<pci_device *> &bridges, device_t *root)
|
||||
{
|
||||
}
|
||||
|
@ -52,6 +52,7 @@ public:
|
||||
virtual DECLARE_READ8_MEMBER(bist_r);
|
||||
DECLARE_READ16_MEMBER(subvendor_r);
|
||||
DECLARE_READ16_MEMBER(subsystem_r);
|
||||
virtual DECLARE_READ8_MEMBER(capptr_r);
|
||||
|
||||
protected:
|
||||
enum {
|
||||
|
Loading…
Reference in New Issue
Block a user