Skip to content

Commit 61b8072

Browse files
magp-nordicmasz-nordic
authored andcommitted
applications: sdp: mspi: add SPI RX path
Add path for receiving data on SPI. Signed-off-by: Magdalena Pastula <[email protected]>
1 parent 78a7b02 commit 61b8072

File tree

5 files changed

+456
-36
lines changed

5 files changed

+456
-36
lines changed

applications/sdp/mspi/Kconfig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
config SDP_MSPI_MAX_RESPONSE_SIZE
2+
int "Max size of response that can be sent to APP core. In bytes."
3+
default 128
4+
5+
source "Kconfig.zephyr"

applications/sdp/mspi/src/hrt/hrt-nrf54l15.s

Lines changed: 233 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,67 @@ hrt_tx:
103103
jalr a2
104104
j .L13
105105
.size hrt_tx, .-hrt_tx
106+
.section .text.hrt_tx_rx.constprop.0,"ax",@progbits
107+
.align 1
108+
.type hrt_tx_rx.constprop.0, @function
109+
hrt_tx_rx.constprop.0:
110+
lw a5,0(a0)
111+
lw a4,4(a0)
112+
beq a4,zero,.L26
113+
li a4,126976
114+
slli a1,a1,12
115+
addi sp,sp,-24
116+
and a1,a1,a4
117+
li a4,2097152
118+
sw s0,16(sp)
119+
sw ra,20(sp)
120+
sw s1,12(sp)
121+
addi a4,a4,1031
122+
mv s0,a0
123+
lw a5,0(a5)
124+
or a1,a1,a4
125+
#APP
126+
csrw 3019, a1
127+
#NO_APP
128+
li s1,0
129+
.L17:
130+
lw a4,4(s0)
131+
bltu s1,a4,.L20
132+
lw ra,20(sp)
133+
lw s0,16(sp)
134+
lw s1,12(sp)
135+
addi sp,sp,24
136+
jr ra
137+
.L20:
138+
lw a4,16(s0)
139+
li a0,-16777216
140+
and a0,a5,a0
141+
sw a3,8(sp)
142+
sw a2,4(sp)
143+
sw a5,0(sp)
144+
jalr a4
145+
lw a5,0(sp)
146+
lw a2,4(sp)
147+
lw a3,8(sp)
148+
slli a5,a5,8
149+
bne s1,zero,.L18
150+
beq a2,zero,.L18
151+
li a4,65536
152+
add a4,a3,a4
153+
#APP
154+
csrw 2002, a4
155+
#NO_APP
156+
.L19:
157+
addi s1,s1,1
158+
j .L17
159+
.L18:
160+
#APP
161+
csrr a4, 3018
162+
#NO_APP
163+
j .L19
164+
.L26:
165+
ret
166+
.size hrt_tx_rx.constprop.0, .-hrt_tx_rx.constprop.0
106167
.section .text.hrt_write,"ax",@progbits
107168
.align 1
108169
.globl hrt_write
@@ -120,23 +181,23 @@ hrt_write:
120181
li a5,0
121182
addi a4,a0,4
122183
li a3,4
123-
.L17:
184+
.L31:
124185
lw a2,0(a4)
125-
bne a2,zero,.L16
186+
bne a2,zero,.L30
126187
addi a5,a5,1
127188
andi a5,a5,0xff
128189
addi a4,a4,20
129-
bne a5,a3,.L17
190+
bne a5,a3,.L31
130191
li a5,3
131-
.L16:
192+
.L30:
132193
li a4,1
133-
beq a5,a4,.L18
194+
beq a5,a4,.L32
134195
li a4,3
135-
beq a5,a4,.L19
196+
beq a5,a4,.L33
136197
li a4,0
137-
bne a5,zero,.L20
198+
bne a5,zero,.L34
138199
lbu a4,80(s0)
139-
.L20:
200+
.L34:
140201
#APP
141202
csrw 2000, 2
142203
#NO_APP
@@ -163,21 +224,21 @@ hrt_write:
163224
li a2,1
164225
add a5,s0,a5
165226
lw a3,4(a5)
166-
beq a3,a2,.L21
227+
beq a3,a2,.L35
167228
li a2,2
168-
beq a3,a2,.L22
229+
beq a3,a2,.L36
169230
li a5,32
170231
div a5,a5,a4
171-
j .L39
172-
.L18:
232+
j .L53
233+
.L32:
173234
lbu a4,81(s0)
174-
j .L20
175-
.L19:
235+
j .L34
236+
.L33:
176237
lbu a4,83(s0)
177-
j .L20
178-
.L21:
238+
j .L34
239+
.L35:
179240
lbu a5,8(a5)
180-
.L39:
241+
.L53:
181242
#APP
182243
csrw 3022, a5
183244
#NO_APP
@@ -187,11 +248,11 @@ hrt_write:
187248
lbu a4,88(s0)
188249
slli a5,a5,16
189250
srli a5,a5,16
190-
bne a4,zero,.L25
251+
bne a4,zero,.L39
191252
#APP
192253
csrc 3008, a5
193254
#NO_APP
194-
.L26:
255+
.L40:
195256
lhu a3,84(s0)
196257
lbu a1,80(s0)
197258
addi a2,sp,3
@@ -213,17 +274,17 @@ hrt_write:
213274
addi a0,s0,60
214275
call hrt_tx
215276
lbu a5,89(s0)
216-
beq a5,zero,.L27
217-
.L28:
277+
beq a5,zero,.L41
278+
.L42:
218279
#APP
219280
csrr a5, 3022
220281
#NO_APP
221282
andi a5,a5,0xff
222-
bne a5,zero,.L28
283+
bne a5,zero,.L42
223284
#APP
224285
csrw 2010, 0
225286
#NO_APP
226-
.L27:
287+
.L41:
227288
li a5,16384
228289
addi a5,a5,1
229290
#APP
@@ -232,33 +293,173 @@ hrt_write:
232293
csrw 2000, 0
233294
#NO_APP
234295
lbu a5,87(s0)
235-
bne a5,zero,.L15
296+
bne a5,zero,.L29
236297
lbu a4,86(s0)
237298
li a5,1
238299
sll a5,a5,a4
239300
lbu a4,88(s0)
240301
slli a5,a5,16
241302
srli a5,a5,16
242-
bne a4,zero,.L30
303+
bne a4,zero,.L44
243304
#APP
244305
csrs 3008, a5
245306
#NO_APP
246-
.L15:
307+
.L29:
247308
lw ra,12(sp)
248309
lw s0,8(sp)
249310
addi sp,sp,16
250311
jr ra
251-
.L22:
312+
.L36:
252313
lbu a5,9(a5)
253-
j .L39
254-
.L25:
314+
j .L53
315+
.L39:
255316
#APP
256317
csrs 3008, a5
257318
#NO_APP
258-
j .L26
259-
.L30:
319+
j .L40
320+
.L44:
260321
#APP
261322
csrc 3008, a5
262323
#NO_APP
263-
j .L15
324+
j .L29
264325
.size hrt_write, .-hrt_write
326+
.section .text.hrt_read,"ax",@progbits
327+
.align 1
328+
.globl hrt_read
329+
.type hrt_read, @function
330+
hrt_read:
331+
addi sp,sp,-12
332+
sw s0,4(sp)
333+
sw ra,8(sp)
334+
lbu a5,88(a0)
335+
lbu a4,86(a0)
336+
mv s0,a0
337+
bne a5,zero,.L55
338+
li a5,1
339+
sll a5,a5,a4
340+
slli a5,a5,16
341+
srli a5,a5,16
342+
#APP
343+
csrc 3008, a5
344+
#NO_APP
345+
.L56:
346+
lhu a5,90(s0)
347+
slli a5,a5,16
348+
srli a5,a5,16
349+
andi a5,a5,-5
350+
slli a5,a5,16
351+
srli a5,a5,16
352+
sh a5,90(s0)
353+
lhu a5,90(s0)
354+
#APP
355+
csrw 3009, a5
356+
csrw 3011, 2
357+
#NO_APP
358+
li a5,65536
359+
addi a5,a5,4
360+
#APP
361+
csrw 3043, a5
362+
csrw 3022, 8
363+
csrw 2000, 2
364+
csrw 2001, 2
365+
#NO_APP
366+
lhu a5,84(s0)
367+
slli a5,a5,16
368+
srli a5,a5,16
369+
#APP
370+
csrr a4, 2003
371+
#NO_APP
372+
li a3,-65536
373+
and a4,a4,a3
374+
or a5,a5,a4
375+
#APP
376+
csrw 2003, a5
377+
#NO_APP
378+
lhu a5,84(s0)
379+
slli a5,a5,16
380+
srli a5,a5,16
381+
#APP
382+
csrr a4, 2003
383+
#NO_APP
384+
slli a5,a5,1
385+
slli a4,a4,16
386+
addi a5,a5,1
387+
srli a4,a4,16
388+
slli a5,a5,16
389+
or a5,a5,a4
390+
#APP
391+
csrw 2003, a5
392+
#NO_APP
393+
lbu a1,80(s0)
394+
lhu a3,84(s0)
395+
li a2,1
396+
mv a0,s0
397+
call hrt_tx_rx.constprop.0
398+
lbu a1,81(s0)
399+
lhu a3,84(s0)
400+
li a2,0
401+
addi a0,s0,20
402+
call hrt_tx_rx.constprop.0
403+
li a5,0
404+
.L57:
405+
lw a4,64(s0)
406+
bltu a5,a4,.L58
407+
#APP
408+
csrw 2000, 0
409+
csrw 2001, 0
410+
csrw 3019, 0
411+
#NO_APP
412+
lbu a5,87(s0)
413+
bne a5,zero,.L59
414+
lbu a5,88(s0)
415+
lbu a4,86(s0)
416+
bne a5,zero,.L60
417+
li a5,1
418+
sll a5,a5,a4
419+
slli a5,a5,16
420+
srli a5,a5,16
421+
#APP
422+
csrs 3008, a5
423+
#NO_APP
424+
.L59:
425+
lhu a5,90(s0)
426+
ori a5,a5,4
427+
sh a5,90(s0)
428+
lhu a5,90(s0)
429+
#APP
430+
csrw 3009, a5
431+
#NO_APP
432+
lw ra,8(sp)
433+
lw s0,4(sp)
434+
addi sp,sp,12
435+
jr ra
436+
.L55:
437+
li a5,1
438+
sll a5,a5,a4
439+
slli a5,a5,16
440+
srli a5,a5,16
441+
#APP
442+
csrs 3008, a5
443+
#NO_APP
444+
j .L56
445+
.L58:
446+
#APP
447+
csrr a3, 3018
448+
#NO_APP
449+
lw a4,60(s0)
450+
srli a3,a3,24
451+
add a4,a4,a5
452+
addi a5,a5,1
453+
sb a3,0(a4)
454+
andi a5,a5,0xff
455+
j .L57
456+
.L60:
457+
li a5,1
458+
sll a5,a5,a4
459+
slli a5,a5,16
460+
srli a5,a5,16
461+
#APP
462+
csrc 3008, a5
463+
#NO_APP
464+
j .L59
465+
.size hrt_read, .-hrt_read

0 commit comments

Comments
 (0)