diff options
author | 2018-05-13 07:47:51 +0200 | |
---|---|---|
committer | 2018-05-13 07:56:02 +0200 | |
commit | d853337e553e01942f9d725bfb36a626f9e08af0 (patch) | |
tree | 0645fbdf19fb63d59bbc6284287a86797e8503b8 /src/devices/machine/i82371sb.h | |
parent | 9f76c7b556c65ad1f45c70015481d057f1a63265 (diff) |
i82371sb.cpp: remove unnedeed stuff, enable isa and add system management mode (nw)
Diffstat (limited to 'src/devices/machine/i82371sb.h')
-rw-r--r-- | src/devices/machine/i82371sb.h | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/devices/machine/i82371sb.h b/src/devices/machine/i82371sb.h index ba0ba296e96..5b239304659 100644 --- a/src/devices/machine/i82371sb.h +++ b/src/devices/machine/i82371sb.h @@ -15,21 +15,21 @@ #include "machine/pit8253.h" #include "machine/ataintf.h" -#include "machine/at_keybc.h" #include "sound/spkrdev.h" #include "machine/ram.h" +#include "bus/isa/isa.h" #include "machine/nvram.h" -#include "machine/pc_lpt.h" -#include "bus/pc_kbd/pc_kbdc.h" - #include "machine/am9517a.h" #define MCFG_I82371SB_ISA_ADD(_tag) \ MCFG_PCI_DEVICE_ADD(_tag, I82371SB_ISA, 0x80867000, 0x03, 0x060100, 0x00000000) +#define MCFG_I82371SB_SMI_CB(_devcb) \ + devcb = &downcast<i82371sb_isa_device &>(*device).set_smi_callback(DEVCB_##_devcb); + #define MCFG_I82371SB_BOOT_STATE_HOOK(_devcb) \ devcb = &downcast<i82371sb_isa_device &>(*device).set_boot_state_hook(DEVCB_##_devcb); @@ -37,6 +37,7 @@ class i82371sb_isa_device : public pci_device { public: i82371sb_isa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + template <class Object> devcb_base &set_smi_callback(Object &&cb) { return m_smi_callback.set_callback(std::forward<Object>(cb)); } template <class Object> devcb_base &set_boot_state_hook(Object &&cb) { return m_boot_state_hook.set_callback(std::forward<Object>(cb)); } protected: @@ -49,6 +50,8 @@ protected: virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space, uint64_t io_window_start, uint64_t io_window_end, uint64_t io_offset, address_space *io_space) override; + virtual bool map_first() override { return true; } + virtual void config_map(address_map &map) override; private: @@ -136,20 +139,22 @@ private: DECLARE_WRITE8_MEMBER(ide2_write_cs1_w); DECLARE_READ8_MEMBER(at_dma8237_2_r); DECLARE_WRITE8_MEMBER(at_dma8237_2_w); - DECLARE_READ8_MEMBER(at_keybc_r); - DECLARE_WRITE8_MEMBER(at_keybc_w); - DECLARE_WRITE8_MEMBER(write_rtc); + DECLARE_READ8_MEMBER(read_apmcapms); + DECLARE_WRITE8_MEMBER(write_apmcapms); + void update_smireq_line(); + + devcb_write_line m_smi_callback; devcb_write8 m_boot_state_hook; uint32_t see; uint16_t xbcs, mstat, pcsc, smien, smireq; + uint8_t apmc, apms; uint8_t iort, pirqrc[4], tom, mbirq0, mbdma[2], apicbase; uint8_t dlc, smicntl, ftmr, ctlmtr, cthmtr; void map_bios(address_space *memory_space, uint32_t start, uint32_t end); - //southbridge required_device<cpu_device> m_maincpu; required_device<pic8259_device> m_pic8259_master; @@ -157,10 +162,8 @@ private: required_device<am9517a_device> m_dma8237_1; required_device<am9517a_device> m_dma8237_2; required_device<pit8254_device> m_pit8254; - required_device<at_keyboard_controller_device> m_keybc; + required_device<isa16_device> m_isabus; required_device<speaker_sound_device> m_speaker; - required_device<ds12885_device> m_ds12885; - required_device<pc_kbdc_device> m_pc_kbdc; uint8_t m_at_spkrdata; uint8_t m_pit_out2; @@ -177,8 +180,6 @@ private: uint8_t m_nmi_enabled; void pc_select_dma_channel(int channel, bool state); - // VGA-HACK - optional_memory_region m_vga_region; }; DECLARE_DEVICE_TYPE(I82371SB_ISA, i82371sb_isa_device) |