mirror of
https://github.com/home-assistant/operating-system.git
synced 2025-07-28 15:36:29 +00:00
Bump U-Boot to 2022.01 (#1761)
This commit is contained in:
parent
0f4016c180
commit
b0bbe70315
@ -1,5 +1,5 @@
|
||||
From e18419a214ba872d14462354886148f976312e3c Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <e18419a214ba872d14462354886148f976312e3c.1632758899.git.stefan@agner.ch>
|
||||
From 966cd1782632bc8279667955ec315e93c89495e6 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch>
|
||||
From: Pascal Vizeli <pvizeli@syshack.ch>
|
||||
Date: Fri, 24 Apr 2020 12:41:50 +0000
|
||||
Subject: [PATCH 1/2] SPL: modify load address of U-Boot
|
||||
@ -15,23 +15,23 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/configs/tinker-rk3288_defconfig b/configs/tinker-rk3288_defconfig
|
||||
index 3ac314ab89..67ca98c383 100644
|
||||
index a9c9a122f6..b839fdb570 100644
|
||||
--- a/configs/tinker-rk3288_defconfig
|
||||
+++ b/configs/tinker-rk3288_defconfig
|
||||
@@ -88,3 +88,4 @@ CONFIG_VIDEO_ROCKCHIP=y
|
||||
@@ -92,3 +92,4 @@ CONFIG_VIDEO_ROCKCHIP=y
|
||||
CONFIG_DISPLAY_ROCKCHIP_HDMI=y
|
||||
CONFIG_CMD_DHRYSTONE=y
|
||||
CONFIG_ERRNO_STR=y
|
||||
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x2000
|
||||
diff --git a/configs/tinker-s-rk3288_defconfig b/configs/tinker-s-rk3288_defconfig
|
||||
index 35e84b7088..93cfe4f094 100644
|
||||
index f367c9370f..c52b0753ec 100644
|
||||
--- a/configs/tinker-s-rk3288_defconfig
|
||||
+++ b/configs/tinker-s-rk3288_defconfig
|
||||
@@ -90,3 +90,4 @@ CONFIG_DISPLAY_ROCKCHIP_HDMI=y
|
||||
@@ -94,3 +94,4 @@ CONFIG_DISPLAY_ROCKCHIP_HDMI=y
|
||||
CONFIG_CONSOLE_SCROLL_LINES=10
|
||||
CONFIG_CMD_DHRYSTONE=y
|
||||
CONFIG_ERRNO_STR=y
|
||||
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x2000
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 4c09e7741c219ef28be912e97a986b6402290c9b Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <4c09e7741c219ef28be912e97a986b6402290c9b.1632758899.git.stefan@agner.ch>
|
||||
In-Reply-To: <e18419a214ba872d14462354886148f976312e3c.1632758899.git.stefan@agner.ch>
|
||||
References: <e18419a214ba872d14462354886148f976312e3c.1632758899.git.stefan@agner.ch>
|
||||
From 98674c65a6595e7ac554f7ec9d6f0228556756f6 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <98674c65a6595e7ac554f7ec9d6f0228556756f6.1645627366.git.stefan@agner.ch>
|
||||
In-Reply-To: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch>
|
||||
References: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch>
|
||||
From: Pascal Vizeli <pvizeli@syshack.ch>
|
||||
Date: Fri, 24 Apr 2020 11:37:55 +0000
|
||||
Subject: [PATCH 2/2] pmic: enable LDO2 vcc33_mipi at bootup
|
||||
@ -64,5 +64,5 @@ index f85209c649..6fa1bb0c66 100644
|
||||
+}
|
||||
+#endif
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
From ff82d04354784cd982ab1a912c08d3eb22f82d13 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <ff82d04354784cd982ab1a912c08d3eb22f82d13.1632758701.git.stefan@agner.ch>
|
||||
From 5d2feca5947f84259bae41730ce54231578b37be Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <5d2feca5947f84259bae41730ce54231578b37be.1645627508.git.stefan@agner.ch>
|
||||
From: Neil Armstrong <narmstrong@baylibre.com>
|
||||
Date: Mon, 2 Sep 2019 15:42:04 +0200
|
||||
Subject: [PATCH] HACK: mmc: meson-gx: limit to 24MHz
|
||||
@ -23,5 +23,5 @@ index fcf4f03d1e..6ded4b619b 100644
|
||||
cfg->name = dev->name;
|
||||
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
From d7ec084799b394cc02395829dc97019c8834e944 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
From 24b77460dbfa2497ceb7a1611bf28b6eb88a1d74 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
|
||||
From: Pascal Vizeli <pvizeli@syshack.ch>
|
||||
Date: Tue, 10 Dec 2019 09:48:46 +0000
|
||||
Subject: [PATCH 01/10] rpi: Use CONFIG_OF_BOARD instead of CONFIG_EMBED
|
||||
Subject: [PATCH 1/5] rpi: Use CONFIG_OF_BOARD instead of CONFIG_EMBED
|
||||
|
||||
Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
|
||||
---
|
||||
@ -14,10 +14,10 @@ Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
|
||||
5 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig
|
||||
index d17e102052..e5cd7d4913 100644
|
||||
index 6d76d12910..ebc2be002f 100644
|
||||
--- a/configs/rpi_0_w_defconfig
|
||||
+++ b/configs/rpi_0_w_defconfig
|
||||
@@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y
|
||||
@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_USB=y
|
||||
CONFIG_CMD_FS_UUID=y
|
||||
@ -27,10 +27,10 @@ index d17e102052..e5cd7d4913 100644
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||
diff --git a/configs/rpi_2_defconfig b/configs/rpi_2_defconfig
|
||||
index 8b8affb777..8bda6e6aa9 100644
|
||||
index 1931607132..164562cd57 100644
|
||||
--- a/configs/rpi_2_defconfig
|
||||
+++ b/configs/rpi_2_defconfig
|
||||
@@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y
|
||||
@@ -19,7 +19,7 @@ CONFIG_CMD_GPIO=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_USB=y
|
||||
CONFIG_CMD_FS_UUID=y
|
||||
@ -40,10 +40,10 @@ index 8b8affb777..8bda6e6aa9 100644
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||
diff --git a/configs/rpi_3_32b_defconfig b/configs/rpi_3_32b_defconfig
|
||||
index b867b7fa7b..370495c9e4 100644
|
||||
index 060fd36da5..78448bbbfe 100644
|
||||
--- a/configs/rpi_3_32b_defconfig
|
||||
+++ b/configs/rpi_3_32b_defconfig
|
||||
@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y
|
||||
@@ -20,7 +20,7 @@ CONFIG_CMD_GPIO=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_USB=y
|
||||
CONFIG_CMD_FS_UUID=y
|
||||
@ -53,10 +53,10 @@ index b867b7fa7b..370495c9e4 100644
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||
diff --git a/configs/rpi_3_defconfig b/configs/rpi_3_defconfig
|
||||
index 3cebd657da..bb0a7ebcd5 100644
|
||||
index 8016fe1d55..b49dd9af98 100644
|
||||
--- a/configs/rpi_3_defconfig
|
||||
+++ b/configs/rpi_3_defconfig
|
||||
@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y
|
||||
@@ -19,7 +19,7 @@ CONFIG_CMD_GPIO=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_USB=y
|
||||
CONFIG_CMD_FS_UUID=y
|
||||
@ -66,10 +66,10 @@ index 3cebd657da..bb0a7ebcd5 100644
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||
diff --git a/configs/rpi_defconfig b/configs/rpi_defconfig
|
||||
index af2189b8fe..f6517eb52a 100644
|
||||
index 8acf04d0e4..5d5e700224 100644
|
||||
--- a/configs/rpi_defconfig
|
||||
+++ b/configs/rpi_defconfig
|
||||
@@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y
|
||||
@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y
|
||||
CONFIG_CMD_MMC=y
|
||||
CONFIG_CMD_USB=y
|
||||
CONFIG_CMD_FS_UUID=y
|
||||
@ -79,5 +79,5 @@ index af2189b8fe..f6517eb52a 100644
|
||||
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
|
||||
CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
From 3d471d3be58ccd899d29bf57ad669e7a51d0b47d Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <3d471d3be58ccd899d29bf57ad669e7a51d0b47d.1633601057.git.stefan@agner.ch>
|
||||
In-Reply-To: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
References: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
From c942eb452c1c31fe6259178b6e9fea5456d7fb9c Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <c942eb452c1c31fe6259178b6e9fea5456d7fb9c.1645627172.git.stefan@agner.ch>
|
||||
In-Reply-To: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
|
||||
References: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Mon, 27 Sep 2021 12:28:04 +0200
|
||||
Subject: [PATCH 02/10] usb: xhci: reset endpoint on USB stall
|
||||
Subject: [PATCH 2/5] usb: xhci: reset endpoint on USB stall
|
||||
|
||||
There are devices which cause a USB stall when trying to read strings.
|
||||
Specifically Arduino Mega R3 stalls when trying to read the product
|
||||
@ -83,5 +83,5 @@ index 35bd5cd29e..430823cb9d 100644
|
||||
/* Invalidate buffer to make it available to usb-core */
|
||||
if (length > 0)
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
From 698fc7c39fb3265ccb9cc7f3bb08432b76f3cdf5 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <698fc7c39fb3265ccb9cc7f3bb08432b76f3cdf5.1633601057.git.stefan@agner.ch>
|
||||
In-Reply-To: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
References: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
From ae45864457182fcaa67911e1e3d8db242dff3646 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <ae45864457182fcaa67911e1e3d8db242dff3646.1645627172.git.stefan@agner.ch>
|
||||
In-Reply-To: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
|
||||
References: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Tue, 29 Dec 2020 23:34:52 +0100
|
||||
Subject: [PATCH 03/10] rpi: add NVMe to boot order
|
||||
Subject: [PATCH 3/5] rpi: add NVMe to boot order
|
||||
|
||||
The Compute Module 4 I/O Board can support a NVMe. Add NVMe to the boot
|
||||
order.
|
||||
@ -15,10 +15,10 @@ Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/include/configs/rpi.h b/include/configs/rpi.h
|
||||
index 522b41c02d..9b46203b5b 100644
|
||||
index 4c5c1ac31f..e24c94c7d2 100644
|
||||
--- a/include/configs/rpi.h
|
||||
+++ b/include/configs/rpi.h
|
||||
@@ -169,6 +169,12 @@
|
||||
@@ -143,6 +143,12 @@
|
||||
#define BOOT_TARGET_MMC(func)
|
||||
#endif
|
||||
|
||||
@ -31,7 +31,7 @@ index 522b41c02d..9b46203b5b 100644
|
||||
#if CONFIG_IS_ENABLED(CMD_USB)
|
||||
#define BOOT_TARGET_USB(func) func(USB, usb, 0)
|
||||
#else
|
||||
@@ -189,6 +195,7 @@
|
||||
@@ -163,6 +169,7 @@
|
||||
|
||||
#define BOOT_TARGET_DEVICES(func) \
|
||||
BOOT_TARGET_MMC(func) \
|
||||
@ -40,5 +40,5 @@ index 522b41c02d..9b46203b5b 100644
|
||||
BOOT_TARGET_PXE(func) \
|
||||
BOOT_TARGET_DHCP(func)
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
From fdacde2c24e052938cbb54d15dabc541304d8f40 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <fdacde2c24e052938cbb54d15dabc541304d8f40.1633601057.git.stefan@agner.ch>
|
||||
In-Reply-To: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
References: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
From 3a13ff4eb509e8e80a52ae45c9a5573e745803c3 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <3a13ff4eb509e8e80a52ae45c9a5573e745803c3.1645627172.git.stefan@agner.ch>
|
||||
In-Reply-To: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
|
||||
References: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 23 Sep 2021 23:43:31 +0200
|
||||
Subject: [PATCH 04/10] Revert "nvme: Correct the prps per page calculation
|
||||
Subject: [PATCH 4/5] Revert "nvme: Correct the prps per page calculation
|
||||
method"
|
||||
|
||||
This reverts commit 859b33c948945f7904f60a2c12a3792d356d51ad.
|
||||
@ -27,7 +27,7 @@ Cc: Wesley Sheng <wesleyshenggit@sina.com>
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
|
||||
index f6465ea7f4..1ae3001a90 100644
|
||||
index 3c529a2fce..3bda491e12 100644
|
||||
--- a/drivers/nvme/nvme.c
|
||||
+++ b/drivers/nvme/nvme.c
|
||||
@@ -81,7 +81,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
|
||||
@ -40,5 +40,5 @@ index f6465ea7f4..1ae3001a90 100644
|
||||
|
||||
length -= (page_size - offset);
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
||||
|
@ -1,51 +0,0 @@
|
||||
From d7a7036c90d0f65c8345b9f75ac1e817c48c998f Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <d7a7036c90d0f65c8345b9f75ac1e817c48c998f.1633601057.git.stefan@agner.ch>
|
||||
In-Reply-To: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
References: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 23 Sep 2021 23:52:44 +0200
|
||||
Subject: [PATCH 05/10] nvme: improve readability of nvme_setup_prps()
|
||||
|
||||
Improve readability by introducing consts, reuse consts where
|
||||
appropriate and adding variables with discriptive name.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
drivers/nvme/nvme.c | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
|
||||
index 1ae3001a90..677e66b1bb 100644
|
||||
--- a/drivers/nvme/nvme.c
|
||||
+++ b/drivers/nvme/nvme.c
|
||||
@@ -76,12 +76,12 @@ static int nvme_wait_ready(struct nvme_dev *dev, bool enabled)
|
||||
static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
|
||||
int total_len, u64 dma_addr)
|
||||
{
|
||||
- u32 page_size = dev->page_size;
|
||||
+ const u32 page_size = dev->page_size;
|
||||
+ const u32 prps_per_page = (page_size >> 3) - 1;
|
||||
int offset = dma_addr & (page_size - 1);
|
||||
u64 *prp_pool;
|
||||
int length = total_len;
|
||||
int i, nprps;
|
||||
- u32 prps_per_page = (page_size >> 3) - 1;
|
||||
u32 num_pages;
|
||||
|
||||
length -= (page_size - offset);
|
||||
@@ -119,9 +119,9 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
|
||||
prp_pool = dev->prp_pool;
|
||||
i = 0;
|
||||
while (nprps) {
|
||||
- if (i == ((page_size >> 3) - 1)) {
|
||||
- *(prp_pool + i) = cpu_to_le64((ulong)prp_pool +
|
||||
- page_size);
|
||||
+ if (i == prps_per_page) {
|
||||
+ u64 next_prp_list = (u64)prp_pool + page_size;
|
||||
+ *(prp_pool + i) = cpu_to_le64(next_prp_list);
|
||||
i = 0;
|
||||
prp_pool += page_size;
|
||||
}
|
||||
--
|
||||
2.33.0
|
||||
|
@ -1,10 +1,10 @@
|
||||
From 2b09a341c0e7e508565926c1b6f383bdd5259d8b Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <2b09a341c0e7e508565926c1b6f383bdd5259d8b.1633601057.git.stefan@agner.ch>
|
||||
In-Reply-To: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
References: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
From b00922ee48987ef91f0ca2aa3a66ad22c6c83d57 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <b00922ee48987ef91f0ca2aa3a66ad22c6c83d57.1645627172.git.stefan@agner.ch>
|
||||
In-Reply-To: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
|
||||
References: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 7 Oct 2021 12:02:39 +0200
|
||||
Subject: [PATCH 10/10] usb: xhci-brcm: Make driver compatible with downstream
|
||||
Subject: [PATCH 5/5] usb: xhci-brcm: Make driver compatible with downstream
|
||||
device tree
|
||||
|
||||
The downstream device tree uses just "generic-xhci" as compatible
|
||||
@ -29,5 +29,5 @@ index fe17924028..0c6938187b 100644
|
||||
};
|
||||
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
@ -1,263 +0,0 @@
|
||||
From 27a4d59876323a0e13807ac3614b01700b8cfe83 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <27a4d59876323a0e13807ac3614b01700b8cfe83.1633601057.git.stefan@agner.ch>
|
||||
In-Reply-To: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
References: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Thu, 23 Sep 2021 23:58:35 +0200
|
||||
Subject: [PATCH 06/10] nvme: Use pointer for CPU addressed buffers
|
||||
|
||||
Pass buffers which use CPU addressing as void pointers. This aligns with
|
||||
DMA APIs which use void pointers as argument. It will avoid unnecessary
|
||||
type casts when adding support bus address translations.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
drivers/nvme/nvme.c | 50 ++++++++++++++++++++--------------------
|
||||
drivers/nvme/nvme_show.c | 4 ++--
|
||||
include/nvme.h | 12 +++++-----
|
||||
3 files changed, 33 insertions(+), 33 deletions(-)
|
||||
|
||||
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
|
||||
index 677e66b1bb..4c4dc7cc4d 100644
|
||||
--- a/drivers/nvme/nvme.c
|
||||
+++ b/drivers/nvme/nvme.c
|
||||
@@ -74,11 +74,11 @@ static int nvme_wait_ready(struct nvme_dev *dev, bool enabled)
|
||||
}
|
||||
|
||||
static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
|
||||
- int total_len, u64 dma_addr)
|
||||
+ int total_len, void *buffer)
|
||||
{
|
||||
const u32 page_size = dev->page_size;
|
||||
const u32 prps_per_page = (page_size >> 3) - 1;
|
||||
- int offset = dma_addr & (page_size - 1);
|
||||
+ int offset = (uintptr_t)buffer & (page_size - 1);
|
||||
u64 *prp_pool;
|
||||
int length = total_len;
|
||||
int i, nprps;
|
||||
@@ -92,10 +92,10 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
|
||||
}
|
||||
|
||||
if (length)
|
||||
- dma_addr += (page_size - offset);
|
||||
+ buffer += (page_size - offset);
|
||||
|
||||
if (length <= page_size) {
|
||||
- *prp2 = dma_addr;
|
||||
+ *prp2 = (u64)buffer;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -125,11 +125,11 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
|
||||
i = 0;
|
||||
prp_pool += page_size;
|
||||
}
|
||||
- *(prp_pool + i++) = cpu_to_le64(dma_addr);
|
||||
- dma_addr += page_size;
|
||||
+ *(prp_pool + i++) = cpu_to_le64((u64)buffer);
|
||||
+ buffer += page_size;
|
||||
nprps--;
|
||||
}
|
||||
- *prp2 = (ulong)dev->prp_pool;
|
||||
+ *prp2 = (u64)dev->prp_pool;
|
||||
|
||||
flush_dcache_range((ulong)dev->prp_pool, (ulong)dev->prp_pool +
|
||||
dev->prp_entry_num * sizeof(u64));
|
||||
@@ -450,42 +450,42 @@ static int nvme_alloc_sq(struct nvme_dev *dev, u16 qid,
|
||||
}
|
||||
|
||||
int nvme_identify(struct nvme_dev *dev, unsigned nsid,
|
||||
- unsigned cns, dma_addr_t dma_addr)
|
||||
+ unsigned int cns, void *buffer)
|
||||
{
|
||||
struct nvme_command c;
|
||||
u32 page_size = dev->page_size;
|
||||
- int offset = dma_addr & (page_size - 1);
|
||||
+ int offset = (uintptr_t)buffer & (page_size - 1);
|
||||
int length = sizeof(struct nvme_id_ctrl);
|
||||
int ret;
|
||||
|
||||
memset(&c, 0, sizeof(c));
|
||||
c.identify.opcode = nvme_admin_identify;
|
||||
c.identify.nsid = cpu_to_le32(nsid);
|
||||
- c.identify.prp1 = cpu_to_le64(dma_addr);
|
||||
+ c.identify.prp1 = cpu_to_le64((u64)buffer);
|
||||
|
||||
length -= (page_size - offset);
|
||||
if (length <= 0) {
|
||||
c.identify.prp2 = 0;
|
||||
} else {
|
||||
- dma_addr += (page_size - offset);
|
||||
- c.identify.prp2 = cpu_to_le64(dma_addr);
|
||||
+ buffer += (page_size - offset);
|
||||
+ c.identify.prp2 = cpu_to_le64((u64)buffer);
|
||||
}
|
||||
|
||||
c.identify.cns = cpu_to_le32(cns);
|
||||
|
||||
- invalidate_dcache_range(dma_addr,
|
||||
- dma_addr + sizeof(struct nvme_id_ctrl));
|
||||
+ invalidate_dcache_range((uintptr_t)buffer,
|
||||
+ (uintptr_t)buffer + sizeof(struct nvme_id_ctrl));
|
||||
|
||||
ret = nvme_submit_admin_cmd(dev, &c, NULL);
|
||||
if (!ret)
|
||||
- invalidate_dcache_range(dma_addr,
|
||||
- dma_addr + sizeof(struct nvme_id_ctrl));
|
||||
+ invalidate_dcache_range((uintptr_t)buffer,
|
||||
+ (uintptr_t)buffer + sizeof(struct nvme_id_ctrl));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
|
||||
- dma_addr_t dma_addr, u32 *result)
|
||||
+ void *buffer, u32 *result)
|
||||
{
|
||||
struct nvme_command c;
|
||||
int ret;
|
||||
@@ -493,7 +493,7 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
|
||||
memset(&c, 0, sizeof(c));
|
||||
c.features.opcode = nvme_admin_get_features;
|
||||
c.features.nsid = cpu_to_le32(nsid);
|
||||
- c.features.prp1 = cpu_to_le64(dma_addr);
|
||||
+ c.features.prp1 = cpu_to_le64((u64)buffer);
|
||||
c.features.fid = cpu_to_le32(fid);
|
||||
|
||||
ret = nvme_submit_admin_cmd(dev, &c, result);
|
||||
@@ -513,13 +513,13 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
|
||||
}
|
||||
|
||||
int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11,
|
||||
- dma_addr_t dma_addr, u32 *result)
|
||||
+ void *buffer, u32 *result)
|
||||
{
|
||||
struct nvme_command c;
|
||||
|
||||
memset(&c, 0, sizeof(c));
|
||||
c.features.opcode = nvme_admin_set_features;
|
||||
- c.features.prp1 = cpu_to_le64(dma_addr);
|
||||
+ c.features.prp1 = cpu_to_le64((u64)buffer);
|
||||
c.features.fid = cpu_to_le32(fid);
|
||||
c.features.dword11 = cpu_to_le32(dword11);
|
||||
|
||||
@@ -570,7 +570,7 @@ static int nvme_set_queue_count(struct nvme_dev *dev, int count)
|
||||
u32 q_count = (count - 1) | ((count - 1) << 16);
|
||||
|
||||
status = nvme_set_features(dev, NVME_FEAT_NUM_QUEUES,
|
||||
- q_count, 0, &result);
|
||||
+ q_count, NULL, &result);
|
||||
|
||||
if (status < 0)
|
||||
return status;
|
||||
@@ -622,7 +622,7 @@ static int nvme_get_info_from_identify(struct nvme_dev *dev)
|
||||
if (!ctrl)
|
||||
return -ENOMEM;
|
||||
|
||||
- ret = nvme_identify(dev, 0, 1, (dma_addr_t)(long)ctrl);
|
||||
+ ret = nvme_identify(dev, 0, 1, ctrl);
|
||||
if (ret) {
|
||||
free(ctrl);
|
||||
return -EIO;
|
||||
@@ -708,7 +708,7 @@ static int nvme_blk_probe(struct udevice *udev)
|
||||
ns->dev = ndev;
|
||||
/* extract the namespace id from the block device name */
|
||||
ns->ns_id = trailing_strtol(udev->name);
|
||||
- if (nvme_identify(ndev, ns->ns_id, 0, (dma_addr_t)(long)id)) {
|
||||
+ if (nvme_identify(ndev, ns->ns_id, 0, id)) {
|
||||
free(id);
|
||||
return -EIO;
|
||||
}
|
||||
@@ -770,7 +770,7 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr,
|
||||
}
|
||||
|
||||
if (nvme_setup_prps(dev, &prp2,
|
||||
- lbas << ns->lba_shift, (ulong)buffer))
|
||||
+ lbas << ns->lba_shift, buffer))
|
||||
return -EIO;
|
||||
c.rw.slba = cpu_to_le64(slba);
|
||||
slba += lbas;
|
||||
@@ -889,7 +889,7 @@ static int nvme_probe(struct udevice *udev)
|
||||
char name[20];
|
||||
|
||||
memset(id, 0, sizeof(*id));
|
||||
- if (nvme_identify(ndev, i, 0, (dma_addr_t)(long)id)) {
|
||||
+ if (nvme_identify(ndev, i, 0, id)) {
|
||||
ret = -EIO;
|
||||
goto free_id;
|
||||
}
|
||||
diff --git a/drivers/nvme/nvme_show.c b/drivers/nvme/nvme_show.c
|
||||
index 15e459da1a..c30adfada5 100644
|
||||
--- a/drivers/nvme/nvme_show.c
|
||||
+++ b/drivers/nvme/nvme_show.c
|
||||
@@ -111,14 +111,14 @@ int nvme_print_info(struct udevice *udev)
|
||||
ALLOC_CACHE_ALIGN_BUFFER(char, buf_ctrl, sizeof(struct nvme_id_ctrl));
|
||||
struct nvme_id_ctrl *ctrl = (struct nvme_id_ctrl *)buf_ctrl;
|
||||
|
||||
- if (nvme_identify(dev, 0, 1, (dma_addr_t)(long)ctrl))
|
||||
+ if (nvme_identify(dev, 0, 1, ctrl))
|
||||
return -EIO;
|
||||
|
||||
print_optional_admin_cmd(le16_to_cpu(ctrl->oacs), ns->devnum);
|
||||
print_optional_nvm_cmd(le16_to_cpu(ctrl->oncs), ns->devnum);
|
||||
print_format_nvme_attributes(ctrl->fna, ns->devnum);
|
||||
|
||||
- if (nvme_identify(dev, ns->ns_id, 0, (dma_addr_t)(long)id))
|
||||
+ if (nvme_identify(dev, ns->ns_id, 0, id))
|
||||
return -EIO;
|
||||
|
||||
print_formats(id, ns);
|
||||
diff --git a/include/nvme.h b/include/nvme.h
|
||||
index 2cdf8ce320..8ff823cd81 100644
|
||||
--- a/include/nvme.h
|
||||
+++ b/include/nvme.h
|
||||
@@ -18,12 +18,12 @@ struct nvme_dev;
|
||||
* @dev: NVMe controller device
|
||||
* @nsid: 0 for controller, namespace id for namespace to identify
|
||||
* @cns: 1 for controller, 0 for namespace
|
||||
- * @dma_addr: dma buffer address to store the identify result
|
||||
+ * @buffer: dma buffer address to store the identify result
|
||||
* @return: 0 on success, -ETIMEDOUT on command execution timeout,
|
||||
* -EIO on command execution fails
|
||||
*/
|
||||
int nvme_identify(struct nvme_dev *dev, unsigned nsid,
|
||||
- unsigned cns, dma_addr_t dma_addr);
|
||||
+ unsigned int cns, void *buffer);
|
||||
|
||||
/**
|
||||
* nvme_get_features - retrieve the attributes of the feature specified
|
||||
@@ -33,13 +33,13 @@ int nvme_identify(struct nvme_dev *dev, unsigned nsid,
|
||||
* @dev: NVMe controller device
|
||||
* @fid: feature id to provide data
|
||||
* @nsid: namespace id the command applies to
|
||||
- * @dma_addr: data structure used as part of the specified feature
|
||||
+ * @buffer: data structure used as part of the specified feature
|
||||
* @result: command-specific result in the completion queue entry
|
||||
* @return: 0 on success, -ETIMEDOUT on command execution timeout,
|
||||
* -EIO on command execution fails
|
||||
*/
|
||||
int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
|
||||
- dma_addr_t dma_addr, u32 *result);
|
||||
+ void *buffer, u32 *result);
|
||||
|
||||
/**
|
||||
* nvme_set_features - specify the attributes of the feature indicated
|
||||
@@ -49,13 +49,13 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
|
||||
* @dev: NVMe controller device
|
||||
* @fid: feature id to provide data
|
||||
* @dword11: command-specific input parameter
|
||||
- * @dma_addr: data structure used as part of the specified feature
|
||||
+ * @buffer: data structure used as part of the specified feature
|
||||
* @result: command-specific result in the completion queue entry
|
||||
* @return: 0 on success, -ETIMEDOUT on command execution timeout,
|
||||
* -EIO on command execution fails
|
||||
*/
|
||||
int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11,
|
||||
- dma_addr_t dma_addr, u32 *result);
|
||||
+ void *buffer, u32 *result);
|
||||
|
||||
/**
|
||||
* nvme_scan_namespace - scan all namespaces attached to NVMe controllers
|
||||
--
|
||||
2.33.0
|
||||
|
@ -1,201 +0,0 @@
|
||||
From bdaf8f67fd33ae1d38011a2b6f9da4884ec11dd2 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <bdaf8f67fd33ae1d38011a2b6f9da4884ec11dd2.1633601057.git.stefan@agner.ch>
|
||||
In-Reply-To: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
References: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Fri, 24 Sep 2021 00:27:39 +0200
|
||||
Subject: [PATCH 07/10] nvme: translate virtual addresses into the bus's
|
||||
address space
|
||||
|
||||
So far we've been content with passing physical/CPU addresses when
|
||||
configuring memory addresses into NVMe controllers, but not all
|
||||
platforms have buses with transparent mappings. Specifically the
|
||||
Raspberry Pi 4 might introduce an offset to memory accesses incoming
|
||||
from its PCIe port.
|
||||
|
||||
Introduce nvme_virt_to_bus() and nvme_bus_to_virt() to cater with these
|
||||
limitations, and make sure we don't break non DM users.
|
||||
For devices where PCIe's view of host memory doesn't match the memory
|
||||
as seen by the CPU.
|
||||
|
||||
A similar change has been introduced for XHCI controller with
|
||||
commit 1a474559d90a ("xhci: translate virtual addresses into the bus's
|
||||
address space").
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
Series-to: bmeng.cn@gmail.com
|
||||
Series-cc: u-boot@lists.denx.de, nsaenz@kernel.org, m.szyprowski@samsung.com, mbrugger@suse.com, s.nawrocki@samsung.com
|
||||
Series-prefix: RFC
|
||||
---
|
||||
drivers/nvme/nvme.c | 32 ++++++++++++++++++--------------
|
||||
drivers/nvme/nvme.h | 15 +++++++++++++++
|
||||
2 files changed, 33 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
|
||||
index 4c4dc7cc4d..0b7082d71b 100644
|
||||
--- a/drivers/nvme/nvme.c
|
||||
+++ b/drivers/nvme/nvme.c
|
||||
@@ -95,7 +95,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
|
||||
buffer += (page_size - offset);
|
||||
|
||||
if (length <= page_size) {
|
||||
- *prp2 = (u64)buffer;
|
||||
+ *prp2 = nvme_virt_to_bus(dev, buffer);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -120,16 +120,16 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2,
|
||||
i = 0;
|
||||
while (nprps) {
|
||||
if (i == prps_per_page) {
|
||||
- u64 next_prp_list = (u64)prp_pool + page_size;
|
||||
- *(prp_pool + i) = cpu_to_le64(next_prp_list);
|
||||
+ u64 next = nvme_virt_to_bus(dev, prp_pool + page_size);
|
||||
+ *(prp_pool + i) = cpu_to_le64(next);
|
||||
i = 0;
|
||||
prp_pool += page_size;
|
||||
}
|
||||
- *(prp_pool + i++) = cpu_to_le64((u64)buffer);
|
||||
+ *(prp_pool + i++) = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
|
||||
buffer += page_size;
|
||||
nprps--;
|
||||
}
|
||||
- *prp2 = (u64)dev->prp_pool;
|
||||
+ *prp2 = nvme_virt_to_bus(dev, dev->prp_pool);
|
||||
|
||||
flush_dcache_range((ulong)dev->prp_pool, (ulong)dev->prp_pool +
|
||||
dev->prp_entry_num * sizeof(u64));
|
||||
@@ -356,6 +356,7 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev)
|
||||
int result;
|
||||
u32 aqa;
|
||||
u64 cap = dev->cap;
|
||||
+ u64 dma_addr;
|
||||
struct nvme_queue *nvmeq;
|
||||
/* most architectures use 4KB as the page size */
|
||||
unsigned page_shift = 12;
|
||||
@@ -396,8 +397,10 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev)
|
||||
dev->ctrl_config |= NVME_CC_IOSQES | NVME_CC_IOCQES;
|
||||
|
||||
writel(aqa, &dev->bar->aqa);
|
||||
- nvme_writeq((ulong)nvmeq->sq_cmds, &dev->bar->asq);
|
||||
- nvme_writeq((ulong)nvmeq->cqes, &dev->bar->acq);
|
||||
+ dma_addr = nvme_virt_to_bus(dev, nvmeq->sq_cmds);
|
||||
+ nvme_writeq(dma_addr, &dev->bar->asq);
|
||||
+ dma_addr = nvme_virt_to_bus(dev, nvmeq->cqes);
|
||||
+ nvme_writeq(dma_addr, &dev->bar->acq);
|
||||
|
||||
result = nvme_enable_ctrl(dev);
|
||||
if (result)
|
||||
@@ -423,7 +426,7 @@ static int nvme_alloc_cq(struct nvme_dev *dev, u16 qid,
|
||||
|
||||
memset(&c, 0, sizeof(c));
|
||||
c.create_cq.opcode = nvme_admin_create_cq;
|
||||
- c.create_cq.prp1 = cpu_to_le64((ulong)nvmeq->cqes);
|
||||
+ c.create_cq.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, nvmeq->cqes));
|
||||
c.create_cq.cqid = cpu_to_le16(qid);
|
||||
c.create_cq.qsize = cpu_to_le16(nvmeq->q_depth - 1);
|
||||
c.create_cq.cq_flags = cpu_to_le16(flags);
|
||||
@@ -440,7 +443,7 @@ static int nvme_alloc_sq(struct nvme_dev *dev, u16 qid,
|
||||
|
||||
memset(&c, 0, sizeof(c));
|
||||
c.create_sq.opcode = nvme_admin_create_sq;
|
||||
- c.create_sq.prp1 = cpu_to_le64((ulong)nvmeq->sq_cmds);
|
||||
+ c.create_sq.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, nvmeq->sq_cmds));
|
||||
c.create_sq.sqid = cpu_to_le16(qid);
|
||||
c.create_sq.qsize = cpu_to_le16(nvmeq->q_depth - 1);
|
||||
c.create_sq.sq_flags = cpu_to_le16(flags);
|
||||
@@ -461,14 +464,14 @@ int nvme_identify(struct nvme_dev *dev, unsigned nsid,
|
||||
memset(&c, 0, sizeof(c));
|
||||
c.identify.opcode = nvme_admin_identify;
|
||||
c.identify.nsid = cpu_to_le32(nsid);
|
||||
- c.identify.prp1 = cpu_to_le64((u64)buffer);
|
||||
+ c.identify.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
|
||||
|
||||
length -= (page_size - offset);
|
||||
if (length <= 0) {
|
||||
c.identify.prp2 = 0;
|
||||
} else {
|
||||
buffer += (page_size - offset);
|
||||
- c.identify.prp2 = cpu_to_le64((u64)buffer);
|
||||
+ c.identify.prp2 = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
|
||||
}
|
||||
|
||||
c.identify.cns = cpu_to_le32(cns);
|
||||
@@ -493,7 +496,7 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid,
|
||||
memset(&c, 0, sizeof(c));
|
||||
c.features.opcode = nvme_admin_get_features;
|
||||
c.features.nsid = cpu_to_le32(nsid);
|
||||
- c.features.prp1 = cpu_to_le64((u64)buffer);
|
||||
+ c.features.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
|
||||
c.features.fid = cpu_to_le32(fid);
|
||||
|
||||
ret = nvme_submit_admin_cmd(dev, &c, result);
|
||||
@@ -519,7 +522,7 @@ int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11,
|
||||
|
||||
memset(&c, 0, sizeof(c));
|
||||
c.features.opcode = nvme_admin_set_features;
|
||||
- c.features.prp1 = cpu_to_le64((u64)buffer);
|
||||
+ c.features.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
|
||||
c.features.fid = cpu_to_le32(fid);
|
||||
c.features.dword11 = cpu_to_le32(dword11);
|
||||
|
||||
@@ -775,7 +778,7 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr,
|
||||
c.rw.slba = cpu_to_le64(slba);
|
||||
slba += lbas;
|
||||
c.rw.length = cpu_to_le16(lbas - 1);
|
||||
- c.rw.prp1 = cpu_to_le64((ulong)buffer);
|
||||
+ c.rw.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
|
||||
c.rw.prp2 = cpu_to_le64(prp2);
|
||||
status = nvme_submit_sync_cmd(dev->queues[NVME_IO_Q],
|
||||
&c, NULL, IO_TIMEOUT);
|
||||
@@ -834,6 +837,7 @@ static int nvme_probe(struct udevice *udev)
|
||||
struct nvme_id_ns *id;
|
||||
|
||||
ndev->instance = trailing_strtol(udev->name);
|
||||
+ ndev->dev = udev->parent;
|
||||
|
||||
INIT_LIST_HEAD(&ndev->namespaces);
|
||||
ndev->bar = dm_pci_map_bar(udev, PCI_BASE_ADDRESS_0,
|
||||
diff --git a/drivers/nvme/nvme.h b/drivers/nvme/nvme.h
|
||||
index c6aae4da5d..31e6899bca 100644
|
||||
--- a/drivers/nvme/nvme.h
|
||||
+++ b/drivers/nvme/nvme.h
|
||||
@@ -7,8 +7,15 @@
|
||||
#ifndef __DRIVER_NVME_H__
|
||||
#define __DRIVER_NVME_H__
|
||||
|
||||
+#include <phys2bus.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
+#if CONFIG_IS_ENABLED(DM_USB)
|
||||
+#define nvme_to_dev(_dev) _dev->dev
|
||||
+#else
|
||||
+#define nvme_to_dev(_dev) NULL
|
||||
+#endif
|
||||
+
|
||||
struct nvme_id_power_state {
|
||||
__le16 max_power; /* centiwatts */
|
||||
__u8 rsvd2;
|
||||
@@ -596,6 +603,9 @@ enum {
|
||||
|
||||
/* Represents an NVM Express device. Each nvme_dev is a PCI function. */
|
||||
struct nvme_dev {
|
||||
+#if CONFIG_IS_ENABLED(DM_USB)
|
||||
+ struct udevice *dev;
|
||||
+#endif
|
||||
struct list_head node;
|
||||
struct nvme_queue **queues;
|
||||
u32 __iomem *dbs;
|
||||
@@ -635,4 +645,9 @@ struct nvme_ns {
|
||||
u8 flbas;
|
||||
};
|
||||
|
||||
+static inline dma_addr_t nvme_virt_to_bus(struct nvme_dev *dev, void *addr)
|
||||
+{
|
||||
+ return dev_phys_to_bus(nvme_to_dev(dev), virt_to_phys(addr));
|
||||
+}
|
||||
+
|
||||
#endif /* __DRIVER_NVME_H__ */
|
||||
--
|
||||
2.33.0
|
||||
|
@ -1,57 +0,0 @@
|
||||
From e55ccb4af869726b9579596ad37f3e7f33b5332d Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <e55ccb4af869726b9579596ad37f3e7f33b5332d.1633601057.git.stefan@agner.ch>
|
||||
In-Reply-To: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
References: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Tue, 28 Sep 2021 00:52:51 +0200
|
||||
Subject: [PATCH 08/10] nvme: invalidate correct memory range after read
|
||||
|
||||
The current code invalidates the range after the read buffer since the
|
||||
buffer pointer gets incremented in the read loop. Use a temporary
|
||||
pointer to make sure we have a pristine pointer to invalidate the
|
||||
correct memory range after read.
|
||||
|
||||
Fixes: 704e040a51d2 ("nvme: Apply cache operations on the DMA buffers")
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
drivers/nvme/nvme.c | 7 ++++---
|
||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c
|
||||
index 0b7082d71b..dd190bd654 100644
|
||||
--- a/drivers/nvme/nvme.c
|
||||
+++ b/drivers/nvme/nvme.c
|
||||
@@ -746,6 +746,7 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr,
|
||||
u64 prp2;
|
||||
u64 total_len = blkcnt << desc->log2blksz;
|
||||
u64 temp_len = total_len;
|
||||
+ void *temp_buffer = buffer;
|
||||
|
||||
u64 slba = blknr;
|
||||
u16 lbas = 1 << (dev->max_transfer_shift - ns->lba_shift);
|
||||
@@ -773,19 +774,19 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr,
|
||||
}
|
||||
|
||||
if (nvme_setup_prps(dev, &prp2,
|
||||
- lbas << ns->lba_shift, buffer))
|
||||
+ lbas << ns->lba_shift, temp_buffer))
|
||||
return -EIO;
|
||||
c.rw.slba = cpu_to_le64(slba);
|
||||
slba += lbas;
|
||||
c.rw.length = cpu_to_le16(lbas - 1);
|
||||
- c.rw.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer));
|
||||
+ c.rw.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, temp_buffer));
|
||||
c.rw.prp2 = cpu_to_le64(prp2);
|
||||
status = nvme_submit_sync_cmd(dev->queues[NVME_IO_Q],
|
||||
&c, NULL, IO_TIMEOUT);
|
||||
if (status)
|
||||
break;
|
||||
temp_len -= (u32)lbas << ns->lba_shift;
|
||||
- buffer += lbas << ns->lba_shift;
|
||||
+ temp_buffer += lbas << ns->lba_shift;
|
||||
}
|
||||
|
||||
if (read)
|
||||
--
|
||||
2.33.0
|
||||
|
@ -1,32 +0,0 @@
|
||||
From 6fc60c237cedf06cb5a1db087e2408a528870e3f Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <6fc60c237cedf06cb5a1db087e2408a528870e3f.1633447374.git.stefan@agner.ch>
|
||||
In-Reply-To: <d7ec084799b394cc02395829dc97019c8834e944.1633447374.git.stefan@agner.ch>
|
||||
References: <d7ec084799b394cc02395829dc97019c8834e944.1633447374.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Tue, 5 Oct 2021 17:07:22 +0200
|
||||
Subject: [PATCH 9/9] drivers: usb: host: Include header file needed for
|
||||
dev_err
|
||||
|
||||
dev_err seems to be moved to different header file. Include
|
||||
dm/device_compat.h file to compile properly.
|
||||
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
drivers/usb/host/xhci-brcm.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c
|
||||
index 27c4bbfcba..ee3b55242e 100644
|
||||
--- a/drivers/usb/host/xhci-brcm.c
|
||||
+++ b/drivers/usb/host/xhci-brcm.c
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <common.h>
|
||||
#include <dm.h>
|
||||
+#include <dm/device_compat.h>
|
||||
#include <fdtdec.h>
|
||||
#include <usb.h>
|
||||
#include <asm/io.h>
|
||||
--
|
||||
2.33.0
|
||||
|
@ -1,32 +0,0 @@
|
||||
From dedd65ecd36cee5610022bbab4a8bf92c2401df9 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <dedd65ecd36cee5610022bbab4a8bf92c2401df9.1633601057.git.stefan@agner.ch>
|
||||
In-Reply-To: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
References: <d7ec084799b394cc02395829dc97019c8834e944.1633601057.git.stefan@agner.ch>
|
||||
From: Stefan Agner <stefan@agner.ch>
|
||||
Date: Tue, 5 Oct 2021 17:07:22 +0200
|
||||
Subject: [PATCH 09/10] usb: xhci-brcm: Include header file needed for dev_err
|
||||
|
||||
dev_err seems to be moved to different header file. Include
|
||||
dm/device_compat.h file to compile properly.
|
||||
|
||||
Fixes: 69dae8902b16 ("linux/compat.h: Remove redefinition of dev_xxx macros")
|
||||
Signed-off-by: Stefan Agner <stefan@agner.ch>
|
||||
---
|
||||
drivers/usb/host/xhci-brcm.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c
|
||||
index 27c4bbfcba..fe17924028 100644
|
||||
--- a/drivers/usb/host/xhci-brcm.c
|
||||
+++ b/drivers/usb/host/xhci-brcm.c
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <fdtdec.h>
|
||||
#include <usb.h>
|
||||
#include <asm/io.h>
|
||||
+#include <dm/device_compat.h>
|
||||
#include <usb/xhci.h>
|
||||
|
||||
#define DRD2U3H_XHC_REGS_AXIWRA 0xC08
|
||||
--
|
||||
2.33.0
|
||||
|
@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="khadas-vim3"
|
||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/khadas/vim3/uboot.config"
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
|
@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c2"
|
||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/uboot.config"
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
|
@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c4"
|
||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4/uboot.config"
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
|
@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-n2"
|
||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-n2/uboot.config"
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
|
@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-xu3"
|
||||
BR2_TARGET_UBOOT_NEEDS_DTC=y
|
||||
BR2_TARGET_UBOOT_FORMAT_DTB_BIN=y
|
||||
|
@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_2"
|
||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
|
@ -95,7 +95,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3"
|
||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
|
@ -95,7 +95,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3_32b"
|
||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config"
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
|
@ -98,7 +98,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_4"
|
||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi4-64/uboot.config"
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
|
@ -96,7 +96,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_4_32b"
|
||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi4/uboot.config"
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
|
@ -96,7 +96,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="tinker-s-rk3288"
|
||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/uboot.config"
|
||||
BR2_TARGET_UBOOT_FORMAT_DTB_BIN=y
|
||||
|
@ -99,7 +99,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y
|
||||
BR2_TARGET_UBOOT=y
|
||||
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10"
|
||||
BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01"
|
||||
BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_4"
|
||||
BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/yellow/uboot.config"
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS=y
|
||||
|
@ -1,5 +1,5 @@
|
||||
From d87c6d3bb3de5f574d472dc5390f3f162db81823 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <d87c6d3bb3de5f574d472dc5390f3f162db81823.1632759065.git.stefan@agner.ch>
|
||||
From c8df96af414e6c9b1e6ff8ac5a56b6d3cb365636 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <c8df96af414e6c9b1e6ff8ac5a56b6d3cb365636.1645627108.git.stefan@agner.ch>
|
||||
From: Pascal Vizeli <pvizeli@syshack.ch>
|
||||
Date: Sun, 5 Aug 2018 20:43:03 +0000
|
||||
Subject: [PATCH] CMD: read string from fileinto env
|
||||
@ -13,10 +13,10 @@ Signed-off-by: Pascal Vizeli <pvizeli@syshack.ch>
|
||||
create mode 100644 cmd/fileenv.c
|
||||
|
||||
diff --git a/cmd/Kconfig b/cmd/Kconfig
|
||||
index 3a857b3f6e..9dc88988ac 100644
|
||||
index 02c298fdbe..959fff5b76 100644
|
||||
--- a/cmd/Kconfig
|
||||
+++ b/cmd/Kconfig
|
||||
@@ -1422,6 +1422,11 @@ config CMD_SETEXPR_FMT
|
||||
@@ -1448,6 +1448,11 @@ config CMD_SETEXPR_FMT
|
||||
Evaluate format string expression and store result in an environment
|
||||
variable.
|
||||
|
||||
@ -29,10 +29,10 @@ index 3a857b3f6e..9dc88988ac 100644
|
||||
|
||||
menu "Android support commands"
|
||||
diff --git a/cmd/Makefile b/cmd/Makefile
|
||||
index ed3669411e..a11b4b692e 100644
|
||||
index e31ac15ef7..eed8c7ebfe 100644
|
||||
--- a/cmd/Makefile
|
||||
+++ b/cmd/Makefile
|
||||
@@ -142,6 +142,7 @@ obj-$(CONFIG_CMD_SCSI) += scsi.o disk.o
|
||||
@@ -143,6 +143,7 @@ obj-$(CONFIG_CMD_SCSI) += scsi.o disk.o
|
||||
obj-$(CONFIG_CMD_SHA1SUM) += sha1sum.o
|
||||
obj-$(CONFIG_CMD_SETEXPR) += setexpr.o
|
||||
obj-$(CONFIG_CMD_SETEXPR_FMT) += printf.o
|
||||
@ -93,5 +93,5 @@ index 0000000000..9891cb05ab
|
||||
+ " - Read file from fat32 and store it as env."
|
||||
+);
|
||||
--
|
||||
2.33.0
|
||||
2.35.1
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user