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 1.0.0 firmware (which now uses PIC)
Deleting old driver files
See CHANGELOG for more details
Signed-off-by: Luis David Lopez <[email protected]>
Copy file name to clipboardExpand all lines: softperipheral/doc/sQSPI/CHANGELOG.rst
+18Lines changed: 18 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,23 @@ sQSPI changelog
9
9
10
10
All the notable changes to sQSPI are documented on this page.
11
11
12
+
v1.0.0
13
+
******
14
+
15
+
See the list of changes for the current release.
16
+
17
+
.. note::
18
+
This release introduces a change in the API, updating the naming convention from ``nrfx_qspi2`` to ``nrf_sqspi`` prefix, which breaks backward compatibility.
19
+
20
+
* Added:
21
+
22
+
* The following for nRF54L15 devices:
23
+
24
+
* Support for preparing (holding) transfers.
25
+
* Higher speed transfers are now supported (>=33 MHz) by using GPIOHSPADCTL.
26
+
* Position Independent Code for more flexibility when placing the firmware.
27
+
* Initial support to use with displays.
28
+
12
29
v0.1.0
13
30
******
14
31
@@ -20,3 +37,4 @@ This is an initial release.
20
37
* Configurable :ref:`clock phase and polarity<sqspi_features_clock_phase>`.
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
+
v1.0.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_v1_0_0.rst
+27-15Lines changed: 27 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_v1.0.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,28 @@ RAM configuration
226
227
*****************
227
228
228
229
The sQSPI Soft Peripheral operates from RAM.
230
+
231
+
.. note::
232
+
Starting from sQSPI 1.0.0, Position Independent Code (PIC) is supported.
233
+
This allows an application to determine where to load the Soft Peripheral firmware.
234
+
The start address default value is defined in the :file:`nrf_config_sqspi.h` file but you can override it, for example, in :file:`nrfx_config.h`.
235
+
229
236
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
237
This table details the memory region, it should be non-cacheable:
231
238
232
239
.. list-table:: RAM Configuration Table
233
240
:widths: auto
234
241
:header-rows: 1
235
242
236
-
* - Start Address
243
+
* - Component
244
+
- Address offset
237
245
- Size
238
-
* - 0x2f890000
246
+
* - sQSPI firmware
247
+
- `NRF_SQSPI_SP_FIRMWARE_ADDR`
239
248
- 0x4000
249
+
* - Context saving
250
+
- 0x2f890000
251
+
- 0x200 (but the entire block should be retained)
240
252
241
253
The build environment described in the :ref:`nrf54h20_porting_guide_code` section must comply with these requirements.
242
254
This includes proper settings in linker scripts, device tree specifications (DTS), and resource allocation.
0 commit comments