Skip to content

Commit

Permalink
ipmi: Add firmware registration to the ISA interface
Browse files Browse the repository at this point in the history
Signed-off-by: Corey Minyard <cminyard@mvista.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
  • Loading branch information
cminyard authored and mstsirkin committed Dec 22, 2015
1 parent 90b6180 commit 44d3db0
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
15 changes: 15 additions & 0 deletions hw/ipmi/isa_ipmi_bt.c
Expand Up @@ -407,6 +407,7 @@ typedef struct ISAIPMIBTDevice {
ISADevice dev;
int32 isairq;
IPMIBT bt;
IPMIFwInfo fwinfo;
} ISAIPMIBTDevice;

static void isa_ipmi_bt_realize(DeviceState *dev, Error **errp)
Expand Down Expand Up @@ -435,6 +436,20 @@ static void isa_ipmi_bt_realize(DeviceState *dev, Error **errp)
qdev_set_legacy_instance_id(dev, iib->bt.io_base, iib->bt.io_length);

isa_register_ioport(isadev, &iib->bt.io, iib->bt.io_base);

iib->fwinfo.interface_name = "bt";
iib->fwinfo.interface_type = IPMI_SMBIOS_BT;
iib->fwinfo.ipmi_spec_major_revision = 2;
iib->fwinfo.ipmi_spec_minor_revision = 0;
iib->fwinfo.base_address = iib->bt.io_base;
iib->fwinfo.register_length = iib->bt.io_length;
iib->fwinfo.register_spacing = 1;
iib->fwinfo.memspace = IPMI_MEMSPACE_IO;
iib->fwinfo.irq_type = IPMI_LEVEL_IRQ;
iib->fwinfo.interrupt_number = iib->isairq;
iib->fwinfo.acpi_parent = "\\_SB.PCI0.ISA";
iib->fwinfo.i2c_slave_address = iib->bt.bmc->slave_addr;
ipmi_add_fwinfo(&iib->fwinfo, errp);
}

static const VMStateDescription vmstate_ISAIPMIBTDevice = {
Expand Down
15 changes: 15 additions & 0 deletions hw/ipmi/isa_ipmi_kcs.c
Expand Up @@ -370,6 +370,7 @@ typedef struct ISAIPMIKCSDevice {
ISADevice dev;
int32 isairq;
IPMIKCS kcs;
IPMIFwInfo fwinfo;
} ISAIPMIKCSDevice;

static void ipmi_isa_realize(DeviceState *dev, Error **errp)
Expand Down Expand Up @@ -398,6 +399,20 @@ static void ipmi_isa_realize(DeviceState *dev, Error **errp)
qdev_set_legacy_instance_id(dev, iik->kcs.io_base, iik->kcs.io_length);

isa_register_ioport(isadev, &iik->kcs.io, iik->kcs.io_base);

iik->fwinfo.interface_name = "kcs";
iik->fwinfo.interface_type = IPMI_SMBIOS_KCS;
iik->fwinfo.ipmi_spec_major_revision = 2;
iik->fwinfo.ipmi_spec_minor_revision = 0;
iik->fwinfo.base_address = iik->kcs.io_base;
iik->fwinfo.i2c_slave_address = iik->kcs.bmc->slave_addr;
iik->fwinfo.register_length = iik->kcs.io_length;
iik->fwinfo.register_spacing = 1;
iik->fwinfo.memspace = IPMI_MEMSPACE_IO;
iik->fwinfo.irq_type = IPMI_LEVEL_IRQ;
iik->fwinfo.interrupt_number = iik->isairq;
iik->fwinfo.acpi_parent = "\\_SB.PCI0.ISA";
ipmi_add_fwinfo(&iik->fwinfo, errp);
}

const VMStateDescription vmstate_ISAIPMIKCSDevice = {
Expand Down

0 comments on commit 44d3db0

Please sign in to comment.