Everyone:
This series contains all of the changes I made in order to add support
for NVME storage in Barebox. Majority of the code was adapted directly
from Linux kernel and I tried to keep it as close to the original as
possible. Only a very basic featureset was implemented:
- For obvious reason all of the request both to admin and I/O
queue are fully blocking/syncronous, so none of the I/O
operations are done in parallel
- PRP list only DMA (no SGL lists support)
- No support for shared namespaces
- No support for transports other than PCIe. All of the pluming to
add support for it should be there, however.
- Host memory buffer support is not implemented
Feedback is welcome!
Thanks,
Andrey Smirnov
Andrey Smirnov (8):
PCI: Fix to_pci_dev() macro
PCI: Introduce device_pci_driver()
drivers: Make use of device_pci_driver()
include: Sync up pci_ids.h with 4.20-rc1
include: Add definitnion for HZ
include: Import uuid.h for Linux
include: Import min_not_zero() macro from Linux
drivers: Import a very basic NVME implementation from Linux
drivers/Kconfig | 1 +
drivers/Makefile | 1 +
drivers/net/e1000/main.c | 7 +-
drivers/net/rtl8139.c | 7 +-
drivers/net/rtl8169.c | 7 +-
drivers/nvme/Kconfig | 5 +
drivers/nvme/Makefile | 1 +
drivers/nvme/host/Kconfig | 11 +
drivers/nvme/host/Makefile | 9 +
drivers/nvme/host/core.c | 614 ++++++++
drivers/nvme/host/nvme.h | 148 ++
drivers/nvme/host/pci.c | 697 +++++++++
drivers/usb/host/xhci-pci.c | 7 +-
include/clock.h | 2 +
include/linux/kernel.h | 10 +
include/linux/nvme.h | 1271 +++++++++++++++
include/linux/pci.h | 7 +-
include/linux/pci_ids.h | 2952 +++++++++++++++++++++++++++++++++++
include/linux/uuid.h | 96 ++
include/uapi/linux/uuid.h | 42 +
20 files changed, 5870 insertions(+), 25 deletions(-)
create mode 100644 drivers/nvme/Kconfig
create mode 100644 drivers/nvme/Makefile
create mode 100644 drivers/nvme/host/Kconfig
create mode 100644 drivers/nvme/host/Makefile
create mode 100644 drivers/nvme/host/core.c
create mode 100644 drivers/nvme/host/nvme.h
create mode 100644 drivers/nvme/host/pci.c
create mode 100644 include/linux/nvme.h
create mode 100644 include/linux/uuid.h
create mode 100644 include/uapi/linux/uuid.h
--
2.20.1
_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox