1. 19 2月, 2015 1 次提交
    • G
      seabios: update to 1.8.0 release · 21f5826a
      Gerd Hoffmann 提交于
      'git shortlog 8936dbb2..4c59f5d8' for seabios repo:
      
      David Woodhouse (4):
            Update EFI_COMPATIBILITY16_TABLE to match 0.98 spec update
            build: use -m16 where available instead of asm(".code16gcc")
            romlayout: Use .code16 not .code16gcc
            vgabios: Use .code16 not .code16gcc
      
      Gerd Hoffmann (2):
            add scripts/tarball.sh
            build: set LC_ALL=C
      
      Hannes Reinecke (1):
            megasas: read addional PCI I/O bar
      
      Ian Campbell (1):
            romlayout: Use "rep ; nop" not "rep nop".
      
      Kevin O'Connor (139):
            vgabios: Return from handle_1011() if handler found.
            edd: Move EDD get drive parameters (int 1348) logic from disk.c to block.c.
            edd: Use sectors==-1 to detect removable media.
            edd: Separate out ATA and virtio specific parts of fill_edd().
            cdemu: store internal cdemu fields in standard "el-torito" spec format.
            Move cdemu call interface and disk_ret helper code to disk.c.
            smm: Replace SMI assembler code with C code.
            smm: Use a C struct to define the layout of the SMM area.
            smp: Replace QEMU SMP init assembler code with C; run only in 32bit mode.
            Don't enable thread preemption during S3 resume vga option rom execution.
            Remove old Bochs bios fixed address string at 0xfff00.
            Move most of the VAR16FIXED() defs to misc.c.
            build: Avoid absolute paths during "whole-program" compiling.
            Make sure handle_smi() and handle_smp() are compiled out if not enabled.
            Remove the TODO file.
            Abstract reset call (and possible 16bit mode switch) into reset() function.
            build: Remove unused function getSectionsStart() from layoutrom.py.
            build: Extract section visiting logic in layoutrom.py.
            build: Refactor layoutrom.py gc() function.
            build: Use customized entry point for each type of build.
            build: Refactor findInit() function.
            build: Rework getRelocs() to use a hash instead of categories in layoutrom.py
            build: Keep segmented sections separate until final link step.
            build: Use fileid instead of category to write sections in layoutrom.py.
            build: Only export needed fields in LayoutInfo in layoutrom.py.
            build: Get fixed address variables from 32bit compile pass (not 16bit)
            build: Minor - fix comments referring to old tools/ directory.
            xhci: Update the times for usb command timeouts.
            ehci: Update usb command timeouts to use usb_xfer_time()
            uhci: Update usb command timeouts to use usb_xfer_time()
            ohci: Update usb command timeouts to use usb_xfer_time()
            vgabios: Fix broken build resulting from e5749978.
            boot: Change ":rom%d" boot order rom instance to ":rom%x"
            Minor - remove stray tab from src/fw/smm.c.
            build: Update kconfig to version in Linux 3.16.
            usb: Fix usb_xfer_time() to work when called in 16bit mode.
            xhci: Call usb_desc2pipe() on xhci_update_pipe().
            xhci: Remove 16bit code wrappers.
            xhci: Use high memory instead of low memory for internal storage.
            xhci: Move root hub and setup code to top of file.
            xhci: Add xhci_check_ports() and xhci_free_pipes() functions.
            ehci: Move port power up from ehci_hub_detect() to check_ehci_ports().
            usb-hub: Enable power to all ports prior to calling usb_enumerate().
            xhci: Change xhci_hub_detect() to use connect status instead of link state.
            uhci: Repeatedly poll for device detect for 100ms.
            ohci: Repeatedly poll for device detect for 100ms.
            ehci: Stall uhci/ohci init only until default port routing is done.
            usb: Perform device detect polling on all usb controllers.
            ehci: Fix bug in hub port assignment
            Revert "Use the extra stack for 16bit USB and PS2 keyboard/mouse commands."
            pmm: Fix entry point to support non-zero %ss
            Move stack hop code below call32/call16 code in stacks.c
            Add need_hop_back() call that determines if stack_hop_back is needed
            Update invoke_mouse_handler() to use need_hop_back()
            Update stack_hop_back() to jump to 16bit mode if called in 32bit mode.
            Track when entering via call32() and use the same mode for stack_hop_back()
            Simplify farcall16 code
            Update reset() to use call16_back()
            build: Support declaring 32bit C functions that must reside in the f-segment
            Move call16() functions from romlayout.S to inline assembler in stacks.c
            Break up call32() into call32() and call32_sloppy()
            Fully restore 16bit state during call16_sloppy()
            Implement call32 mechanism using SMIs.
            Move a20 code from system.c and ps2port.h to x86.h
            Backup and restore a20 on call32_sloppy()
            usb: Rename ?hci_control() to ?hci_send_control()
            usb: Rename usb_getFrameExp() to usb_get_period()
            usb: Rename findEndPointDesc() to usb_find_desc()
            usb: Rename send_default_control() to usb_send_default_control()
            usb: Rename free_pipe() to usb_free_pipe()
            usb: Clarify usb freelist manipulations
            xhci: Change xhci_update_pipe() to xhci_realloc_pipe() and use for alloc too
            uhci: Export uhci_realloc_pipe() instead of uhci_alloc_pipe()
            ohci: Export ohci_realloc_pipe() instead of ohci_alloc_pipe()
            ehci: Export ehci_realloc_pipe() instead of ehci_alloc_pipe()
            usb: Use usb_realloc_pipe for pipe alloc, update, and free.
            Use 32bit memcpy in int1587 when applicable
            Don't clobber %ax on ENTRY_INTO32 macro
            Create assembler macros for saving and restoring 'struct bregs'
            Do full BREGS backup/restore for pmm, pnp, and irqentry_extrastack
            Remove unused macro ENTRY_ST
            vgabios: Don't declare custom internal BDA storage in std/bda.h
            vgabios: Cache a pointer to the current mode struct in the BDA
            vgabios: Don't pass vmode_g to vgafb_move_chars() / vgafb_clear_chars()
            vgabios: Rename vbe_flags to flags
            vgabios: Set cursor shape fixes
            vgabios: Refactor get/set_cursor_shape() code
            vgabios: Only init BDA device details in init_bios_area()
            vgabios: Only set the dcc_index=8 if stdvga ports are available
            vgabios: Move standard table definitions to std/vga.h
            vgabios: Fill in available legacy modes in video_func_static at runtime
            vgabios: Add support for reading framebuffer in "direct" mode
            Fix PNP regression introduced in 99cb8f3e due to missed conversion
            Minor - move PORT_PS2_CTRLB from hw/ps2port.h to hw/timer.c
            vgabios: Support emulating text mode attributes while in graphics mode
            vgabios: Add software cursor capability
            Use an aligned stack offset when entering on the extra stack
            Minor - comment updates in romlayout.S
            Fix build issue on gcc34
            pciinit: Fix build warning in mch_pci_slot_get_irq()
            floppy: Make sure to yield() during floppy PIO
            Minor - be consistent in placement of .code16/32 in romlayout.S
            Use macros for .code16/32 mode switches in inline asm in stacks.c
            Eliminate FUNCFSEG - only force portions of inline asm to f-segment
            usb: Update USB hub code to support super speed hubs
            Simplify README files - point to online documentation instead
            sdcard: Initial support for SD cards on PCI SDHCI controllers on QEMU
            Add wiki documentation to repository
            docs: Don't point to repo README files
            docs: Add info on MODE16/MODESEGMENT compile time flags
            docs: Add page describing SeaBIOS final object linking
            scsi: Move cdb_* functions above scsi_* functions
            scsi: Move process_scsi_op() to hw/blockcmd.c and rename
            cdrom: call scsi_process_op() instead of cdb_read()
            scsi: Don't export cdb_* functions
            cdrom: Break up very large read requests into smaller requests
            block: Check for read/write requests over 64K
            usb: Add support for OHCI bulk transfers
            readserial: Enhance pipe support
            docs: Add documentation on using readserial.py script
            uhci: Enable "depth" tree traversal for bulk transfers
            uhci: Increase bulk transfer STACKTDS to 16
            vgabios: Support emulated text in gfx_read_char()
            ehci: No need to support td array wrapping
            ehci: Simplify fillTDbuffer() and rename
            ehci: Merge ehci_send_control with ehci_send_bulk
            ohci: Merge ohci_send_control with ohci_send_bulk
            uhci: Merge uhci_send_control with uhci_send_bulk
            xhci: Merge xhci_send_control with xhci_send_bulk
            usb: Use usb_send_pipe() now that all drivers have x_send_pipe()
            xhci: Move xhci_xfer_x() functions together
            xhci: Merge some xhci_xfer_x() functions into xhci_send_pipe()
            usb: Control transfers always have an 8 byte command size
            usb: Minor - properly free memory on get_device_config() error path
            checkstack: Handle callw instruction
            docs: Document why v1.6.3 release came after v0.6.2
            docs: Update release history with dates of stable releases
            docs: There is only one VAR16 flag now
            docs: Note v1.8.0 release
      
      Marcel Apfelbaum (1):
            hw/pci: reserve IO and mem for pci express downstream ports with no devices attached
      
      Markus Armbruster (1):
            boot: Fix boot order for SCSI target, lun > 9
      
      Paolo Bonzini (5):
            piix: add and use dev-piix.h
            smm: complete SMM setup
            smm: unify SMM handlers
            vgabios: fix graphics operation with Bochs VGA in non-DISPI modes
            vgabios: implement read char in graphics mode
      
      zhanghailiang (1):
            acpi: use specified macro instead of magic-number
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      21f5826a
  2. 13 2月, 2015 22 次提交
  3. 11 2月, 2015 7 次提交
    • P
      Merge remote-tracking branch 'remotes/awilliam/tags/vfio-update-20150210.0' into staging · 449008f8
      Peter Maydell 提交于
      RCU fixes and cleanup (Paolo Bonzini)
      Switch to v2 IOMMU interface (Alex Williamson)
      DEBUG build fix (Alexey Kardashevskiy)
      
      # gpg: Signature made Tue 10 Feb 2015 17:37:06 GMT using RSA key ID 3BB08B22
      # gpg: Good signature from "Alex Williamson <alex.williamson@redhat.com>"
      # gpg:                 aka "Alex Williamson <alex@shazbot.org>"
      # gpg:                 aka "Alex Williamson <alwillia@redhat.com>"
      # gpg:                 aka "Alex Williamson <alex.l.williamson@gmail.com>"
      
      * remotes/awilliam/tags/vfio-update-20150210.0:
        vfio: Fix debug message compile error
        vfio: Use vfio type1 v2 IOMMU interface
        vfio: unmap and free BAR data in instance_finalize
        vfio: free dynamically-allocated data in instance_finalize
        vfio: cleanup vfio_get_device error path, remove vfio_populate_device callback
        memory: unregister AddressSpace MemoryListener within BQL
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      449008f8
    • A
      vfio: Fix debug message compile error · bc5baffa
      Alexey Kardashevskiy 提交于
      This fixes a compiler error which occurs if DEBUG_VFIO is defined.
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      bc5baffa
    • A
      vfio: Use vfio type1 v2 IOMMU interface · 2e6e697e
      Alex Williamson 提交于
      The difference between v1 and v2 is fairly subtle, simply more
      deterministic behavior for unmaps.  The v1 interface allows the user
      to attempt to unmap sub-regions of previous mappings, returning
      success with zero size if unable to comply.  This was a reflection of
      the underlying IOMMU API.  The v2 interface requires that the user
      may only unmap fully contained mappings, ie. an unmap cannot intersect
      or bisect a previous mapping, but may cover multiple mappings.  QEMU
      never made use of the sub-region v1 support anyway, so we can support
      either v1 or v2.  We'll favor v2 since it's newer.
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      2e6e697e
    • P
      vfio: unmap and free BAR data in instance_finalize · ba5e6bfa
      Paolo Bonzini 提交于
      In the case of VFIO, the unrealize callback is too early to munmap the
      BARs.  The munmap must be delayed until memory accesses are complete.
      To do this, split vfio_unmap_bars in two.  The removal step, now called
      vfio_unregister_bars, remains in vfio_exitfn.  The reclamation step
      is vfio_unmap_bars and is moved to the instance_finalize callback.
      
      Similarly, quirk MemoryRegions have to be removed during
      vfio_unregister_bars, but freeing the data structure must be delayed
      to vfio_unmap_bars.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      ba5e6bfa
    • P
      vfio: free dynamically-allocated data in instance_finalize · 77a10d04
      Paolo Bonzini 提交于
      In order to enable out-of-BQL address space lookup, destruction of
      devices needs to be split in two phases.
      
      Unrealize is the first phase; once it complete no new accesses will
      be started, but there may still be pending memory accesses can still
      be completed.
      
      The second part is freeing the device, which only happens once all memory
      accesses are complete.  At this point the reference count has dropped to
      zero, an RCU grace period must have completed (because the RCU-protected
      FlatViews hold a reference to the device via memory_region_ref).  This is
      when instance_finalize is called.
      
      Freeing data belongs in an instance_finalize callback, because the
      dynamically allocated memory can still be used after unrealize by the
      pending memory accesses.
      
      This starts the process by creating an instance_finalize callback and
      freeing most of the dynamically-allocated data in instance_finalize.
      Because instance_finalize is also called on error paths or also when
      the device is actually not realized, the common code needs some changes
      to be ready for this.  The error path in vfio_initfn can be simplified too.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      77a10d04
    • P
      vfio: cleanup vfio_get_device error path, remove vfio_populate_device callback · 217e9fdc
      Paolo Bonzini 提交于
      Now that vfio_put_base_device is called unconditionally at instance_finalize
      time, it can be called twice if vfio_populate_device fails.  This works
      but it is slightly harder to follow.
      
      Change vfio_get_device to not touch the vbasedev struct until it will
      definitely succeed, moving the vfio_populate_device call back to vfio-pci.
      This way, vfio_put_base_device will only be called once.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      217e9fdc
    • P
      memory: unregister AddressSpace MemoryListener within BQL · 6e48e8f9
      Paolo Bonzini 提交于
      address_space_destroy_dispatch is called from an RCU callback and hence
      outside the iothread mutex (BQL).  However, after address_space_destroy
      no new accesses can hit the destroyed AddressSpace so it is not necessary
      to observe changes to the memory map.  Move the memory_listener_unregister
      call earlier, to make it thread-safe again.
      Reported-by: NAlex Williamson <alex.williamson@redhat.com>
      Fixes: 374f2981Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
      6e48e8f9
  4. 10 2月, 2015 10 次提交