blob: d6168b998eaa4c244a47e2c58587e5c5dc888782 [file] [log] [blame]
Andrew Geissler2daf84b2023-03-31 09:57:23 -05001From 2b0606f603de13524ce9b63578f4c3358c3ac6df Mon Sep 17 00:00:00 2001
2From: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
3Date: Thu, 22 Dec 2022 12:15:42 +0000
4Subject: [PATCH 29/43] sandbox64: add support for NVMXIP QSPI
5
6enable NVMXIP QSPI for sandbox 64-bit
7
8Adding two NVM XIP QSPI storage devices.
9
10Upstream-Status: Submitted
11Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
12Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
13---
14 arch/sandbox/dts/sandbox64.dts | 13 +++++++++++++
15 arch/sandbox/dts/test.dts | 14 ++++++++++++++
16 configs/sandbox_defconfig | 1 +
17 drivers/nvmxip/nvmxip.c | 4 ++++
18 drivers/nvmxip/nvmxip.h | 3 +++
19 5 files changed, 35 insertions(+)
20
21diff --git a/arch/sandbox/dts/sandbox64.dts b/arch/sandbox/dts/sandbox64.dts
22index a9cd7908f83e..aed3801af8a9 100644
23--- a/arch/sandbox/dts/sandbox64.dts
24+++ b/arch/sandbox/dts/sandbox64.dts
25@@ -89,6 +89,19 @@
26 cs-gpios = <0>, <&gpio_a 0>;
27 };
28
29+ nvmxip-qspi1@08000000 {
30+ compatible = "nvmxip,qspi";
31+ reg = <0x0 0x08000000 0x0 0x00200000>;
32+ lba_shift = <9>;
33+ lba = <4096>;
34+ };
35+
36+ nvmxip-qspi2@08200000 {
37+ compatible = "nvmxip,qspi";
38+ reg = <0x0 0x08200000 0x0 0x00100000>;
39+ lba_shift = <9>;
40+ lba = <2048>;
41+ };
42 };
43
44 #include "sandbox.dtsi"
45diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
46index 2e580f980fc6..54f2b308e793 100644
47--- a/arch/sandbox/dts/test.dts
48+++ b/arch/sandbox/dts/test.dts
49@@ -1756,6 +1756,20 @@
50 compatible = "u-boot,fwu-mdata-gpt";
51 fwu-mdata-store = <&mmc0>;
52 };
53+
54+ nvmxip-qspi1@08000000 {
55+ compatible = "nvmxip,qspi";
56+ reg = <0x08000000 0x00200000>;
57+ lba_shift = <9>;
58+ lba = <4096>;
59+ };
60+
61+ nvmxip-qspi2@08200000 {
62+ compatible = "nvmxip,qspi";
63+ reg = <0x08200000 0x00100000>;
64+ lba_shift = <9>;
65+ lba = <2048>;
66+ };
67 };
68
69 #include "sandbox_pmic.dtsi"
70diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
71index e6ea96a6b924..f22230b5cce2 100644
72--- a/configs/sandbox_defconfig
73+++ b/configs/sandbox_defconfig
74@@ -138,6 +138,7 @@ CONFIG_NETCONSOLE=y
75 CONFIG_IP_DEFRAG=y
76 CONFIG_BOOTP_SERVERIP=y
77 CONFIG_IPV6=y
78+CONFIG_NVMXIP_QSPI=y
79 CONFIG_DM_DMA=y
80 CONFIG_DEVRES=y
81 CONFIG_DEBUG_DEVRES=y
82diff --git a/drivers/nvmxip/nvmxip.c b/drivers/nvmxip/nvmxip.c
83index 6ba48183c575..af9c9a3b7270 100644
84--- a/drivers/nvmxip/nvmxip.c
85+++ b/drivers/nvmxip/nvmxip.c
86@@ -85,6 +85,10 @@ int nvmxip_init(struct udevice *udev)
87 priv_data->udev = udev;
88 priv_data->plat_data = plat_data;
89
90+#if CONFIG_IS_ENABLED(SANDBOX64)
91+ sandbox_set_enable_memio(true);
92+#endif
93+
94 nvmxip_bdev_max_devs++;
95
96 snprintf(bdev_name, NVMXIP_BLKDEV_NAME_SZ, "nvmxip-blk#%d", nvmxip_bdev_max_devs);
97diff --git a/drivers/nvmxip/nvmxip.h b/drivers/nvmxip/nvmxip.h
98index 393172cc2f86..0384ce2e2b47 100644
99--- a/drivers/nvmxip/nvmxip.h
100+++ b/drivers/nvmxip/nvmxip.h
101@@ -8,6 +8,9 @@
102 #define __DRIVER_NVMXIP_H__
103
104 #include <asm/io.h>
105+#if CONFIG_IS_ENABLED(SANDBOX64)
106+#include <asm/test.h>
107+#endif
108 #include <blk.h>
109 #include <linux/bitops.h>
110 #include <linux/compat.h>
111--
1122.39.2
113