hw/core: explicit OFW unit address callback for SysBusDeviceClass
commit0b336b3b98d8983d821ef9b0f159acc7c77cbac7
authorLaszlo Ersek <lersek@redhat.com>
Fri, 19 Jun 2015 02:40:16 +0000 (19 04:40 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 23 Jun 2015 20:58:36 +0000 (23 22:58 +0200)
treee0763bec9e05cb59795b6ae0be84a19b98727b97
parentd10dda2d60c8c225a89a53d53add799b69f6bb46
hw/core: explicit OFW unit address callback for SysBusDeviceClass

The sysbus_get_fw_dev_path() function formats OpenFirmware device path
nodes ("driver-name@unit-address") for sysbus devices. The first choice
for "unit-address" is the base address of the device's first MMIO region.
The second choice is its first IO port.

However, if two sysbus devices with the same "driver-name" lack both MMIO
and PIO resources, then there is no good way to distinguish them based on
their OFW nodes, because in this case unit-address is omitted completely
for both devices. An example is TYPE_PXB_HOST ("pxb-host").

For the sake of such devices, introduce the explicit_ofw_unit_address()
"virtual member function". With this function, each sysbus device in the
same SysBusDeviceClass can state its own address.

Cc: Markus Armbruster <armbru@redhat.com>
Cc: Marcel Apfelbaum <marcel@redhat.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
Tested-by: Marcel Apfelbaum <marcel@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/core/sysbus.c
include/hw/sysbus.h