<feed xmlns='http://www.w3.org/2005/Atom'>
<title>u-boot.git/drivers/nvme, branch v2026.07</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/u-boot.git/atom/drivers/nvme?h=v2026.07</id>
<link rel='self' href='http://cgit.235523.xyz/u-boot.git/atom/drivers/nvme?h=v2026.07'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/'/>
<updated>2026-06-03T16:22:18Z</updated>
<entry>
<title>drivers: nvme: Log I/O timeouts</title>
<updated>2026-06-03T16:22:18Z</updated>
<author>
<name>Denis Mukhin</name>
<email>dmukhin@ford.com</email>
</author>
<published>2026-05-29T03:44:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=389363d287585d8135a554c4419a4f580346b9f8'/>
<id>urn:sha1:389363d287585d8135a554c4419a4f580346b9f8</id>
<content type='text'>
Current code silently swallows any timed-out commands scheduled
to NVMe. Log those to be able to debug any potential problems with
the NVMe hardware/firmware.

Signed-off-by: Denis Mukhin &lt;dmukhin@ford.com&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Reviewed-by: Simon Glass &lt;sjg@chromium.org&gt;
Link: https://patch.msgid.link/20260529034441.2075305-2-dmukhin@ford.com
Signed-off-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
</content>
</entry>
<entry>
<title>nvme: free prp_pool on nvme_init() failure paths</title>
<updated>2026-05-28T10:56:52Z</updated>
<author>
<name>Prashant Kamble</name>
<email>prashant.kamble223@gmail.com</email>
</author>
<published>2026-05-24T14:57:16Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=11e056e3207d3b4eabebb1a7630b0195ee9eb5ee'/>
<id>urn:sha1:11e056e3207d3b4eabebb1a7630b0195ee9eb5ee</id>
<content type='text'>
nvme_init() allocates prp_pool after configuring the admin queue,
but some later error paths return without freeing it.

Free prp_pool before freeing the queue array in the failure paths
after nvme_setup_io_queues() and namespace ID buffer allocation.

This fixes a memory leak during NVMe initialization failures.

Signed-off-by: Prashant Kamble &lt;prashant.kamble223@gmail.com&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Link: https://patch.msgid.link/20260524145721.9206-1-prashant.kamble223@gmail.com
Signed-off-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
</content>
</entry>
<entry>
<title>nvme: avoid deleting uncreated queues</title>
<updated>2026-05-28T10:56:23Z</updated>
<author>
<name>Prashant Kamble</name>
<email>prashant.kamble223@gmail.com</email>
</author>
<published>2026-05-24T15:47:14Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=61280341e926aee1787d9aedb358a43fad96e787'/>
<id>urn:sha1:61280341e926aee1787d9aedb358a43fad96e787</id>
<content type='text'>
nvme_create_queue() may issue Delete CQ or Delete SQ
commands even when the corresponding queue creation
failed.

Avoid sending delete commands for queues that were never
successfully created.

Signed-off-by: Prashant Kamble &lt;prashant.kamble223@gmail.com&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Link: https://patch.msgid.link/20260524154718.16381-1-prashant.kamble223@gmail.com
Signed-off-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
</content>
</entry>
<entry>
<title>nvme: fix dcache invalidation range in identify command</title>
<updated>2026-05-28T10:56:02Z</updated>
<author>
<name>Prashant Kamble</name>
<email>prashant.kamble223@gmail.com</email>
</author>
<published>2026-05-24T10:06:21Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=29c40bb2a13ed1c294497044e2299cc0a511ce32'/>
<id>urn:sha1:29c40bb2a13ed1c294497044e2299cc0a511ce32</id>
<content type='text'>
When the identify buffer crosses a page boundary, PRP2 is used
and dma_addr is advanced to the second page:

    dma_addr += (page_size - offset);

The subsequent invalidate_dcache_range() calls then use the
modified dma_addr instead of the original buffer start address.

As a result, the beginning of the identify buffer is not
invalidated and the invalidation range extends past the end of
the buffer.

Fix this by preserving the original DMA buffer address for cache
invalidation.

Suggested-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Signed-off-by: Prashant Kamble &lt;prashant.kamble223@gmail.com&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Link: https://patch.msgid.link/20260524100625.11135-1-prashant.kamble223@gmail.com
Signed-off-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
</content>
</entry>
<entry>
<title>nvme: Fix PRP list pointer arithmetic for chained transfers</title>
<updated>2026-05-20T07:51:44Z</updated>
<author>
<name>Prashant Kamble</name>
<email>prashant.kamble223@gmail.com</email>
</author>
<published>2026-05-18T02:25:35Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=4f510505988928e129e109811587c4a00d28ec56'/>
<id>urn:sha1:4f510505988928e129e109811587c4a00d28ec56</id>
<content type='text'>
The PRP setup code advances prp_pool using u64 pointer
arithmetic:

        prp_pool += page_size;

This increments the pointer by page_size * sizeof(u64)
bytes instead of page_size bytes, resulting in invalid
PRP list addresses when multiple PRP list pages are
required.

The issue becomes visible for large transfers, typically
above 2 MiB when MDTS &gt; 9.

Fix it by using byte-wise pointer arithmetic when
advancing to the next PRP list page.

Signed-off-by: Prashant Kamble &lt;prashant.kamble223@gmail.com&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Link: https://patch.msgid.link/20260518022535.17197-1-prashant.kamble223@gmail.com
Signed-off-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
</content>
</entry>
<entry>
<title>nvme: Staticize and constify driver ops</title>
<updated>2026-05-20T07:44:37Z</updated>
<author>
<name>Marek Vasut</name>
<email>marek.vasut+renesas@mailbox.org</email>
</author>
<published>2026-05-08T12:21:21Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=4e91d9ff3324866d5cdfc0bc73e3382ce6fcc3d7'/>
<id>urn:sha1:4e91d9ff3324866d5cdfc0bc73e3382ce6fcc3d7</id>
<content type='text'>
Set the ops structure as static const. The structure is not accessible
from outside of this driver and is not going to be modified at runtime.

Signed-off-by: Marek Vasut &lt;marek.vasut+renesas@mailbox.org&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Link: https://patch.msgid.link/20260508122128.512798-1-marek.vasut+renesas@mailbox.org
Signed-off-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
</content>
</entry>
<entry>
<title>nvme: apple: Check memalign return value</title>
<updated>2026-05-20T07:44:37Z</updated>
<author>
<name>Francois Berder</name>
<email>fberder@outlook.fr</email>
</author>
<published>2026-05-09T20:13:31Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=63f0f19803ee28a3612dfbef719ae7bac5143eef'/>
<id>urn:sha1:63f0f19803ee28a3612dfbef719ae7bac5143eef</id>
<content type='text'>
memalign returns NULL if it fails.
This commit ensures that we handle this failure before
filling the buffer with 0s.

Signed-off-by: Francois Berder &lt;fberder@outlook.fr&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Link: https://patch.msgid.link/BESP194MB280542535B098A33C8A815EEDA3A2@BESP194MB2805.EURP194.PROD.OUTLOOK.COM
Signed-off-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
</content>
</entry>
<entry>
<title>nvme: fix command ID wraparound handling</title>
<updated>2026-05-20T07:44:37Z</updated>
<author>
<name>Prashant Kamble</name>
<email>prashant.kamble223@gmail.com</email>
</author>
<published>2026-05-18T06:08:44Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=d6eb327828a384c3bf325de05633a77f66688f53'/>
<id>urn:sha1:d6eb327828a384c3bf325de05633a77f66688f53</id>
<content type='text'>
nvme_get_cmd_id() returns 0 after cmdid reaches USHRT_MAX,
but fails to reset cmdid itself. As a result, all subsequent
calls keep returning 0 indefinitely.

Reset cmdid when wraparound occurs so command IDs continue
incrementing correctly.

Signed-off-by: Prashant Kamble &lt;prashant.kamble223@gmail.com&gt;
Reviewed-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
Link: https://patch.msgid.link/20260518060915.45607-1-prashant.kamble223@gmail.com
Signed-off-by: Neil Armstrong &lt;neil.armstrong@linaro.org&gt;
</content>
</entry>
<entry>
<title>arm: apple: Switch to board based text env</title>
<updated>2026-05-12T18:08:15Z</updated>
<author>
<name>Janne Grunau</name>
<email>j@jannau.net</email>
</author>
<published>2026-04-30T22:31:16Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=0f0ff73bac5dc43f8fe336f2828900035e260f1a'/>
<id>urn:sha1:0f0ff73bac5dc43f8fe336f2828900035e260f1a</id>
<content type='text'>
The main use case for u-boot on Apple silicon based devices is to
provide an EFI based bootloader for operating systems. This uses a
generic u-boot image with DTBs passed from an earlier boot loader
(m1n1). Use the generic board name "mac" for this purpose.

Signed-off-by: Janne Grunau &lt;j@jannau.net&gt;
</content>
</entry>
<entry>
<title>nvme: apple: add "apple,t8103-nvme-ans2" compatible</title>
<updated>2026-05-12T18:07:49Z</updated>
<author>
<name>Janne Grunau</name>
<email>j@jannau.net</email>
</author>
<published>2026-04-30T21:28:36Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/u-boot.git/commit/?id=29080b2a9968437da4f53e38010c48c038a22991'/>
<id>urn:sha1:29080b2a9968437da4f53e38010c48c038a22991</id>
<content type='text'>
After discussion with the devicetree maintainers we agreed to not extend
lists with the generic compatible "apple,nvme-ans2" anymore [1]. Add
"apple,t8103-nvme-ans2" as fallback compatible as this is the SoC the
driver and bindings were originally written for.
The t602x (M2 Pro/Max/Ultra) devicetrees submitted in [2] use this
compatible as fallback instead of "apple,t8103-nvme-ans2".

Link: https://lore.kernel.org/asahi/12ab93b7-1fc2-4ce0-926e-c8141cfe81bf@kernel.org/ [1]
Link: https://lore.kernel.org/asahi/20250828-dt-apple-t6020-v1-0-507ba4c4b98e@jannau.net/ [2]
Signed-off-by: Janne Grunau &lt;j@jannau.net&gt;
Acked-by: Mark Kettenis &lt;kettenis@openbsd.org&gt;
</content>
</entry>
</feed>
