
On Thu, Aug 10, 2017 at 09:49:42AM +0800, Bin Meng wrote:
Hi Tom,
On Thu, Aug 10, 2017 at 9:31 AM, Tom Rini trini@konsulko.com wrote:
On Thu, Aug 10, 2017 at 06:40:57AM +0800, Bin Meng wrote:
Hi Tom,
On Thu, Aug 3, 2017 at 5:30 PM, Bin Meng bmeng.cn@gmail.com wrote:
This series adds NVM Express driver support to U-Boot.
This series is based on previous RFC v2 patchset [1][2] done by Zhikang Zhang and Wenbin Song, as well as Jon Nettleton's fixes [3] on top of the RFC v1.
The patches are organized in a way that meets the requirement of upstream. Jon's fixes were squashed/integrated with a proper order in this series.
The original RFC driver was cleaned up a lot, to remove the compilation limitation on non-ARMv8 architecture (including a header file from armv8), drop the board_r.c modification, drop unnecessary PCI configuration space initialization, add 32-bit architecture support of readq/writeq operations, eliminate compiler warnings, as well as coding convention clean up, plus a fix to a bug that is exposed by QEMU platform.
Tested with an Intel SSD 750 series NVMe 400GB card, a Plextor NVMe SSD M8Pe Series 256GB card, on Intel Crown Bay board, as well as QEMU x86 emulation platform.
This series is available at u-boot-x86/nvme-working for testing.
[1] http://patchwork.ozlabs.org/patch/753088/ [2] http://patchwork.ozlabs.org/patch/753089/ [3] http://patchwork.ozlabs.org/patch/794909/
Bin Meng (2): nvme: Handle zero Maximum Data Transfer Size (MDTS) x86: qemu: Enable NVMe driver
Jon Nettleton (2): nvme: Detect devices that are class Storage Express nvme: Fix number of blocks detection
Zhikang Zhang (4): dm: blk: part: Add UCLASS_NVME and IF_TYPE_NVME nvme: Add NVM Express driver support nvme: Add show routine to print detailed information nvme: Add nvme commands
cmd/Kconfig | 7 + cmd/Makefile | 1 + cmd/nvme.c | 197 +++++++++++ configs/qemu-x86_defconfig | 1 + disk/part.c | 6 +- doc/README.nvme | 86 +++++ drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/block/blk-uclass.c | 2 + drivers/nvme/Kconfig | 12 + drivers/nvme/Makefile | 7 + drivers/nvme/nvme-uclass.c | 62 ++++ drivers/nvme/nvme.c | 860 +++++++++++++++++++++++++++++++++++++++++++++ drivers/nvme/nvme.h | 717 +++++++++++++++++++++++++++++++++++++ drivers/nvme/nvme_show.c | 127 +++++++ include/blk.h | 1 + include/dm/uclass-id.h | 1 + include/nvme.h | 82 +++++ include/pci_ids.h | 1 + 19 files changed, 2172 insertions(+), 1 deletion(-) create mode 100644 cmd/nvme.c create mode 100644 doc/README.nvme create mode 100644 drivers/nvme/Kconfig create mode 100644 drivers/nvme/Makefile create mode 100644 drivers/nvme/nvme-uclass.c create mode 100644 drivers/nvme/nvme.c create mode 100644 drivers/nvme/nvme.h create mode 100644 drivers/nvme/nvme_show.c create mode 100644 include/nvme.h
Do you think this NVMe support can be included in 2017.09? If yes (and no other review comments from the list), I can apply and for you to pull via the x86 tree.
I've reviewed it, and things look good. I'll pick it up in a day or two. My question now is, can this also be enabled for sandbox, given that we have PCI there? Thanks!
Thanks for the review! I've reassigned the patches to you in the patchwork.
For the sandbox, I believe you want this driver to be included for build testing? I think it can be enabled on sandbox, but I have not tried that yet.
Build testing and coverity coverage to start with. A follow up (that would require some work in places) would be adding test.py tests of some sort.