• Add pci_get/set_byte to keep *_word and *_long access functions company.
    They are unused for now.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Michael S. Tsirkin authored
     
    Browse Code »
  • Add functions implementing MSI-X support. First user will be virtio-pci.
    Note that platform must set a flag to declare MSI supported: this
    is a safety measure to avoid breaking platforms which should support
    MSI-X but currently lack this in the interrupt controller emulation.
    For PC this will be set by APIC.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Michael S. Tsirkin authored
     
    Browse Code »
  • Add "cmask" table of constant register masks: if a bit is not writeable
    and is set in cmask table, this bit is checked on load.  An attempt to
    load an image that would change such a register causes load to fail.
    Use this table to make sure that load does not modify registers that
    guest can not change (directly or indirectly).
    
    Note: we can't just assume that read-only registers never change,
    because the guest could change a register indirectly.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Michael S. Tsirkin authored
     
    Browse File »
  • Add routines to manage PCI capability list. First user will be MSI-X.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Michael S. Tsirkin authored
     
    Browse File »
  • Add inline routines for convenient access to pci devices
    with correct (little) endianness. Will be used by MSI-X support.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Michael S. Tsirkin authored
     
    Browse File »
  • Change much of hw/pci to use symbolic constants and a table-driven
    design: add a mask table with writable bits set and readonly bits unset.
    Detect change by comparing original and new registers.
    
    This makes it easy to support capabilities where read-only/writeable
    bit layout differs between devices, depending on capabilities present.
    
    As a result, writing a single byte in BAR registers now works as
    it should. Writing to upper limit registers in the bridge
    also works as it should. Code is also shorter.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Michael S. Tsirkin authored
     
    Browse Code »

  • Simply pass the PCI address through qemu_pci_hot_add_nic() to
    pci_nic_init() and through qemu_pci_hot_add_storage() to pci_create().
    
    Before, pci_device_hot_add() passed along the PCI bus to use, and
    ignored any user-specified slot.
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Markus Armbruster authored
     
    Browse Dir »
  • Make net_client_init() accept addr=, put the value into struct
    NICinfo.  Use it in pci_nic_init(), and remove arguments bus and
    devfn.
    
    Don't support addr= in third argument of monitor command pci_add,
    because that clashes with its first argument.  Admittedly unelegant.
    
    Machines "malta" and "r2d" have a default NIC with a well-known PCI
    address.  Deal with that the same way as the NIC model: make
    pci_nic_init() take an optional default to be used when the user
    doesn't specify one.
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    Markus Armbruster authored
     
    Browse Code »



  • Implement and use a common device bus state.  The main side-effect is
    that creating a bus and attaching it to a parent device are no longer
    separate operations.  For legacy code we allow a NULL parent, but that
    should go away eventually.
    
    Also tweak creation code to veriry theat a device in on the right bus.
    
    Signed-off-by: Paul Brook <paul@codesourcery.com>
    Paul Brook authored
     
    Browse File »


  • The vga_ram_size argument to machine init functions always has the same
    value, and is ignored by many machines (including SPARC32 which has an
    obsolete ifdef for VGA_RAM_SIZE).
    
    Remove it and push VGA_RAM_SIZE into vga_int.h.
    
    Signed-off-by: Paul Brook <paul@codesourcery.com>
    Paul Brook authored
     
    Browse Code »



  • this patch adds some more defines from linux/pci_regs.h to
    hw/pci.h. There is now no longer a need to define them in
    eepro100.c, so they were removed there.
    
    Some defines from linux/pci_regs.h had similar, but not
    the same defines in hw/pci.h (PCI_REVISION_ID / PCI_REVISION,
    PCI_SUBSYSTEM_VENDOR_ID / PCI_SUBVENDOR_ID,
    PCI_SUBSYSTEM_ID / PCI_SUBDEVICE_ID).
    
    I suggest to use the "standard" from linux/pci_regs.h and
    replace the "old" Qemu ones. To facilitate the migration,
    my patch does not remove the old defines but marks them
    as obsolete. After a migration to the "standard" defines,
    pci.h could use linux/pci_regs.h which is far more complete.
    
    The patch is needed for an updated maintainer version of
    hw/eepro100.c which I'd like to see in Qemu stable.
    
     * Remove declarations already declared in header file from eepro100.c
     * Add missing declarations from pci_regs.h to pci.h
     * Mark "non-standard" declarations in pci.h as obsolete
    
    Signed-off-by: Stefan Weil <weil@mail.berlios.de>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6901 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »

  • This patch adds and uses #defines for the remaining hardcoded PCI
    device IDs.  It also moves definitions taken from linux/pci_ids.h
    into a separate header (hw/pci_ids.h), removes the 'RTL' from
    PCI_DEVICE_ID_REALTEK_RTL8029, and renames PCI_DEVICE_ID_FSL_E500
    to PCI_DEVICE_ID_MPC8533E to match Linux's definition.
    
    Changes in v2:
     * Don't use C99-style comments
     * Move definitions from linux/pci_ids.h into a separate header
     * Rename PCI_DEVICE_ID_FSL_E500 to PCI_DEVICE_ID_MPC8533E
    
    Signed-off-by: Stuart Brady <stuart.brady@gmail.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6841 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »

  • Refactor the monitor API and prepare it for decoupled terminals:
    term_print functions are renamed to monitor_* and all monitor services
    gain a new parameter (mon) that will once refer to the monitor instance
    the output is supposed to appear on. However, the argument remains
    unused for now. All monitor command callbacks are also extended by a mon
    parameter so that command handlers are able to pass an appropriate
    reference to monitor output services.
    
    For the case that monitor outputs so far happen without clearly
    identifiable context, the global variable cur_mon is introduced that
    shall once provide a pointer either to the current active monitor (while
    processing commands) or to the default one. On the mid or long term,
    those use case will be obsoleted so that this variable can be removed
    again.
    
    Due to the broad usage of the monitor interface, this patch mostly deals
    with converting users of the monitor API. A few of them are already
    extended to pass 'mon' from the command handler further down to internal
    functions that invoke monitor_printf.
    
    At this chance, monitor-related prototypes are moved from console.h to
    a new monitor.h. The same is done for the readline API.
    
    Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6711 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »






  • Patch 5/7
    
    This patch changes the graphical_console_init function to return an
    allocated DisplayState instead of a QEMUConsole.
    
    This patch contains just the graphical_console_init change and few other
    modifications mainly in console.c and vl.c.
    It was necessary to move the display frontends (e.g. sdl and vnc)
    initialization after machine->init in vl.c.
    
    This patch does *not* include any required changes to any device, these
    changes come with the following patches.
    
    Patch 6/7
    
    This patch changes the QEMUMachine init functions not to take a
    DisplayState as an argument because is not needed any more;
    
    In few places the graphic hardware initialization function was called
    only if DisplayState was not NULL, now they are always called.
    Apart from these cases, the rest are all mechanical substitutions.
    
    Patch 7/7
    
    This patch updates the graphic device code to use the new
    graphical_console_init function.
    
    As for the previous patch, in few places graphical_console_init was called
    only if DisplayState was not NULL, now it is always called.
    Apart from these cases, the rest are all mechanical substitutions.
    
    Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6344 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse File »




  • This sets a default PCI subsystem ID for all emulated PCI devices.  PCI
    specs require this, so do it.
    
    In many cases it is enougth to know the PCI ID to handle a device
    correctly.  Sometimes a device driver must identify the exact piece of
    hardware (via PCI Subsystem ID) though.
    
    What does this patch to qemu devices:
    
    Right now the emulated PCI devices have no PCI subsystem ID, only the
    PCI ID.  The discussed patch sets a default PCI subsystem ID for all
    emulated devices.  Which will make the qemu devices look pretty much
    like in the laptop case: all PCI subsystem IDs will point to qemu by
    default.
    
    If a driver emulates a very specific piece of hardware where it has to
    emulate more than just the PCI chip, it can overwrite the PCI subsystem
    ID without problems.  The es1370 driver does that for example.
    
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
    
    
    
    git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5986 c046a42c-6fe2-441c-8c8c-71466251a162
    aliguori authored
     
    Browse Code »