Skip to content

Commit

Permalink
applications: sdp: mspi: add fix for max frequency
Browse files Browse the repository at this point in the history
Add temporary fix for not starting VTIM when max frequency
is set (counter value 0).

Signed-off-by: Magdalena Pastula <[email protected]>
  • Loading branch information
magp-nordic committed Feb 5, 2025
1 parent 92cdc66 commit eb0a5a8
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 32 deletions.
70 changes: 38 additions & 32 deletions applications/sdp/mspi/src/hrt/hrt-nrf54l15.s
Original file line number Diff line number Diff line change
Expand Up @@ -13,95 +13,101 @@ hrt_tx:
sw s0,16(sp)
sw s1,12(sp)
lw a4,4(a0)
sw a2,0(sp)
sw a3,4(sp)
sw a2,8(sp)
sw a3,0(sp)
beq a4,zero,.L1
slli s0,a1,12
slli s1,a1,12
li a4,126976
and s0,s0,a4
and a5,s1,a4
li a4,32
div a4,a4,a1
mv a5,a0
mv s0,a0
sw a5,4(sp)
addi a4,a4,-1
andi a4,a4,63
or a4,a4,s0
or a4,a4,a5
ori a4,a4,1024
#APP
csrw 3019, a4
#NO_APP
li s1,0
.L3:
lw a4,4(a5)
bltu s1,a4,.L10
lw a4,4(s0)
bltu s1,a4,.L11
.L1:
lw ra,20(sp)
lw s0,16(sp)
lw s1,12(sp)
addi sp,sp,24
jr ra
.L10:
lw a4,4(a5)
.L11:
lw a4,4(s0)
li a2,1
sub a4,a4,s1
beq a4,a2,.L4
li a2,2
beq a4,a2,.L5
.L6:
lw a4,0(a5)
lw a4,0(s0)
bne a4,zero,.L8
lw a4,16(a5)
sw a5,8(sp)
lw a4,16(s0)
li a0,0
j .L14
.L4:
lbu a4,8(a5)
lbu a4,8(s0)
lw a5,4(sp)
addi a4,a4,-1
andi a4,a4,63
or a4,a4,s0
or a4,a4,a5
ori a4,a4,1024
#APP
csrw 3019, a4
#NO_APP
lw a4,16(a5)
lw a0,12(a5)
sw a5,8(sp)
lw a4,16(s0)
lw a0,12(s0)
.L14:
jalr a4
.L13:
lw a5,8(sp)
.L7:
bne s1,zero,.L9
lw a4,0(sp)
lbu a4,0(a4)
lw a5,8(sp)
lbu a4,0(a5)
bne a4,zero,.L9
lw a4,4(sp)
lw a5,0(sp)
lhu a4,0(sp)
bne a5,zero,.L10
li a4,1
.L10:
slli a5,a4,16
srli a5,a5,16
sw a5,0(sp)
#APP
csrw 2005, a4
csrw 2005, a5
#NO_APP
lw a3,0(sp)
lw a5,8(sp)
li a4,1
sb a4,0(a3)
sb a4,0(a5)
.L9:
addi s1,s1,1
j .L3
.L5:
lbu a4,9(a5)
lbu a4,9(s0)
lw a5,4(sp)
addi a4,a4,-1
andi a4,a4,63
or a4,a4,s0
or a4,a4,a5
ori a4,a4,1024
#APP
csrw 3019, a4
#NO_APP
j .L6
.L8:
lw a2,16(a5)
lw a4,0(a5)
lw a2,16(s0)
lw a4,0(s0)
slli a1,s1,2
sw a5,8(sp)
add a4,a4,a1
lw a0,0(a4)
jalr a2
j .L13
j .L7
.size hrt_tx, .-hrt_tx
.section .text.hrt_write,"ax",@progbits
.align 1
Expand Down
7 changes: 7 additions & 0 deletions applications/sdp/mspi/src/hrt/hrt.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,13 @@ static void hrt_tx(volatile hrt_xfer_data_t *xfer_data, uint8_t frame_width, boo
}

if ((i == 0) && (!*counter_running)) {
/*
* Temporary fix for max frequency. Top value can be set to 0,
* but initial value cannot, because counter will not start.
*/
if (counter_value == 0) {
counter_value = 1;
}
/* Start counter */
nrf_vpr_csr_vtim_simple_counter_set(0, counter_value);
*counter_running = true;
Expand Down

0 comments on commit eb0a5a8

Please sign in to comment.