You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Using new naming convention: nrfx_qspi2 -> nrf_sqspi
Using sQSPI 0.2.0 firmware (which now uses PIC)
Deleting old driver files
Signed-off-by: Luis David Lopez <[email protected]>
Copy file name to clipboardExpand all lines: softperipheral/doc/sQSPI/limitations.rst
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,20 +9,20 @@ When working with sQSPI, you should be aware of the following limitations.
9
9
:local:
10
10
:depth: 2
11
11
12
-
v0.1.0
12
+
v0.2.0
13
13
******
14
14
15
15
Refer to the following detailed descriptions of current limitations:
16
16
17
17
* sQSPI does not support slave mode operations; it can only operate as a controller (master).
18
18
* The sQSPI support for SPI half-duplex setup is implemented but not tested.
19
-
* sQSPI SPI modes 1,2, and 3 (see the :c:var:`nrfx_qspi2_dev_cfg_t.spi_cpolpha` configuration structure) may present artifacts (delays and clock stretching) on the last SCLK cycle during a transfer.
19
+
* sQSPI SPI modes 1,2, and 3 (see the :c:var:`nrf_sqspi_dev_cfg_t.spi_cpolpha` configuration structure) may present artifacts (delays and clock stretching) on the last SCLK cycle during a transfer.
20
20
* The nrfx API for sQSPI does not support configuring the use of the positive or negative edge of SCLK delayed read sampling.
21
-
* sQSPI employs the :c:var:`nrfx_qspi2_dev_cfg_t.sample_delay_cyc` parameter as an offset to FLPR's base clock counter , not SLCK clock cycles (see the :c:struct:`nrfx_qspi2_dev_cfg_t` struct).
22
-
* sQSPI :c:var:`nrfx_qspi2_dev_cfg_t.sample_delay_cyc` has a limit:
21
+
* sQSPI employs the :c:var:`nrf_sqspi_dev_cfg_t.sample_delay_cyc` parameter as an offset to FLPR's base clock counter , not SLCK clock cycles (see the :c:struct:`nrf_sqspi_dev_cfg_t` struct).
22
+
* sQSPI :c:var:`nrf_sqspi_dev_cfg_t.sample_delay_cyc` has a limit:
* Implementation of sQSPI quad or dual lane for command transmission (for example, ``2_2_2`` and ``4_4_4`` modes) is implemented but has not been tested.
28
-
* sQSPI does not support a configurable pin for the CSN line; only **PIN 5** is supported (see :c:var:`nrfx_qspi2_dev_cfg_t.csn_pin`).
28
+
* sQSPI does not support a configurable pin for the CSN line; only **PIN 5** is supported (see :c:var:`nrf_sqspi_dev_cfg_t.csn_pin`).
Copy file name to clipboardExpand all lines: softperipheral/doc/sQSPI/nrf54H20_porting_v0_2_0.rst
+26-15Lines changed: 26 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,16 +31,16 @@ This structure shows the relevant files and directories in the `sdk-nrfxlib`_ re
31
31
│ │ └── nrf_qspi2.h
32
32
│ ├── nrf54h20
33
33
│ │ ├── sqspi_firmware.h
34
-
│ │ ├── sqspi_firmware_v0.1.0.h
34
+
│ │ ├── sqspi_firmware_v0.2.0.h
35
35
│ │ └── ...
36
+
│ ├── nrf_config_sqspi.h
36
37
│ ├── nrf_sp_qspi.h
37
-
│ ├── nrfx_config_qspi2.h
38
-
│ ├── nrfx_qspi2.h
38
+
│ ├── nrf_sqspi.h
39
39
└── src
40
40
└── nrfx_qspi2.c
41
41
42
42
.. note::
43
-
The main interface for sQSPI is the :file:`nrfx_qspi2.h` file.
43
+
The main interface for sQSPI is the :file:`nrf_sqspi.h` file.
44
44
45
45
Header files
46
46
============
@@ -69,18 +69,19 @@ The following list is a detailed breakdown of the necessary paths:
69
69
#ifndef NRFX_CONFIG_H__
70
70
#define NRFX_CONFIG_H__
71
71
72
-
#include "softperipheral_regif.h" // To Resolve correct VPR IRQn for the SoC.
73
-
#define nrfx_qspi2_irq_handler SP_VPR_IRQHandler
74
-
75
-
#define NRFX_QSPI2_ENABLED (1)
76
-
#define NRFX_QSPI2_MAX_NUM_DATA_LINES (4)
72
+
#define nrf_sqspi_irq_handler SP_VPR_IRQHandler
73
+
74
+
#define NRF_SQSPI_ENABLED (1)
75
+
#define NRF_SQSPI_MAX_NUM_DATA_LINES (4)
76
+
#define NRF_SQSPI_SP_FIRMWARE_ADDR 0x2f890200
77
+
//^ This address is user defined, the location for the sQSPI firmware
77
78
78
79
#endif // NRFX_CONFIG_H__
79
80
80
81
Compiling source files
81
82
======================
82
83
83
-
For an sQSPI application to function properly, you must compile the driver implementation from the source file :file:`nrfx_qspi2.c`.
84
+
For an sQSPI application to function properly, you must compile the driver implementation from the source file :file:`nrf_sqspi.c`.
84
85
85
86
Application core and FLPR configuration
86
87
***************************************
@@ -202,7 +203,7 @@ The following options are available, assuming that the FLPR core has access to t
202
203
203
204
.. note::
204
205
sQSPI driver provides a default GPIO configuration and multiplexing.
205
-
You can apply this setup by setting :c:var:`nrfx_qspi2_cfg_t.skip_gpio_cfg` and :c:var:`nrfx_qspi2_cfg_t.skip_pmux_cfg` to ``false``.
206
+
You can apply this setup by setting :c:var:`nrf_sqspi_cfg_t.skip_gpio_cfg` and :c:var:`nrf_sqspi_cfg_t.skip_pmux_cfg` to ``false``.
206
207
207
208
Configuring pins
208
209
================
@@ -211,9 +212,9 @@ In some cases you might have to modify the sQSPI driver configuration.
211
212
For example, when changing pin drive strength to guarantee signal integrity for a new PCB design.
212
213
You must address these cases on the sQSPI application code:
213
214
214
-
* If you set the :c:var:`nrfx_qspi2_cfg_t.skip_gpio_cfg` variable to ``true``, the GPIO configuration is not managed by the sQSPI driver and it must be manually handled by the application.
215
+
* If you set the :c:var:`nrf_sqspi_cfg_t.skip_gpio_cfg` variable to ``true``, the GPIO configuration is not managed by the sQSPI driver and it must be manually handled by the application.
215
216
This is a requirement for the nRF54H20 device.
216
-
* If you set the :c:var:`nrfx_qspi2_cfg_t.skip_pmux_cfg` variable to ``true``, the GPIO multiplexing is not managed by the sQSPI driver and it must be manually handled by the application.
217
+
* If you set the :c:var:`nrf_sqspi_cfg_t.skip_pmux_cfg` variable to ``true``, the GPIO multiplexing is not managed by the sQSPI driver and it must be manually handled by the application.
217
218
This is a requirement for the nRF54H20 device.
218
219
219
220
GPIO multiplexing must be handled by setting the correct ``CTRLSEL`` value in UICR.
@@ -226,17 +227,27 @@ RAM configuration
226
227
*****************
227
228
228
229
The sQSPI Soft Peripheral operates from RAM.
230
+
231
+
.. note::
232
+
Starting from sQSPI 0.2.0, PIC (Position Idependent Code is supported), which means that an application will decide where to load the SP firmware.
233
+
This is start address is defined in :file:`nrf_config_sqspi.h` and set in :file:`nrfx_config.h`
234
+
229
235
Your build environment must reserve the required RAM and ensure that it is readable and writable by both the application core and the FLPR core.
230
236
This table details the memory region, it should be non-cacheable:
231
237
232
238
.. list-table:: RAM Configuration Table
233
239
:widths: auto
234
240
:header-rows: 1
235
241
236
-
* - Start Address
242
+
* -
243
+
- Address offset
237
244
- Size
238
-
* - 0x2f890000
245
+
* - sQSPI Firmware
246
+
- `NRF_SQSPI_SP_FIRMWARE_ADDR`
239
247
- 0x4000
248
+
* - Context Saving
249
+
- 0x2f890000
250
+
- 0x200 (but the entire block should be retained)
240
251
241
252
The build environment described in the :ref:`nrf54h20_porting_guide_code` section must comply with these requirements.
242
253
This includes proper settings in linker scripts, device tree specifications (DTS), and resource allocation.
0 commit comments