NVM Express Device Emulation in QEMU
Switch branches/tags
Nothing to show
Latest commit c160492 Sep 27, 2011 @nisheethbhat nisheethbhat Changes done to NVME_README and README files
Updated link to clone Qemu from github
Added instructions to install Qemu on RHEL
Permalink
Failed to load latest commit information.
QMP QMP: add server mode to QEMUMonitorProtocol Jun 1, 2011
audio coreaudio: Fix OSStatus format specifier Jun 23, 2011
block qcow2: Fix in-flight list after qcow2_cache_put failure Jun 15, 2011
bsd-user Command line support for altering the log file location Jun 15, 2011
darwin-user Command line support for altering the log file location Jun 15, 2011
default-configs Merge branch 'experimental' Jun 24, 2011
docs usb: documentation update Jun 14, 2011
fpu softfloat: add float*_is_zero_or_denormal() Jun 3, 2011
fsdev fsdev: Fix archs that dont use fsdev Jun 10, 2011
gdb-xml gdb-xml: fix hacks in powerpc register numbering Jul 12, 2009
hw Changes done to NVME_README and README files Sep 27, 2011
libcacard libcacard: add libcacard.la target Jun 14, 2011
linux-headers Import kernel headers Jun 20, 2011
linux-user Command line support for altering the log file location Jun 15, 2011
net slirp: fix guestfwd id Jun 8, 2011
pc-bios s390x: update zipl rom Jun 3, 2011
roms Add ipxe submodule Apr 8, 2011
scripts Merge remote-tracking branch 'qemu-kvm/uq/master' into staging Jun 22, 2011
slirp add a service to reap zombies, use it in SLIRP Mar 29, 2011
sysconfigs/target Add cpu model configuration support.. Feb 22, 2010
target-alpha alpha: remove unused variable Jun 15, 2011
target-arm target-arm: BKPT instructions should raise prefetch aborts with IFSR … Jun 3, 2011
target-cris Merge remote-tracking branch 'stefanha/trivial-patches' into staging May 12, 2011
target-i386 kvm: fix FPU state subsection Jun 21, 2011
target-lm32 Remove warning in printf due to type mismatch Jun 14, 2011
target-m68k m68k: Replace gen_im32() by tcg_const_i32() Jun 8, 2011
target-microblaze Merge remote-tracking branch 'stefanha/trivial-patches' into staging May 12, 2011
target-mips target-mips: Fix warning caused by unused local variable May 14, 2011
target-ppc kvm: ppc: Drop KVM_CAP build dependencies Jun 20, 2011
target-s390x Switch build system to accompanied kernel headers Jun 20, 2011
target-sh4 Remove unused function parameter from cpu_restore_state Apr 20, 2011
target-sparc Fix compilation warning due to missing header for sigaction (followup) Jun 8, 2011
target-unicore32 Remove unused function parameters from gen_pc_load and rename the fun… Apr 20, 2011
tcg tcg: Fix unused-but-set-variable warning Jun 3, 2011
tests Fix spelling in comments (intruction -> instruction) May 8, 2011
ui cocoa: Avoid warning related to multiple handleEvent: definitions Jun 14, 2011
.gitignore Document the intention of branching to handle the various differences… Jun 30, 2011
.gitmodules Add ipxe submodule Apr 8, 2011
CODING_STYLE checkpatch: adjust to QEMUisms Jan 20, 2011
COPYING COPYING: update from FSF Oct 12, 2008
COPYING.LIB Update FSF address in GPL/LGPL boilerplate Jan 4, 2009
Changelog Changelog: Add explanatory note that this file is no longer updated Jun 13, 2011
HACKING HACKING: Update status of format checking Feb 25, 2011
LICENSE Add missing newline at the end of file Dec 14, 2008
MAINTAINERS target-alpha: Claim ownership. May 31, 2011
Makefile libcacard: add libcacard.la target Jun 14, 2011
Makefile.dis Compile disassemblers only once Mar 21, 2010
Makefile.hw Clean libhw subdirs as well May 22, 2010
Makefile.objs Reorganized the code and separated out config file read functions in … Jul 22, 2011
Makefile.target Merge remote-tracking branch 'qemu-kvm/uq/master' into staging Jun 22, 2011
Makefile.user Use vpath directive Jan 8, 2010
README Changes done to NVME_README and README files Sep 27, 2011
TODO Update Dec 4, 2008
VERSION Open up the 0.15 development branch Feb 2, 2011
a.out.h Remove unnecessary trailing newlines Dec 13, 2008
acl.c Remove unused sysemu.h include directives Apr 15, 2011
acl.h Fix sys-queue.h conflict for good Sep 12, 2009
aes.c Include assert.h from qemu-common.h May 13, 2009
aes.h AES crypto support Aug 1, 2004
aio.c block: fix aio_flush segfaults for read-only protocols (e.g. curl) May 21, 2010
alpha-dis.c target-alpha: Disassemble EV6 PALcode instructions. May 31, 2011
alpha.ld set SEARCH_PATH for the linker script from output of ld --verbose -v Jul 27, 2009
arch_init.c Introduce -machine command option. May 8, 2011
arch_init.h Introduce -machine command option. May 8, 2011
arm-dis.c arm-dis: Include opcode hex when doing disassembly Jan 12, 2011
arm-semi.c Remove unused sysemu.h include directives Apr 15, 2011
arm.ld set SEARCH_PATH for the linker script from output of ld --verbose -v Jul 27, 2009
async.c Allow nested qemu_bh_poll() after BH deletion Jun 15, 2011
balloon.c Remove unused sysemu.h include directives Apr 15, 2011
balloon.h move balloon handling to balloon.c Apr 9, 2010
bitmap.c bitmap: add a generic bitmap and bitops library Feb 23, 2011
bitmap.h bitmap: add a generic bitmap and bitops library Feb 23, 2011
bitops.c bitmap: add a generic bitmap and bitops library Feb 23, 2011
bitops.h bitops: fix error on OpenBSD and mingw32 Feb 25, 2011
block-migration.c Improve accuracy of block migration bandwidth calculation Apr 27, 2011
block-migration.h block migration: Report progress also via info migration Dec 3, 2009
block.c bdrv_img_create: Fix segfault Jun 8, 2011
block.h Replaced tabs with spaces in block.h and block_int.h Jun 15, 2011
block_int.h Replaced tabs with spaces in block.h and block_int.h Jun 15, 2011
blockdev.c block: clarify the meaning of BDRV_O_NOCACHE Jun 8, 2011
blockdev.h blockdev: Store -drive option media in DriveInfo May 19, 2011
bswap.h bswap.h: add cpu_to_be64wu() Jan 10, 2011
bt-host.c Remove unused sysemu.h include directives Apr 15, 2011
bt-host.h Clean build: Add bt-host.h Mar 10, 2009
bt-vhci.c Remove unused sysemu.h include directives Apr 15, 2011
buffered_file.c Remove unused sysemu.h include directives Apr 15, 2011
buffered_file.h Introduce a buffered file wrapper for QEMUFile Oct 13, 2008
cache-utils.c Remove trailing whitespace Oct 31, 2010
cache-utils.h Delete useless 'extern' qualifiers for functions Jan 23, 2011
check-qdict.c check-qdict: Fix possible crash Feb 20, 2011
check-qfloat.c Fix qtypes' licenses May 19, 2010
check-qint.c Fix qtypes' licenses May 19, 2010
check-qjson.c Silence compiler warning in json test case Oct 22, 2010
check-qlist.c Fix qtypes' licenses May 19, 2010
check-qstring.c Fix qtypes' licenses May 19, 2010
cmd.c cmd: fix operator precedence Jun 20, 2011
cmd.h Delete useless 'extern' qualifiers for functions Jan 23, 2011
compatfd.c sigfd: use pthread_sigmask Jun 10, 2011
compatfd.h signalfd compatibility Oct 20, 2010
config.h Makefile dependencies for device configs Nov 22, 2009
configure Merge remote-tracking branch 'qemu-kvm/uq/master' into staging Jun 22, 2011
console.c Fix segfault on screendump with -nographic Jun 3, 2011
console.h Make VNC support optional Mar 22, 2011
cpu-all.h softfloat: always enable floatx80 and float128 support Jun 3, 2011
cpu-common.h exec.c: refactor cpu_physical_memory_map Jun 19, 2011
cpu-defs.h Expose thread_id in info cpus Mar 16, 2011
cpu-exec.c Remove unneeded kvm.h from cpu-exec.c Jun 20, 2011
cpus.c Fix typo in cpus.c Jun 20, 2011
cpus.h Command line support for altering the log file location Jun 15, 2011
cris-dis.c cris: Support disassembly of crisv10 Jan 10, 2011
cursor.c cursor: add cursor functions. May 24, 2010
cursor_hidden.xpm cursor: add cursor functions. May 24, 2010
cursor_left_ptr.xpm cursor: add cursor functions. May 24, 2010
cutils.c QCOW2: bug fix - read base image beyond its size Feb 10, 2011
def-helper.h tcg: Optionally sign-extend 32-bit arguments for 64-bit hosts. Jun 16, 2010
device_tree.c Remove unused sysemu.h include directives Apr 15, 2011
device_tree.h Allow qemu_devtree_setprop() to take arbitrary values Apr 1, 2011
dis-asm.h target-alpha: Disassemble EV6 PALcode instructions. May 31, 2011
disas.c target-alpha: Disassemble EV6 PALcode instructions. May 31, 2011
disas.h Remove special handling of system include files (no longer needed) Oct 22, 2010
dma-helpers.c make dma_bdrv_io available to drivers Jun 15, 2011
dma.h make dma_bdrv_io available to drivers Jun 15, 2011
dyngen-exec.h Remove special handling of system include files (no longer needed) Oct 22, 2010
elf.h unicore32: necessary modifications for other files to support unicore32 Apr 12, 2011
envlist.c Fix sys-queue.h conflict for good Sep 12, 2009
envlist.h Delete useless 'extern' qualifiers for functions Jan 23, 2011
error.c error framework: Fix compilation for w32/w64 Jun 16, 2011
error.h error framework: Fix compilation for w32/w64 Jun 16, 2011
error_int.h Introduce the new error framework Jun 7, 2011
exec-all.h target-alpha: Trap for unassigned and unaligned addresses. May 31, 2011
exec.c Merge remote-tracking branch 'mst/for_anthony' into staging Jun 22, 2011
gdbstub.c target-mips/gdbstub: remove old CONFIG_SOFTFLOAT #ifndef Jun 3, 2011
gdbstub.h Add scripts directory Jan 20, 2011
gen-icount.h Fix conversions from pointer to tcg_target_long Apr 9, 2011
hmp-commands.hx HMP: Use QMP inject nmi implementation Jun 1, 2011
host-utils.c user: compile host-utils.c only once Aug 16, 2009
host-utils.h target-alpha: Fix generic ctz64. Dec 17, 2009
hpet.h Add a local copy of hpet.h. Sep 16, 2007
hppa-dis.c Fix typo in comment (relevent -> relevant) May 8, 2011
hppa.ld set SEARCH_PATH for the linker script from output of ld --verbose -v Jul 27, 2009
i386-dis.c i386-dis: Fix unused return value, spotted by clang Apr 18, 2010
i386.ld Fix missing symbols in .rel/.rela.plt sections Feb 6, 2010
ia64-dis.c Fix %lld or %llx printf format use May 22, 2010
ia64.ld set SEARCH_PATH for the linker script from output of ld --verbose -v Jul 27, 2009
input.c event: trivial coding style fixes Apr 9, 2011
iohandler.c add a service to reap zombies, use it in SLIRP Mar 29, 2011
ioport-user.c Revert "Get rid of _t suffix" Oct 1, 2009
ioport.c ioport: Improve error output Mar 6, 2011
ioport.h Type-safe ioport callbacks Nov 21, 2010
iorange.h Type-safe ioport callbacks Nov 21, 2010
iov.c iov: Move from hw/ to topdir May 10, 2010
iov.h iov: Move from hw/ to topdir May 10, 2010
json-lexer.c json-lexer: make lexer error-recovery more deterministic Jun 7, 2011
json-lexer.h json-lexer: make lexer error-recovery more deterministic Jun 7, 2011
json-parser.c json-parser: add handling for NULL token list Jun 7, 2011
json-parser.h json-parser: propagate error from parser Jun 7, 2011
json-streamer.c json-streamer: add handling for JSON_ERROR token/state Jun 7, 2011
json-streamer.h json-streamer: make sure to reset token_size after emitting a token list Jun 7, 2011
kvm-all.c kvm: Drop KVM_CAP build dependencies Jun 20, 2011
kvm-stub.c kvm: Clean up stubs Jun 20, 2011
kvm.h kvm: x86: Pass KVMState to kvm_arch_get_supported_cpuid Jun 20, 2011
libfdt_env.h Fix libfdt warnings on Darwin Jun 14, 2011
linux-aio.c linux-aio: Fix typo in read() EINTR check Apr 23, 2010
m68k-dis.c *-dis: Replace fprintf_ftype by fprintf_function (format checking) Dec 4, 2010
m68k-semi.c Move qemu_gettimeofday() to OS specific files Oct 30, 2010
m68k.ld set SEARCH_PATH for the linker script from output of ld --verbose -v Jul 27, 2009
microblaze-dis.c *-dis: Replace fprintf_ftype by fprintf_function (format checking) Dec 4, 2010
migration-exec.c Remove unused sysemu.h include directives Apr 15, 2011
migration-fd.c Remove unused sysemu.h include directives Apr 15, 2011
migration-tcp.c Remove unused sysemu.h include directives Apr 15, 2011
migration-unix.c Remove unused sysemu.h include directives Apr 15, 2011
migration.c Improve vm_stop reason declarations Feb 14, 2011
migration.h migration: move some declarations to migration.h Apr 15, 2011
mips-dis.c *-dis: Replace fprintf_ftype by fprintf_function (format checking) Dec 4, 2010
mips.ld set SEARCH_PATH for the linker script from output of ld --verbose -v Jul 27, 2009
module.c Fix sys-queue.h conflict for good Sep 12, 2009
module.h Convert machine registration to use module init functions May 21, 2009
monitor.c HMP: Use QMP inject nmi implementation Jun 1, 2011
monitor.h spice: connection events. Dec 9, 2010
nbd.c NBD: Use qemu_socket functions to open TCP and UNIX sockets Apr 7, 2011
nbd.h NBD: Use qemu_socket functions to open TCP and UNIX sockets Apr 7, 2011
net.c net: Warn about "-net nic" options which were ignored Jun 22, 2011
net.h net: Warn about "-net nic" options which were ignored Jun 22, 2011
notify.c Add support for generic notifier lists Mar 19, 2010
notify.h Add support for generic notifier lists Mar 19, 2010
os-posix.c Introduce format string for pid_t Jun 15, 2011
os-win32.c Introduce format string for pid_t Jun 15, 2011
osdep.c Remove unused sysemu.h include directives Apr 15, 2011
osdep.h Introduce format string for pid_t Jun 15, 2011
oslib-posix.c Darwin: Fix compilation warning regarding the deprecated daemon() fun… Jun 14, 2011
oslib-win32.c w32: Remove implementation of function ffs Feb 20, 2011
path.c user: speed up init_paths a bit Feb 9, 2011
pci-ids.txt List virtio console device in pci-ids.txt Jan 24, 2009
pflib.c add pflib: PixelFormat conversion library. Sep 21, 2010
pflib.h add pflib: PixelFormat conversion library. Sep 21, 2010
poison.h irq: Privatize CPU_INTERRUPT_NMI. May 8, 2011
posix-aio-compat.c Fix compilation warning due to missing header for sigaction (followup) Jun 8, 2011
ppc-dis.c Work around OpenSolaris sys/regset.h namespace pollution Sep 12, 2009
ppc.ld set SEARCH_PATH for the linker script from output of ld --verbose -v Jul 27, 2009
ppc64.ld set SEARCH_PATH for the linker script from output of ld --verbose -v Jul 27, 2009
qbool.c Fix qtypes' licenses May 19, 2010
qbool.h Add a QBool type Nov 17, 2009
qdict-test-data.txt Introduce QDict test data file Sep 4, 2009
qdict.c QDict: Introduce qdict_get_try_bool() Jul 1, 2010
qdict.h QDict: Introduce qdict_get_try_bool() Jul 1, 2010
qemu-aio.h Add qemu_aio_process_queue() Oct 27, 2009
qemu-barrier.h Introduce proper compiler barrier Jul 22, 2010
qemu-char.c Fix compilation warning due to missing header for sigaction (followup) Jun 8, 2011
qemu-char.h char: Allow devices to use a single multiplexed chardev. Apr 28, 2011
qemu-common.h cocoa: Provide central qemu_main() prototype Jun 14, 2011
qemu-config.c qemu-config: comment spell fix Jun 6, 2011
qemu-config.h spice: core bits Sep 21, 2010
qemu-doc.texi doc: Add explanation that -alt-grab and -ctrl-grab affect special keys May 14, 2011
qemu-error.c Remove unused sysemu.h include directives Apr 15, 2011
qemu-error.h Use GCC_FMT_ATTR (format checking) Oct 3, 2010
qemu-img-cmds.hx qemu-img: Initial progress printing support Apr 7, 2011
qemu-img.c qemu_img: is_not_zero() optimization May 18, 2011
qemu-img.texi Documentation: Add qemu-img check/rebase Jan 24, 2011
qemu-io.c block: clarify the meaning of BDRV_O_NOCACHE Jun 8, 2011
qemu-lock.h qemu-lock.h: Remove non-pthreads spinlock implementations Feb 20, 2011
qemu-log.h Define macros that will become the new logging API (Eduardo Habkost) Jan 15, 2009
qemu-malloc.c Add missing tracing to qemu_mallocz() Dec 14, 2010
qemu-nbd.c Darwin: Fix compilation warning regarding the deprecated daemon() fun… Jun 14, 2011
qemu-nbd.texi qemu-nbd: Fix wrong description in qemu-nbd.texi Mar 6, 2010
qemu-objects.h Fix qtypes' licenses May 19, 2010
qemu-option.c qemu-option: Fix parse_option_parameters() documentation typo Dec 14, 2010
qemu-option.h error: New qemu_opts_loc_restore() Jul 6, 2010
qemu-options.h Introduce OS specific cmdline argument handling and move SMB arg to o… Jun 12, 2010
qemu-options.hx Command line support for altering the log file location Jun 15, 2011
qemu-os-posix.h virtio-9p: fix build on !CONFIG_UTIMENSAT Dec 3, 2010
qemu-os-win32.h w32: Fix missing declaration of ffs() May 15, 2011
qemu-progress.c Fix compilation warning due to missing header for sigaction (followup) Jun 8, 2011
qemu-queue.h Import a simple queue implementation from NetBSD Dec 3, 2009
qemu-sockets.c Set errno=ENOTSUP for attempts to use UNIX sockets on Windows platforms Apr 7, 2011
qemu-tech.texi qemu-tech: Spelling fixes Jan 9, 2011
qemu-thread-posix.c qemu-thread: delete unused functions Mar 19, 2011
qemu-thread-posix.h add Win32 IPI service Mar 13, 2011
qemu-thread-win32.c w32: Add missing functions qemu_mutex_destroy, qemu_cond_destroy Mar 19, 2011
qemu-thread-win32.h add win32 qemu-thread implementation Mar 13, 2011
qemu-thread.h qemu-thread.h: include inttypes.h Apr 2, 2011
qemu-timer-common.c Add OpenBSD to ifdef list since it has CLOCK_MONOTONIC. Dec 21, 2010
qemu-timer.c timer: drop HPET and RTC Jun 6, 2011
qemu-timer.h qemu-timer: Remove unneeded include statement (w32) Apr 27, 2011
qemu-tool.c qemu-tool: Stub out qemu-timer functions May 18, 2011
qemu-x509.h move x509 file name defines to qemu-x509.h Mar 8, 2010
qemu.sasl Add SASL authentication support ("Daniel P. Berrange") Mar 6, 2009
qemu_socket.h net: remove parse_host_src_port() function Mar 6, 2011
qerror.c Merge remote-tracking branch 'qmp/for-anthony' into staging Jun 8, 2011
qerror.h Merge remote-tracking branch 'qmp/for-anthony' into staging Jun 8, 2011
qfloat.c Fix qtypes' licenses May 19, 2010
qfloat.h Add a QFloat datatype Nov 17, 2009
qint.c Fix qtypes' licenses May 19, 2010
qint.h Fix qtypes' licenses May 19, 2010
qjson.c Add support for JSON pretty printing Oct 1, 2010
qjson.h Merge remote branch 'qmp/for-anthony' into staging Oct 5, 2010
qlist.c Fix qtypes' licenses May 19, 2010
qlist.h Fix qtypes' licenses May 19, 2010
qmp-commands.hx HMP: Use QMP inject nmi implementation Jun 1, 2011
qobject.h Fix qtypes' licenses May 19, 2010
qstring.c Fix qtypes' licenses May 19, 2010
qstring.h Fix qtypes' licenses May 19, 2010
range.h Introduce range.h Sep 18, 2010
readline.c cope with printf macro definition in readline.c Feb 8, 2010
readline.h monitor: Improve mux'ed console experience (Jan Kiszka) Mar 5, 2009
rules.mak libcacard: add libcacard.la target Jun 14, 2011
rwhandler.c Make simple io mem handler endian aware Dec 11, 2010
rwhandler.h Make simple io mem handler endian aware Dec 11, 2010
s390-dis.c s390: Disassemble some general-instruction-extension insns. Jun 9, 2010
s390.ld set SEARCH_PATH for the linker script from output of ld --verbose -v Jul 27, 2009
savevm.c Reset system before loadvm Jun 16, 2011
sh4-dis.c *-dis: Replace fprintf_ftype by fprintf_function (format checking) Dec 4, 2010
simpletrace.c simpletrace: Move st_init() error reporting Mar 15, 2011
simpletrace.h simpletrace: Move st_init() error reporting Mar 15, 2011
softmmu-semi.h Suppress gcc 4.x -Wpointer-sign (included in -Wall) warnings Sep 20, 2008
softmmu_defs.h Fix some warnings that would be generated by gcc -Wredundant-decls Aug 30, 2008
softmmu_exec.h sparc64: handle asi referencing nucleus and secondary MMU contexts May 6, 2010
softmmu_header.h sparc64: fix 32bit load sign extension Jun 2, 2010
softmmu_template.h Split TLB addend and target_phys_addr_t Apr 4, 2010
sparc-dis.c sparc64: more ultrasparc asi extensions for disassembler May 6, 2010
sparc.ld Fix sparc.ld Sep 13, 2009
sparc64.ld set SEARCH_PATH for the linker script from output of ld --verbose -v Jul 27, 2009
spice-qemu-char.c spice-qemu-char: Fix flow control in client -> guest direction Jun 6, 2011
sysemu.h Allow silent system resets Jun 16, 2011
targphys.h Split TLB addend and target_phys_addr_t Apr 4, 2010
tcg-runtime.c tcg: add div/rem 32-bit helpers Mar 14, 2010
thunk.c Update to a hopefully more future proof FSF address Jul 16, 2009
thunk.h Update to a hopefully more future proof FSF address Jul 16, 2009
trace-events xen: Add the Xen platform pci device Jun 19, 2011
translate-all.c Remove unused function parameter from cpu_restore_state Apr 20, 2011
uboot_image.h Revert "Get rid of _t suffix" Oct 1, 2009
usb-bsd.c Fix compilation warning due to missing header for sigaction (followup) Jun 8, 2011
usb-linux.c usb-linux: Enlarge buffer for descriptors to 8192 bytes Jun 14, 2011
usb-stub.c monitor: Rework API (Jan Kiszka) Mar 5, 2009
user-exec.c Move user emulator stuff from cpu-exec.c to user-exec.c May 28, 2011
version.rc mingw: add version information to the executables Sep 26, 2010
vgafont.h Some little fixes on QEMU Sep 6, 2008
vl.c Allow silent system resets Jun 16, 2011
x86_64.ld Fix missing symbols in .rel/.rela.plt sections Feb 6, 2010
xen-all.c Merge remote-tracking branch 'qmp/for-anthony' into staging Jun 22, 2011
xen-mapcache-stub.c xen: remove xen_map_block and xen_unmap_block Jun 19, 2011
xen-mapcache.c xen: remove xen_map_block and xen_unmap_block Jun 19, 2011
xen-mapcache.h xen: remove xen_map_block and xen_unmap_block Jun 19, 2011
xen-stub.c xen: Add Xen hypercall for sleep state in the cmos_s3 callback. May 8, 2011

README

1. Introduction
2. How to compile Qemu with NVME support.
3. Make a virtual HD for QEMU
4. Locate and download a Linux based 64b OS to virtualize
5. Install KVM
6. Install the chosen virtualized OS to the virtual HD
7. Boot the virtual machine from the virtual HD
8. Performance notes
9. Usage Notes


Qemu for NVME.

1. Introduction.

To get more details about Qemu visit the official website:
http://wiki.qemu.org/Main_Page

To clone Qemu with support for NVME clone source code from:
git clone git@github.com:nvmeqemu/nvmeqemu.git

2. How to compile Qemu with NVME support.
    a. Clone the above git repository.
    b. Make sure you are using a 64 bit environment and a 64 bit Linux kernel.
    c. You need the following libraries:
       For Ubuntu 10.10 Server 64b host:
           sudo apt-get install linux-headers-2.6.35-22-server
           sudo apt-get install zlib1g-dev
           sudo apt-get install libsdl-dev
           sudo apt-get install libaio-dev

       For RHEL5 host (If the packages are not found, check your repositories' setup): 
           yum install kernel-devel
           yum install zlib-devel
           yum install SDL
           yum install libaio-devel
       
       ./configure --enable-io-thread --enable-linux-aio --target-list=x86_64-softmmu --enable-sdl
       NOTE: With RHEL5 the configure might fail, complaining about AIO even after installing it. Ignore it and re-run configure with the AIO switch removed from the command

       make

    d. The resulting executable is qemu/x86_64-softmnu/qemu-system-x86_64/qemu-system-x86_64. You can add it to $PATH for easy access.

3. Make a virtual HD for QEMU
    1. On RHEL5:
       yum install qemu-img

    2. Execute
       qemu-img create -f raw <your_virtual_HD_filename.img> <size>M

4. Locate and download a Linux based 64b OS to virtualize
    1. Download the iso file and save as <your_iso_image_filename.iso>

5. Install KVM

    1. On RHEL5:
       yum install kvm kmod-kvm

6. Install the guest OS to the virtual HD
   1. Execute
      ./qemu-system-x86_64 -m 1024 -cdrom <path_to_your_iso_image>/<your_iso_image_filename.iso> -hda <path_to_virtual_HD>/<your_virtual_HD_filename.img> -device nvme -boot d
          A terminal window should launch into view booting from the supplied ISO file.
          Follow through the usual actions to install the OS onto the virtual HD.
          Feel free to partition/format/re-initialize virtual HD as necessary.
          At the end of a successful installation reboot the virtual machine.

7. Boot the virtual machine from the virtual HD
    1. Execute with kvm support (recommended)
       sudo ./qemu-system-x86_64 -m 1024 -hda <path_to_virtual_HD>/<your_virtual_HD_filename.img> -device nvme --enable-kvm -smp 2
    2. Execute without kvm support
       sudo ./qemu-system-x86_64 -m 1024 -hda <path_to_virtual_HD>/<your_virtual_HD_filename.img> -device nvme -smp 2

8. Performance notes
    1. Consider adding the following switches when invoking configure:
    --enable-io-thread --enable-linux-aio
    2. Consider adding the following switches when invoking qemu:
    --enable-kvm -smp 2

9. Usage Notes
    1. Config Files
           NVME module of Qemu uses two device config files called "NVME_device_PCI_config" and "NVME_device_NVME_config" located inside the /qemu/hw directory
           They basically enable the user to set up the intial values in both the PCI and NVME config space
           These file names are unique and thus there should not be multiple files with the above names inside the directory from where the qemu is run by executing Step 6
           Program should be executed from an higher level directory so that both the config files are available inside the directory itself else both spaces will be initialized to
           defaulted values