iteagle: Move serial irq assignment to top level

This commit is contained in:
Ted Green 2016-03-18 14:37:52 -06:00
parent 262fbb4009
commit 95aa75c8c6
3 changed files with 8 additions and 7 deletions

View File

@ -161,7 +161,7 @@ static MACHINE_CONFIG_START( iteagle, iteagle_state )
MCFG_VRC4373_ADD( ":pci:00.0", ":maincpu")
MCFG_ITEAGLE_IDE_ADD( PCI_ID_IDE)
MCFG_ITEAGLE_IDE_IRQ_ADD( ":maincpu", MIPS3_IRQ2)
MCFG_ITEAGLE_FPGA_ADD( PCI_ID_FPGA, ":maincpu", MIPS3_IRQ1)
MCFG_ITEAGLE_FPGA_ADD( PCI_ID_FPGA, ":maincpu", MIPS3_IRQ1, MIPS3_IRQ4)
MCFG_ES1373_ADD( PCI_ID_SOUND)
MCFG_SOUND_ROUTE(0, PCI_ID_SOUND":lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, PCI_ID_SOUND":rspeaker", 1.0)

View File

@ -221,7 +221,7 @@ READ32_MEMBER( iteagle_fpga_device::fpga_r )
if (m_serial_rx3.empty()) {
m_serial_com3[0] &= ~0x1;
m_serial_com3[3] &= ~0x20;
m_cpu->set_input_line(4, CLEAR_LINE);
m_cpu->set_input_line(m_serial_irq_num, CLEAR_LINE);
}
}
if (LOG_FPGA)
@ -365,7 +365,7 @@ WRITE32_MEMBER( iteagle_fpga_device::fpga_w )
m_serial_rx3 += "OK\r";
m_serial_com3[0] |= 0x1;
m_serial_com3[3] = 0x20;
m_cpu->set_input_line(4, ASSERT_LINE);
m_cpu->set_input_line(m_serial_irq_num, ASSERT_LINE);
m_serial_str.clear();
}
}

View File

@ -12,9 +12,9 @@
//MCFG_PCI_DEVICE_ADD(_tag, _type, _main_id, _revision, _pclass, _subsystem_id)
#define MCFG_ITEAGLE_FPGA_ADD(_tag, _cpu_tag, _irq_num) \
#define MCFG_ITEAGLE_FPGA_ADD(_tag, _cpu_tag, _irq_num, _serial_irq_num) \
MCFG_PCI_DEVICE_ADD(_tag, ITEAGLE_FPGA, 0x55CC33AA, 0xAA, 0xAAAAAA, 0x00) \
downcast<iteagle_fpga_device *>(device)->set_irq_info(_cpu_tag, _irq_num);
downcast<iteagle_fpga_device *>(device)->set_irq_info(_cpu_tag, _irq_num, _serial_irq_num);
#define MCFG_ITEAGLE_FPGA_INIT(_version, _seq_init) \
downcast<iteagle_fpga_device *>(device)->set_init_info(_version, _seq_init);
@ -38,8 +38,8 @@ class iteagle_fpga_device : public pci_device,
public:
iteagle_fpga_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
void set_init_info(int version, int seq_init) {m_version=version; m_seq_init=seq_init;}
void set_irq_info(const char *tag, const int irq_num) {m_cpu_tag = tag; m_irq_num = irq_num;}
void set_irq_info(const char *tag, const int irq_num, const int serial_num) {
m_cpu_tag = tag; m_irq_num = irq_num; m_serial_irq_num = serial_num;}
protected:
virtual void device_start() override;
@ -56,6 +56,7 @@ private:
const char *m_cpu_tag;
cpu_device *m_cpu;
int m_irq_num;
int m_serial_irq_num;
UINT32 m_fpga_regs[0x20/4];
UINT32 m_rtc_regs[0x800/4];