summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/i6300esb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/i6300esb.cpp')
-rw-r--r--src/devices/machine/i6300esb.cpp110
1 files changed, 56 insertions, 54 deletions
diff --git a/src/devices/machine/i6300esb.cpp b/src/devices/machine/i6300esb.cpp
index 6c94e7c4f2a..e038df1c7a5 100644
--- a/src/devices/machine/i6300esb.cpp
+++ b/src/devices/machine/i6300esb.cpp
@@ -6,8 +6,9 @@
DEFINE_DEVICE_TYPE(I6300ESB_WATCHDOG, i6300esb_watchdog_device, "i6300esb_watchdog", "i6300ESB southbridge watchdog")
DEFINE_DEVICE_TYPE(I6300ESB_LPC, i6300esb_lpc_device, "i6300esb_lpc", "i6300ESB southbridge ISA/LPC bridge")
-ADDRESS_MAP_START(i6300esb_watchdog_device::map)
-ADDRESS_MAP_END
+void i6300esb_watchdog_device::map(address_map &map)
+{
+}
i6300esb_watchdog_device::i6300esb_watchdog_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: pci_device(mconfig, I6300ESB_WATCHDOG, tag, owner, clock)
@@ -29,63 +30,64 @@ void i6300esb_watchdog_device::device_reset()
}
-ADDRESS_MAP_START(i6300esb_lpc_device::config_map)
- AM_IMPORT_FROM(pci_device::config_map)
- AM_RANGE(0x40, 0x43) AM_READWRITE (pmbase_r, pmbase_w)
- AM_RANGE(0x44, 0x47) AM_READWRITE8 (acpi_cntl_r, acpi_cntl_w, 0x000000ff)
- AM_RANGE(0x4c, 0x4f) AM_READWRITE16(bios_cntl_r, bios_cntl_w, 0xffff0000)
- AM_RANGE(0x54, 0x57) AM_READWRITE8 (tco_cntl_r, tco_cntl_w, 0x000000ff)
- AM_RANGE(0x58, 0x5b) AM_READWRITE (gpio_base_r, gpio_base_w)
- AM_RANGE(0x5c, 0x5f) AM_READWRITE8 (gpio_cntl_r, gpio_cntl_w, 0x000000ff)
- AM_RANGE(0x60, 0x63) AM_READWRITE8 (pirq_rout_r, pirq_rout_w, 0xffffffff)
- AM_RANGE(0x64, 0x67) AM_READWRITE8 (serirq_cntl_r, serirq_cntl_w, 0x000000ff)
- AM_RANGE(0x68, 0x6b) AM_READWRITE8 (pirq2_rout_r, pirq2_rout_w, 0xffffffff)
- AM_RANGE(0x88, 0x8b) AM_READWRITE8 (d31_err_cfg_r, d31_err_cfg_w, 0x000000ff)
- AM_RANGE(0x88, 0x8b) AM_READWRITE8 (d31_err_sts_r, d31_err_sts_w, 0x00ff0000)
- AM_RANGE(0x90, 0x93) AM_READWRITE16(pci_dma_cfg_r, pci_dma_cfg_w, 0x0000ffff)
- AM_RANGE(0xa0, 0xa3) AM_READWRITE16(gen_pmcon_1_r, gen_pmcon_1_w, 0x0000ffff)
- AM_RANGE(0xa0, 0xa3) AM_READWRITE8 (gen_pmcon_2_r, gen_pmcon_2_w, 0x00ff0000)
- AM_RANGE(0xa4, 0xa7) AM_READWRITE8 (gen_pmcon_3_r, gen_pmcon_3_w, 0x000000ff)
- AM_RANGE(0xac, 0xaf) AM_READWRITE (rst_cnt2_r, rst_cnt2_w)
- AM_RANGE(0xb0, 0xb3) AM_READWRITE8 (apm_cnt_r, apm_cnt_w, 0x00ff0000)
- AM_RANGE(0xb0, 0xb3) AM_READWRITE8 (apm_sts_r, apm_sts_w, 0xff000000)
- AM_RANGE(0xb8, 0xbb) AM_READWRITE (gpi_rout_r, gpi_rout_w)
- AM_RANGE(0xc0, 0xc3) AM_READWRITE8 (mon_fwd_en_r, mon_fwd_en_w, 0x000000ff)
- AM_RANGE(0xc4, 0xcb) AM_READWRITE16(mon_trp_rng_r, mon_trp_rng_w, 0xffffffff)
- AM_RANGE(0xcc, 0xcf) AM_READWRITE16(mon_trp_msk_r, mon_trp_msk_w, 0x0000ffff)
- AM_RANGE(0xd0, 0xd3) AM_READWRITE (gen_cntl_r, gen_cntl_w)
- AM_RANGE(0xd4, 0xd7) AM_READWRITE8 (gen_sta_r, gen_sta_w, 0x000000ff)
- AM_RANGE(0xd4, 0xd7) AM_READWRITE8 (back_cntl_r, back_cntl_w, 0x0000ff00)
- AM_RANGE(0xd8, 0xdb) AM_READWRITE8 (rtc_conf_r, rtc_conf_w, 0x000000ff)
- AM_RANGE(0xe0, 0xe3) AM_READWRITE8 (lpc_if_com_range_r, lpc_if_com_range_w, 0x000000ff)
- AM_RANGE(0xe0, 0xe3) AM_READWRITE8 (lpc_if_fdd_lpt_range_r, lpc_if_fdd_lpt_range_w, 0x0000ff00)
- AM_RANGE(0xe0, 0xe3) AM_READWRITE8 (lpc_if_sound_range_r, lpc_if_sound_range_w, 0x00ff0000)
- AM_RANGE(0xe0, 0xe3) AM_READWRITE8 (fwh_dec_en1_r, fwh_dec_en1_w, 0xff000000)
- AM_RANGE(0xe4, 0xe7) AM_READWRITE16(gen1_dec_r, gen1_dec_w, 0x0000ffff)
- AM_RANGE(0xe4, 0xe7) AM_READWRITE16(lpc_en_r, lpc_en_w, 0xffff0000)
- AM_RANGE(0xe8, 0xeb) AM_READWRITE (fwh_sel1_r, fwh_sel1_w)
- AM_RANGE(0xec, 0xef) AM_READWRITE16(gen2_dec_r, gen2_dec_w, 0x0000ffff)
- AM_RANGE(0xec, 0xef) AM_READWRITE16(fwh_sel2_r, fwh_sel2_w, 0xffff0000)
- AM_RANGE(0xf0, 0xf3) AM_READWRITE8 (fwh_dec_en2_r, fwh_dec_en2_w, 0x000000ff)
- AM_RANGE(0xf0, 0xf3) AM_READWRITE16(func_dis_r, func_dis_w, 0xffff0000)
- AM_RANGE(0xf4, 0xf7) AM_READWRITE (etr1_r, etr1_w)
- AM_RANGE(0xf8, 0xfb) AM_READ (mfid_r)
- AM_RANGE(0xfc, 0xff) AM_READWRITE (unk_fc_r, unk_fc_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(i6300esb_lpc_device::internal_io_map)
+void i6300esb_lpc_device::config_map(address_map &map)
+{
+ pci_device::config_map(map);
+ map(0x40, 0x43).rw(this, FUNC(i6300esb_lpc_device::pmbase_r), FUNC(i6300esb_lpc_device::pmbase_w));
+ map(0x44, 0x44).rw(this, FUNC(i6300esb_lpc_device::acpi_cntl_r), FUNC(i6300esb_lpc_device::acpi_cntl_w));
+ map(0x4e, 0x4f).rw(this, FUNC(i6300esb_lpc_device::bios_cntl_r), FUNC(i6300esb_lpc_device::bios_cntl_w));
+ map(0x54, 0x54).rw(this, FUNC(i6300esb_lpc_device::tco_cntl_r), FUNC(i6300esb_lpc_device::tco_cntl_w));
+ map(0x58, 0x5b).rw(this, FUNC(i6300esb_lpc_device::gpio_base_r), FUNC(i6300esb_lpc_device::gpio_base_w));
+ map(0x5c, 0x5c).rw(this, FUNC(i6300esb_lpc_device::gpio_cntl_r), FUNC(i6300esb_lpc_device::gpio_cntl_w));
+ map(0x60, 0x63).rw(this, FUNC(i6300esb_lpc_device::pirq_rout_r), FUNC(i6300esb_lpc_device::pirq_rout_w));
+ map(0x64, 0x64).rw(this, FUNC(i6300esb_lpc_device::serirq_cntl_r), FUNC(i6300esb_lpc_device::serirq_cntl_w));
+ map(0x68, 0x6b).rw(this, FUNC(i6300esb_lpc_device::pirq2_rout_r), FUNC(i6300esb_lpc_device::pirq2_rout_w));
+ map(0x88, 0x88).rw(this, FUNC(i6300esb_lpc_device::d31_err_cfg_r), FUNC(i6300esb_lpc_device::d31_err_cfg_w));
+ map(0x8a, 0x8a).rw(this, FUNC(i6300esb_lpc_device::d31_err_sts_r), FUNC(i6300esb_lpc_device::d31_err_sts_w));
+ map(0x90, 0x91).rw(this, FUNC(i6300esb_lpc_device::pci_dma_cfg_r), FUNC(i6300esb_lpc_device::pci_dma_cfg_w));
+ map(0xa0, 0xa1).rw(this, FUNC(i6300esb_lpc_device::gen_pmcon_1_r), FUNC(i6300esb_lpc_device::gen_pmcon_1_w));
+ map(0xa2, 0xa2).rw(this, FUNC(i6300esb_lpc_device::gen_pmcon_2_r), FUNC(i6300esb_lpc_device::gen_pmcon_2_w));
+ map(0xa4, 0xa4).rw(this, FUNC(i6300esb_lpc_device::gen_pmcon_3_r), FUNC(i6300esb_lpc_device::gen_pmcon_3_w));
+ map(0xac, 0xaf).rw(this, FUNC(i6300esb_lpc_device::rst_cnt2_r), FUNC(i6300esb_lpc_device::rst_cnt2_w));
+ map(0xb2, 0xb2).rw(this, FUNC(i6300esb_lpc_device::apm_cnt_r), FUNC(i6300esb_lpc_device::apm_cnt_w));
+ map(0xb3, 0xb3).rw(this, FUNC(i6300esb_lpc_device::apm_sts_r), FUNC(i6300esb_lpc_device::apm_sts_w));
+ map(0xb8, 0xbb).rw(this, FUNC(i6300esb_lpc_device::gpi_rout_r), FUNC(i6300esb_lpc_device::gpi_rout_w));
+ map(0xc0, 0xc0).rw(this, FUNC(i6300esb_lpc_device::mon_fwd_en_r), FUNC(i6300esb_lpc_device::mon_fwd_en_w));
+ map(0xc4, 0xcb).rw(this, FUNC(i6300esb_lpc_device::mon_trp_rng_r), FUNC(i6300esb_lpc_device::mon_trp_rng_w));
+ map(0xcc, 0xcd).rw(this, FUNC(i6300esb_lpc_device::mon_trp_msk_r), FUNC(i6300esb_lpc_device::mon_trp_msk_w));
+ map(0xd0, 0xd3).rw(this, FUNC(i6300esb_lpc_device::gen_cntl_r), FUNC(i6300esb_lpc_device::gen_cntl_w));
+ map(0xd4, 0xd4).rw(this, FUNC(i6300esb_lpc_device::gen_sta_r), FUNC(i6300esb_lpc_device::gen_sta_w));
+ map(0xd5, 0xd5).rw(this, FUNC(i6300esb_lpc_device::back_cntl_r), FUNC(i6300esb_lpc_device::back_cntl_w));
+ map(0xd8, 0xd8).rw(this, FUNC(i6300esb_lpc_device::rtc_conf_r), FUNC(i6300esb_lpc_device::rtc_conf_w));
+ map(0xe0, 0xe0).rw(this, FUNC(i6300esb_lpc_device::lpc_if_com_range_r), FUNC(i6300esb_lpc_device::lpc_if_com_range_w));
+ map(0xe1, 0xe1).rw(this, FUNC(i6300esb_lpc_device::lpc_if_fdd_lpt_range_r), FUNC(i6300esb_lpc_device::lpc_if_fdd_lpt_range_w));
+ map(0xe2, 0xe2).rw(this, FUNC(i6300esb_lpc_device::lpc_if_sound_range_r), FUNC(i6300esb_lpc_device::lpc_if_sound_range_w));
+ map(0xe3, 0xe3).rw(this, FUNC(i6300esb_lpc_device::fwh_dec_en1_r), FUNC(i6300esb_lpc_device::fwh_dec_en1_w));
+ map(0xe4, 0xe5).rw(this, FUNC(i6300esb_lpc_device::gen1_dec_r), FUNC(i6300esb_lpc_device::gen1_dec_w));
+ map(0xe6, 0xe7).rw(this, FUNC(i6300esb_lpc_device::lpc_en_r), FUNC(i6300esb_lpc_device::lpc_en_w));
+ map(0xe8, 0xeb).rw(this, FUNC(i6300esb_lpc_device::fwh_sel1_r), FUNC(i6300esb_lpc_device::fwh_sel1_w));
+ map(0xec, 0xed).rw(this, FUNC(i6300esb_lpc_device::gen2_dec_r), FUNC(i6300esb_lpc_device::gen2_dec_w));
+ map(0xee, 0xef).rw(this, FUNC(i6300esb_lpc_device::fwh_sel2_r), FUNC(i6300esb_lpc_device::fwh_sel2_w));
+ map(0xf0, 0xf0).rw(this, FUNC(i6300esb_lpc_device::fwh_dec_en2_r), FUNC(i6300esb_lpc_device::fwh_dec_en2_w));
+ map(0xf2, 0xf3).rw(this, FUNC(i6300esb_lpc_device::func_dis_r), FUNC(i6300esb_lpc_device::func_dis_w));
+ map(0xf4, 0xf7).rw(this, FUNC(i6300esb_lpc_device::etr1_r), FUNC(i6300esb_lpc_device::etr1_w));
+ map(0xf8, 0xfb).r(this, FUNC(i6300esb_lpc_device::mfid_r));
+ map(0xfc, 0xff).rw(this, FUNC(i6300esb_lpc_device::unk_fc_r), FUNC(i6300esb_lpc_device::unk_fc_w));
+}
+
+void i6300esb_lpc_device::internal_io_map(address_map &map)
+{
;
if(lpc_en & 0x2000) {
- AM_RANGE(0x004c, 0x004f) AM_READWRITE8(siu_config_port_r, siu_config_port_w, 0x00ff0000)
- AM_RANGE(0x004c, 0x004f) AM_READWRITE8(siu_data_port_r, siu_data_port_w, 0xff000000)
- ;
+ map(0x004e, 0x004e).rw(this, FUNC(i6300esb_lpc_device::siu_config_port_r), FUNC(i6300esb_lpc_device::siu_config_port_w));
+ map(0x004f, 0x004f).rw(this, FUNC(i6300esb_lpc_device::siu_data_port_r), FUNC(i6300esb_lpc_device::siu_data_port_w));
}
- AM_RANGE(0x0060, 0x0063) AM_READWRITE8( nmi_sc_r, nmi_sc_w, 0x0000ff00)
+ map(0x0061, 0x0061).rw(this, FUNC(i6300esb_lpc_device::nmi_sc_r), FUNC(i6300esb_lpc_device::nmi_sc_w));
- AM_RANGE(0x0080, 0x0083) AM_WRITE8( nop_w, 0x000000ff) // POST/non-existing, used for delays by the bios/os
- AM_RANGE(0x00ec, 0x00ef) AM_WRITE8( nop_w, 0x0000ff00) // Non-existing, used for delays by the bios/os
-ADDRESS_MAP_END
+ map(0x0080, 0x0080).w(this, FUNC(i6300esb_lpc_device::nop_w)); // POST/non-existing, used for delays by the bios/os
+ map(0x00ed, 0x00ed).w(this, FUNC(i6300esb_lpc_device::nop_w)); // Non-existing, used for delays by the bios/os
+}
i6300esb_lpc_device::i6300esb_lpc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)