numam-spdk/PORTING.md
Jim Harris f0649be5a0 Add porting guide.
Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Ic028d9d776b094fc2fa048c23424aec2c8434cc6
2015-09-28 09:07:19 -07:00

912 B

SPDK Porting Guide

SPDK is ported to new environments by implementing the nvme_impl interface. The nvme_impl interface provides APIs for the driver to allocate physically contiguous and pinned memory, perform PCI operations (config cycles and mapping BARs), virtual to physical address translation and allocating per I/O data structures.

SPDK includes a default implementation of the nvme_impl API based on the Data Plane Development Kit (DPDK) and libpciaccess. This DPDK implementation can be found in lib/nvme/nvme_impl.h. DPDK is currently supported on Linux and FreeBSD only.

Users who want to use SPDK on other operating system, or in userspace driver frameworks other than DPDK, will need to implement a new version of nvme_impl.h. The new nvme_impl.h can be integrated into the SPDK build by updating the following line in CONFIG:

CONFIG_NVME_IMPL=nvme_impl.h