Skip to content

Commit 64c54c5

Browse files
committed
softperipheral: rev 7262e00b5f72fd04b8e0c9b92b743d907b9a106b
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]> IP-10301: Cosmetic fixes
1 parent 77d5d5e commit 64c54c5

16 files changed

+3153
-2604
lines changed

softperipheral/CHANGELOG.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,15 @@ See the following list of changes:
2020

2121
* The first implementation of Soft Peripheral sQSPI for the nRF54L15 and nRF54H20 SoCs.
2222
For details, see the :ref:`sqspi_changelog` page.
23+
24+
nRF Connect SDK v3.1.0
25+
**********************
26+
27+
This is a release that focuses on improving existing soft peripherals.
28+
See the following list of changes:
29+
30+
31+
* Bug fixes:
32+
33+
* Fixed higher frequency transfers for Soft Peripheral sQSPI for the nRF54L15 and nRF54H20 SoCs.
34+
For details, see the :ref:`sqspi_changelog` page.

softperipheral/doc/sQSPI/CHANGELOG.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,15 @@ This is an initial release.
2020
* Configurable :ref:`clock phase and polarity<sqspi_features_clock_phase>`.
2121
* :ref:`Delayed read sampling <sqspi_features_read_sampling>`.
2222
* Support for :ref:`various packet formats <sqspi_features_packet_formats>`.
23+
24+
v0.2.0
25+
******
26+
27+
This is an improvement release.
28+
29+
* Added the following for nRF54L15 devices:
30+
31+
* Support for preparing (holding) transfers.
32+
* Higher speed transfers are now supported (>=33 MHz) by using GPIOHSPADCTL.
33+
* Position Independent Code for more flexibility when placing the firmware.
34+
* Initial support to use with displays.

softperipheral/include/softperipheral_meta.h

Lines changed: 106 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@
99

1010
#include <stdint.h>
1111

12-
#define SOFTPERIPHERAL_META_HEADER_VERSION (1)
13-
1412
#define SOFTPERIPHERAL_META_SOFTPERIPHERAL_ID_SQSPI 0x45b1
1513

1614
#if (SOFTPERIPHERAL_META_HEADER_VERSION == 1)
@@ -124,6 +122,111 @@ typedef struct
124122
};
125123
} softperipheral_metadata_t;
126124

127-
#endif // (SOFTPERIPHERAL_META_HEADER_VERSION == 1)
125+
#elif (SOFTPERIPHERAL_META_HEADER_VERSION == 2)
126+
127+
#define SOFTPERIPHERAL_META_COMM_ID_REGIF (1)
128+
#define SOFTPERIPHERAL_META_COMM_ID_JOBLIST (2)
129+
130+
#define SOFTPERIPHERAL_META_PLATFORM_DEVICE_05 (1)
131+
#define SOFTPERIPHERAL_META_PLATFORM_DEVICE_09 (2)
132+
#define SOFTPERIPHERAL_META_PLATFORM_DEVICE_10 (4)
133+
#define SOFTPERIPHERAL_META_PLATFORM_DEVICE_15 (8)
134+
#define SOFTPERIPHERAL_META_PLATFORM_DEVICE_20 (16)
135+
#define SOFTPERIPHERAL_META_PLATFORM_DEVICE_ANY (31)
136+
137+
#define SOFTPERIPHERAL_META_PLATFORM_PLATFORM_L (1)
138+
#define SOFTPERIPHERAL_META_PLATFORM_PLATFORM_H (2)
139+
#define SOFTPERIPHERAL_META_PLATFORM_PLATFORM_ANY (3)
140+
141+
#define SOFTPERIPHERAL_META_PLATFORM_SERIES_54 (1)
142+
#define SOFTPERIPHERAL_META_PLATFORM_SERIES_ANY (1)
143+
144+
#ifndef SOFTPERIPHERAL_META_SELF_BOOTING
145+
#define SOFTPERIPHERAL_META_SELF_BOOTING (0)
146+
#endif
147+
148+
typedef struct
149+
{
150+
union
151+
{
152+
struct
153+
{
154+
uint32_t magic : 16;
155+
uint32_t header_version : 4;
156+
uint32_t comm_id : 8;
157+
uint32_t reserved0 : 3;
158+
uint32_t self_boot : 1; // If True, set INITPC to NVM address.
159+
// If False, copy fw_code_size bytes from NVM to fw_ram_base_addr
160+
};
161+
162+
uint32_t w0_raw;
163+
};
164+
165+
union
166+
{
167+
struct
168+
{
169+
uint16_t softperiph_id;
170+
171+
union
172+
{
173+
struct
174+
{
175+
uint16_t device : 9;
176+
uint16_t platform : 4;
177+
uint16_t series : 3;
178+
};
179+
180+
uint16_t raw;
181+
} platform;
182+
};
183+
184+
uint32_t w1_raw;
185+
};
186+
187+
union
188+
{
189+
struct
190+
{
191+
uint32_t patch : 16;
192+
uint32_t minor : 8;
193+
uint32_t major : 8;
194+
} version;
195+
196+
uint32_t w2_raw;
197+
};
198+
199+
union
200+
{
201+
struct
202+
{
203+
uint16_t fw_code_size; // size / 16
204+
uint16_t
205+
fw_ram_total_size; // size / 16. Must also include code (RAM CODE region), code RAM (.data/.bss/.stack/.heap), shared and/or allocatable RAM from the FW.
206+
};
207+
208+
uint32_t w3_raw;
209+
};
210+
211+
union
212+
{
213+
uint32_t
214+
fw_ram_base_addr; // Dest address for code in case self_boot = False. Also, the RAM start address set by the FW in case of any RAM it needs.
215+
uint32_t w5_raw;
216+
};
217+
218+
union
219+
{
220+
struct
221+
{
222+
uint16_t fw_shared_ram_size; // size / 16
223+
uint16_t fw_shared_ram_addr_offset;
224+
};
225+
226+
uint32_t w6_raw;
227+
};
228+
} softperipheral_metadata_t;
229+
230+
#endif //SOFTPERIPHERAL_META_HEADER_VERSION
128231

129232
#endif // SOFTPERIPHEREAL_META_H__

softperipheral/include/softperipheral_regif.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
#define SOFTPERIPHERAL_REGIF_H__
99

1010
/* Shared between Host and Service, varies between platforms. */
11-
#if defined(NRF54L15_XXAA)
11+
#if defined (NRF54L05_XXAA) || defined (NRF54L09_ENGA_XXAA) || defined (NRF54L10_XXAA) || \
12+
defined (NRF54L15_XXAA) || defined (NRF54L20_ENGA_XXAA) || defined (NRF54LM20A_ENGA_XXAA)
1213
#define SP_VPR_EVENT_IDX 20
1314
#define NRF_VPR NRF_VPR00
1415
#define SP_VPR_TASK_DPPI_0_IDX 16 // Channel 0
@@ -46,7 +47,7 @@
4647
do { \
4748
nrf_qspi2_core_dr_x(R, m_task_count, 20); \
4849
nrf_vpr_task_trigger(P, (nrf_vpr_task_t)offsetof(NRF_VPR_Type, TASKS_TRIGGER[T])); \
49-
while (m_task_count != nrf_qspi2_core_dr_x_get(R, 21)) { \
50+
while (nrf_qspi2_core_dr_x_get(R, 20) != nrf_qspi2_core_dr_x_get(R, 21)) { \
5051
__NOP(); \
5152
__NOP(); \
5253
__NOP(); \

softperipheral/sQSPI/include/nrf54h20/sqspi_firmware.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66

77
#ifndef SQSPI_FIRMWARE_H__
88
#define SQSPI_FIRMWARE_H__
9-
#include "sqspi_firmware_v0.1.0.h"
9+
#include "sqspi_firmware_v0.2.0.h"
10+
#define SOFTPERIPHERAL_META_HEADER_VERSION 2
1011
#endif

0 commit comments

Comments
 (0)