1. 23 9月, 2014 1 次提交
    • M
      pc: leave more space for BIOS allocations · 00dd2b22
      Michael S. Tsirkin 提交于
      Since QEMU 2.1, we are allocating more space for ACPI tables, so no
      space is left after initrd for the BIOS to allocate memory.
      
      Besides ACPI tables, there are a few other uses of high memory in
      SeaBIOS: SMBIOS tables and USB drivers use it in particular.  These uses
      allocate a very small amount of memory.  Malloc metadata also lives
      there.  So we need _some_ extra padding there to avoid initrd breakage,
      but not much.
      
      John Snow found a case where RHEL5 was broken by the recent change to
      ACPI_TABLE_SIZE; in his case 4KB of extra padding are fine, but just to
      be safe I am adding 32KB, which is roughly the same amount of padding
      that was left by QEMU 2.0 and earlier.
      
      Move initrd to leave some space for the BIOS.
      
      Cc: qemu-stable@nongnu.org
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Reported-by: NJohn Snow <jsnow@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      (cherry picked from commit 438f92ee)
      Signed-off-by: NMichael Roth <mdroth@linux.vnet.ibm.com>
      00dd2b22
  2. 09 9月, 2014 1 次提交
  3. 23 6月, 2014 1 次提交
    • D
      pc & q35: Add new machine opt max-ram-below-4g · c87b1520
      Don Slutz 提交于
      This is a pc & q35 only machine opt.
      
      If you add enough PCI devices then all mmio for them will not fit
      below 4G which may not be the layout the user wanted. This allows
      you to increase the below 4G address space that PCI devices can use
      (aka decrease ram below 4G) and therefore in more cases not have any
      mmio that is above 4G.
      
      For example using "-machine pc,max-ram-below-4g=2G" on the command
      line will limit the amount of ram that is below 4G to 2G.
      
      Note: this machine option cannot be used to increase the amount
      of ram below 4G.
      Signed-off-by: NDon Slutz <dslutz@verizon.com>
      Reviewed-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NMichael S. Tsirkin <mst@redhat.com>
      
      MST: fix 32 bit
      c87b1520
  4. 19 6月, 2014 14 次提交
  5. 16 6月, 2014 1 次提交
  6. 10 6月, 2014 1 次提交
  7. 13 5月, 2014 1 次提交
  8. 05 5月, 2014 3 次提交
  9. 18 3月, 2014 2 次提交
  10. 05 2月, 2014 1 次提交
  11. 26 1月, 2014 1 次提交
  12. 23 12月, 2013 3 次提交
    • C
      target-i386: Move apic_state field from CPUX86State to X86CPU · 02e51483
      Chen Fan 提交于
      This motion is preparing for refactoring vCPU APIC subsequently.
      Signed-off-by: NChen Fan <chen.fan.fnst@cn.fujitsu.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      02e51483
    • M
      isa: Clean up use of cannot_instantiate_with_device_add_yet · f3b17640
      Markus Armbruster 提交于
      Drop it when there's no obvious reason why device_add could not work.
      Else keep and document why.
      
      * isa-fdc: drop
      
      * i8042: drop, even though its I/O base is hardcoded (because you
        could conceivably still add one to a board that has none), and even
        though PC board code wires up the A20 line (because that wiring is
        optional)
      
      * port92: keep because it needs additional wiring by port92_init()
      
      * mc146818rtc: keep because it needs to be wired up by rtc_init()
      
      * m48t59_isa: keep because needs to be wired up by m48t59_init_isa()
      
      * isa-pit, kvm-pit: keep (in their abstract base pic-common) because
        the PIT needs additional wiring by board code, depending on HPET
        presence
      
      * pcspk: keep because of pointer property pit, and because realize
        sets global pcspk_state
      
      * vmmouse: keep because of pointer property ps2_mouse
      
      * vmport: keep because realize sets global port_state
      
      * isa-i8259, kvm-i8259: keep (in their abstract base pic-common),
        because the PICs' IRQ input lines are set up by board code, and the
        wiring of the slave to the master is hard-coded in device model code
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      f3b17640
    • M
      qdev: Replace no_user by cannot_instantiate_with_device_add_yet · efec3dd6
      Markus Armbruster 提交于
      In an ideal world, machines can be built by wiring devices together
      with configuration, not code.  Unfortunately, that's not the world we
      live in right now.  We still have quite a few devices that need to be
      wired up by code.  If you try to device_add such a device, it'll fail
      in sometimes mysterious ways.  If you're lucky, you get an
      unmysterious immediate crash.
      
      To protect users from such badness, DeviceClass member no_user used to
      make device models unavailable with -device / device_add, but that
      regressed in commit 18b6dade.  The device model is still omitted from
      help, but is available anyway.
      
      Attempts to fix the regression have been rejected with the argument
      that the purpose of no_user isn't clear, and it's prone to misuse.
      
      This commit clarifies no_user's purpose.  Anthony suggested to rename
      it cannot_instantiate_with_device_add_yet_due_to_internal_bugs, which
      I shorten somewhat to keep checkpatch happy.  While there, make it
      bool.
      
      Every use of cannot_instantiate_with_device_add_yet gets a FIXME
      comment asking for rationale.  The next few commits will clean them
      all up, either by providing a rationale, or by getting rid of the use.
      
      With that done, the regression fix is hopefully acceptable.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NMarcel Apfelbaum <marcel.a@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      efec3dd6
  13. 12 12月, 2013 2 次提交
  14. 10 12月, 2013 1 次提交
  15. 04 11月, 2013 2 次提交
  16. 17 10月, 2013 1 次提交
    • G
      e820: pass high memory too. · 0624c7f9
      Gerd Hoffmann 提交于
      We have a fw_cfg entry to pass e820 entries from qemu to the firmware.
      Today it's used to pass reservations only.  This patch makes qemu pass
      entries for RAM too.
      
      This allows to pass RAM sizes larger than 1TB to the firmware and it
      will also allow to pass non-contignous memory ramges should we decide
      to implement that some day, say for our virtual numa nodes.
      
      Obviously this needs some extra care to not break existing firware.
      
      SeaBIOS loads the entries and happily adds them without looking at the
      type.  Which is problematic for memory below 4g as this will overwrite
      reservations added for bios memory etc.  For memory above 4g it works
      just fine, seabios will merge the entry derived from cmos with the one
      loaded from fw_cfg.
      
      OVMF doesn't look at the fw_cfg e820 table.
      coreboot doesn't look at the fw_cfg e820 table.
      
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      Reviewed-By: NIgor Mammedov <imammedo@redhat.com>
      0624c7f9
  17. 14 10月, 2013 3 次提交
  18. 03 9月, 2013 1 次提交