Skip to content
  • Stefan Weil's avatar
    pci: Automatically patch PCI vendor id and device id in PCI ROM · ab85ceb1
    Stefan Weil authored
    
    
    PCI devices with different vendor or device ids sometimes share
    the same rom code. Only the ids and the checksum
    differs in a boot rom for such devices.
    
    The i825xx ethernet controller family is a typical example
    which is implemented in hw/eepro100.c. It uses at least
    3 different device ids, so normally 3 boot roms would be needed.
    
    By automatically patching vendor id and device id (and the checksum)
    in qemu, all emulated family members can share the same boot rom.
    
    VGA bios roms are another example with different vendor and device ids.
    
    Only qemu's built-in default rom files will be patched.
    
    v2:
        * Patch also the vendor id (and remove the sanity check for vendor id).
    
    v3:
        * Don't patch a rom file when its name was set by the user.
          Thus we avoid modifications of unknown rom data.
    
    Cc: Gerd Hoffmann <kraxel@redhat.com>
    Cc: Markus Armbruster <armbru@redhat.com>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: default avatarStefan Weil <weil@mail.berlios.de>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    ab85ceb1