Commit 5bd2927a authored by Sven Peter's avatar Sven Peter
Browse files

nvme-apple: Add initial Apple SoC NVMe driver



Apple SoCs such as the M1 come with an embedded NVMe controller that
is not attached to any PCIe bus. Additionally, it doesn't conform
to the NVMe specification and requires a bunch of changes to command
submission and IOMMU configuration to work.

Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarSven Peter <sven@svenpeter.dev>
parent 82b96552
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1849,6 +1849,7 @@ F: drivers/i2c/busses/i2c-pasemi-core.c
F:	drivers/i2c/busses/i2c-pasemi-platform.c
F:	drivers/irqchip/irq-apple-aic.c
F:	drivers/mailbox/apple-mailbox.c
F:	drivers/nvme/host/apple.c
F:	drivers/pinctrl/pinctrl-apple-gpio.c
F:	drivers/soc/apple/*
F:	drivers/watchdog/apple_wdt.c
+13 −0
Original line number Diff line number Diff line
@@ -91,3 +91,16 @@ config NVME_TCP
	  from https://github.com/linux-nvme/nvme-cli.

	  If unsure, say N.

config NVME_APPLE
	tristate "Apple ANS2 NVM Express host driver"
	depends on OF && BLOCK
	depends on APPLE_RTKIT && APPLE_SART
	depends on ARCH_APPLE || COMPILE_TEST
	select NVME_CORE
	help
	  This provides support for the NVMe controller embedded in Apple SoCs
	  such as the M1.

	  To compile this driver as a module, choose M here: the
	  module will be called nvme-apple.
+3 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ obj-$(CONFIG_NVME_FABRICS) += nvme-fabrics.o
obj-$(CONFIG_NVME_RDMA)			+= nvme-rdma.o
obj-$(CONFIG_NVME_FC)			+= nvme-fc.o
obj-$(CONFIG_NVME_TCP)			+= nvme-tcp.o
obj-$(CONFIG_NVME_APPLE)		+= nvme-apple.o

nvme-core-y				:= core.o ioctl.o constants.o
nvme-core-$(CONFIG_TRACING)		+= trace.o
@@ -25,3 +26,5 @@ nvme-rdma-y += rdma.o
nvme-fc-y				+= fc.o

nvme-tcp-y				+= tcp.o

nvme-apple-y				+= apple.o
+1593 −0

File added.

Preview size limit exceeded, changes collapsed.