Skip to content
  • Igor Mammedov's avatar
    pci: introduce acpi-index property for PCI device · b32bd763
    Igor Mammedov authored and MST's avatar MST committed
    
    
    In x86/ACPI world, linux distros are using predictable
    network interface naming since systemd v197. Which on
    QEMU based VMs results into path based naming scheme,
    that names network interfaces based on PCI topology.
    
    With itm on has to plug NIC in exactly the same bus/slot,
    which was used when disk image was first provisioned/configured
    or one risks to loose network configuration due to NIC being
    renamed to actually used topology.
    That also restricts freedom to reshape PCI configuration of
    VM without need to reconfigure used guest image.
    
    systemd also offers "onboard" naming scheme which is
    preferred over PCI slot/topology one, provided that
    firmware implements:
        "
        PCI Firmware Specification 3.1
        4.6.7.  DSM for Naming a PCI or PCI Express Device Under
                Operating Systems
        "
    that allows to assign user defined index to PCI device,
    which systemd will use to name NIC. For example, using
      -device e1000,acpi-index=100
    guest will rename NIC to 'eno100', where 'eno' is default
    prefix for "onboard" naming scheme. This doesn't require
    any advance configuration on guest side to com in effect
    at 'onboard' scheme takes priority over path based naming.
    
    Hope is that 'acpi-index' it will be easier to consume by
    management layer, compared to forcing specific PCI topology
    and/or having several disk image templates for different
    topologies and will help to simplify process of spawning
    VM from the same template without need to reconfigure
    guest NIC.
    
    This patch adds, 'acpi-index'* property and wires up
    a 32bit register on top of pci hotplug register block
    to pass index value to AML code at runtime.
    Following patch will add corresponding _DSM code and
    wire it up to PCI devices described in ACPI.
    
    *) name comes from linux kernel terminology
    
    Signed-off-by: Igor Mammedov's avatarIgor Mammedov <imammedo@redhat.com>
    Message-Id: <20210315180102.3008391-3-imammedo@redhat.com>
    Reviewed-by: MST's avatarMichael S. Tsirkin <mst@redhat.com>
    Signed-off-by: MST's avatarMichael S. Tsirkin <mst@redhat.com>
    b32bd763