How to set to spi slave mode

Have a try this command again, if still failed I will check it next week.

sudo ./spidev_test -D/dev/spidev0.0 -n1 -s10000000 -g10 -p1 -zz

titan@titan-ubuntu1:~$ sudo ./spidev_test -D/dev/spidev0.0 -n1 -s10000000 -g10 -p1 -zz
[sudo] password for titan:
using device: /dev/spidev0.0
setting spi mode for read,write
setting spi bpw
setting max speed for rd/wr
spi mode: 0
bits per word: 8 bytes per word: 1
max speed: 10000000 Hz (10000 KHz)
no. runs: 1
Using seed:0x5f9f64e2
loop count = 0
Using even no. pattern …
transfer bytes [10]
0000: 02 04 06 08 0A 0C 0E 10 12 14
transfer: Return actual transfer length: 10
receive bytes [10]
0000: 00 00 00 00 00 00 00 00 00 00
mismatch index 0
^^^ 00 00 00 00 00 00 00 00 00 00 00 /dev/spidev0.0: TEST FAILED !!! (status:-1)

I try below command without problem. Make sure you are connect the pin19/pin21 for loopback test.

sudo ./spidev_test -D /dev/spidev0.0 -s4000000 -g16 -n10
sudo ./spidev_test -D /dev/spidev0.0 -s8000000 -g512 -b32 -H -p0 -n1 -zzz -t

nvidia@dhcp-10-19-107-152:~$ sudo ./spidev_test -D /dev/spidev0.0 -s8000000 -g512 -b32 -H -p0 -n1 -zzz -t
Disabling receive
using device: /dev/spidev0.0
setting spi mode for read,write
setting spi bpw
setting max speed for rd/wr
spi mode: 1
bits per word: 32 bytes per word: 4
max speed: 8000000 Hz (8000 KHz)
no. runs: 1
Using seed:0x5fa0cce0
loop count = 0
using sequential pattern ....
transfer bytes [512]
0000: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
0010: 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
0020: 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
0030: 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
0040: 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
0050: 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
0060: 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F
0070: 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F
0080: 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
0090: 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
00A0: A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
00B0: B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
00C0: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF
00D0: D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
00E0: E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
00F0: F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE 00
0100: 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
0110: 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20
0120: 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30
0130: 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40
0140: 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50
0150: 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60
0160: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70
0170: 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80
0180: 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90
0190: 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0
01A0: A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0
01B0: B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0
01C0: C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0
01D0: D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0
01E0: E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0
01F0: F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE 00 01
/dev/spidev0.0: TEST PASSED
====== Transfer stats ====
Transmit:
       total: 512B (0KiB 0MiB)
       total: 1P
       ioerr: 0B (0KiB 0MiB)
       ioerr: 0P
 Rate:
  wire total: -1B/s (0KB/s)
       total: -1B/s (0KB/s)
  wire total: -1P/s
       total: -1P/s

  Total time: 0.003599s

This is my test, it seems to show that the test passed, but I don’t know what it means.

titan@titan-ubuntu1:~$ sudo ./spidev_test -D /dev/spidev0.0 -s4000000 -g16 -n10
/dev/spidev0.0: TEST FAILED !!!!! (status:-1)
titan@titan-ubuntu1:~$ sudo ./spidev_test -D /dev/spidev0.0 -s8000000 -g512 -b32 -H -p0 -n1 -zzz -t
Disabling receive
using device: /dev/spidev0.0
setting spi mode for read,write
setting spi bpw
setting max speed for rd/wr
spi mode: 1
bits per word: 32 bytes per word: 4
max speed: 8000000 Hz (8000 KHz)
no. runs: 1
Using seed:0x5fa0f568
loop count = 0 
using sequential pattern ....
transfer bytes [512]
0000: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 
0010: 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 
0020: 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 
0030: 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 
0040: 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 
0050: 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 
0060: 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 
0070: 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 
0080: 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 
0090: 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F 
00A0: A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF 
00B0: B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF 
00C0: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF 
00D0: D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF 
00E0: E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF 
00F0: F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE 00 
0100: 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 
0110: 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 
0120: 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 
0130: 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 
0140: 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 
0150: 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 
0160: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 
0170: 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 
0180: 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 
0190: 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 
01A0: A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 
01B0: B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 
01C0: C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 
01D0: D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 
01E0: E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 
01F0: F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE 00 01 
/dev/spidev0.0: TEST PASSED 
====== Transfer stats ====
Transmit:
       total: 512B (0KiB 0MiB)
       total: 1P 
       ioerr: 0B (0KiB 0MiB)
       ioerr: 0P
 Rate:
  wire total: -1B/s (0KB/s)
       total: -1B/s (0KB/s)
  wire total: -1P/s
       total: -1P/s

Total time: 0.003195s

I still can’t get the loopback data, nor can I measure the waveform on the signal line

I want to set a SPI on SOC to slave mode, configure DTB, SPI on SOC can enter slave mode driver, but the test program will report an error.
[ 929.254481] spi_master spi0: transferred[0] != requested[18]
[ 929.254644] spi_master spi0: CMD[33f01827]: Sl M3 CS0 [HHHH] MSB MSb Rx Tx Pa 8b TRANS[00ff0000]:BSY I:255 B:0
[ 929.254644] FIFO[02c00004]:RxF:5 TxE:64 Err RxSTA TxSTA[E]DMA[00000000]: RxTr:0 TxTr:0 B:17
[ 929.254994] spi_master spi0: cpu-xfer-err [status:02c00144]
[ 929.255109] spi_master spi0: CMD[33f01827]: Sl M3 CS0 [HHHH] MSB MSb Rx Tx Pa 8b TRANS[00ff0000]:BSY I:255 B:0
[ 929.255109] FIFO[02c00004]:RxF:5 TxE:64 Err RxSTA TxSTA[E]DMA[00000000]: RxTr:0 TxTr:0 B:17
[ 929.255516] spi_master spi0: failed to transfer one message from queue
can’t send spi message: Input/output error
Aborted

Please help to open a new topic if still an issue. Thanks