nvme: apple: Add driver for Apple NVMe storage controller
authorMark Kettenis <kettenis@openbsd.org>
Sat, 22 Jan 2022 19:38:18 +0000 (20:38 +0100)
committerTom Rini <trini@konsulko.com>
Thu, 10 Feb 2022 21:44:23 +0000 (16:44 -0500)
commit50333c94f2de161cdfda2ef1c9845c3a28e7a5d6
tree3003d02c0aad4f9ec1a487565fdc5e8b597c5501
parent81fafbbeba3211ed60ac8aff41a2e1fcb9a40431
nvme: apple: Add driver for Apple NVMe storage controller

Add a driver for the NVMe storage controller integrated on
Apple SoCs.  This NVMe controller isn't PCI based and deviates
from the NVMe standard in its implementation of the command
submission queue and the integration of an NVMMU that needs
to be managed.  This commit tweaks the core NVMe code to
support the linear command submission queue implemented by
this controller.  But setting up the submission queue and
managing the NVMMU controller is handled by implementing
the driver ops that were added in an earlier commit.

Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
Tested-on: firefly-rk3399
Tested-by: Mark Kettenis <kettenis@openbsd.org>
Tested on: Macbook Air M1
Tested-by: Simon Glass <sjg@chromium.org>
configs/apple_m1_defconfig
drivers/nvme/Kconfig
drivers/nvme/Makefile
drivers/nvme/nvme_apple.c [new file with mode: 0644]