From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:36983) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SS3Zs-0004Pf-Mi for qemu-devel@nongnu.org; Wed, 09 May 2012 05:53:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SS3Zq-0005xe-JD for qemu-devel@nongnu.org; Wed, 09 May 2012 05:53:00 -0400 Received: from cantor2.suse.de ([195.135.220.15]:54936 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SS3Zq-0005xC-AQ for qemu-devel@nongnu.org; Wed, 09 May 2012 05:52:58 -0400 From: Hannes Reinecke Date: Wed, 9 May 2012 11:52:40 +0200 Message-Id: <1336557163-23645-1-git-send-email-hare@suse.de> Subject: [Qemu-devel] [PATCH 0/3][v16] LSI Megaraid SAS HBA emulation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Gerhard Wiesinger , Paolo Bonzini , Hannes Reinecke , Alexander Graf , Andreas Faerber This is an updated patchset for megasas. Upon popular demand I've split it into three parts, the header file, the emulation itself, and a patch adding trace events to the emulation. Changes since v15: - Move to new SCSI API - Use generic trace functions for DCMDs - Replace bitfields with defines - Implement CFG_READ - Fix enclosure ID reporting Changes since v14: - Rename MPTState to MegasasState - Use bool type - Enable 64 bit PCI accesses - Replace raid mode string handling - Use common function for requests handling Changes since v13: - Remove separate MSI-X BAR - Simplify BAR allocation Changes since v12: - Fixup flag setting via properties - Fixup MSI-X handling - Disable MSI-X per default Changes since v11: - Remove unneeded variables Changes since v10: - Port to new device type API - Include suggestion from Alex Graf: - Remove 'inline' function declaration - Queue setup and interrupt enablement needs to be treated independently - Always read in 64 bit context and just mask out the top bits if required Changes since v9: - Split off trace events into a separate patch - Do not check for max_luns in PD Info - Update trace events - Clarify license statement - Fixup coding style issues Changes since v8: - Remove 'disable' keyword from trace definitions - Convert hand-crafted debugging statements with trace definitions - Treat 'context' tag as little endian Changes since v7: - Port to new memory API - Port to new PCI infrastructure - Use fixed buffers for sense processing - Update to updated SCSI infrastructure Changes since v6: - Preliminary patches pushed to Kevins block tree - Implement 64bit contexts, required for Windows7 - Use iovecs for DCMD processing - Add MSI-X support Latest Linux driver now happily uses MSI-X. - Static iovec allocation We have a fixed upper number of iovecs, so we can save us the allocation. Suggested by Alex Graf. - Update MFI header Latest Linux driver has some more definitions, add them - Fixup AEN handling - Update tracing details - Remove sdev pointer from megasas_cmd_t Changes since v5: - megasas: Use tracing infrastructure instead of DPRINTF - megasas: Use new PCI infrastructure - megasas: Check for iovec mapping failure cpu_map_physical_memory() might fail, so we need to check for it when mapping iovecs. - megasas: Trace scsi buffer overflow The transfer length as specified in the SCSI command might disagree with the length of the iovec. We should be tracing these issues. - megasas: Reset frames after init firmware When receiving an INIT FIRMWARE command we need reset all frames, otherwise some frames might point to invalid memory. Chances since v4: - megasas: checkpatch.pl fixes and update to work with the changed interface in scsi_req_new(). Also included the suggested fixes from Alex. Hannes Reinecke (3): megasas: Add header file megasas: LSI Megaraid SAS HBA emulation megasas: Add trace events Makefile.objs | 1 + default-configs/pci.mak | 1 + hw/megasas.c | 2148 +++++++++++++++++++++++++++++++++++++++++++++++ hw/mfi.h | 1248 +++++++++++++++++++++++++++ hw/pci_ids.h | 3 +- trace-events | 79 ++ 6 files changed, 3479 insertions(+), 1 deletions(-) create mode 100644 hw/megasas.c create mode 100644 hw/mfi.h -- 1.7.3.4