@@ -5,11 +5,20 @@ This section documents how to initialize, load, start and stop remote cores from
55Following remotecores support is available in U-boot for K3 devices. However the actual remote
66cores deployed depends on the specific SoC used:
77
8- - Cortex-R5F in Lockstep more
9- - Cortex-R5F in split mode
10- - Cortex-M4F
11- - C66x DSP
12- - C71x DSP
8+ .. ifconfig :: CONFIG_sdk in ('SITARA')
9+
10+ - Cortex-R5F in split mode
11+ - Cortex-R5F in single core mode
12+ - Corext-M4F
13+ - C71x DSP
14+ - PRU core
15+
16+ .. ifconfig :: not CONFIG_sdk in ('SITARA')
17+
18+ - Cortex-R5F in Lockstep mode
19+ - Cortex-R5F in split mode
20+ - C71x DSP
21+ - C66x DSP
1322
1423Initialization
1524^^^^^^^^^^^^^^^
@@ -31,18 +40,44 @@ The below command will initialize just the given remote core
3140
3241 The below command lists all the available/initialized remotecores in a system.
3342
34- .. code-block :: console
43+ .. ifconfig :: not CONFIG_sdk in ('SITARA')
44+
45+ .. code-block :: console
46+
47+ => rproc list
48+ 0 - Name:'r5f@41000000' type:'internal memory mapped' supports: load start stop reset
49+ 1 - Name:'r5f@41400000' type:'internal memory mapped' supports: load start stop reset
50+ 2 - Name:'r5f@5c00000' type:'internal memory mapped' supports: load start stop reset
51+ 3 - Name:'r5f@5d00000' type:'internal memory mapped' supports: load start stop reset
52+ 4 - Name:'r5f@5e00000' type:'internal memory mapped' supports: load start stop reset
53+ 5 - Name:'r5f@5f00000' type:'internal memory mapped' supports: load start stop reset
54+ 6 - Name:'dsp@4d80800000' type:'internal memory mapped' supports: load start stop reset
55+ 7 - Name:'dsp@4d81800000' type:'internal memory mapped' supports: load start stop reset
56+ 8 - Name:'dsp@64800000' type:'internal memory mapped' supports: load start stop reset
57+
58+
59+ .. ifconfig :: CONFIG_sdk in ('SITARA')
3560
36- => rproc list
37- 0 - Name:'r5f@41000000' type:'internal memory mapped' supports: load start stop reset
38- 1 - Name:'r5f@41400000' type:'internal memory mapped' supports: load start stop reset
39- 2 - Name:'r5f@5c00000' type:'internal memory mapped' supports: load start stop reset
40- 3 - Name:'r5f@5d00000' type:'internal memory mapped' supports: load start stop reset
41- 4 - Name:'r5f@5e00000' type:'internal memory mapped' supports: load start stop reset
42- 5 - Name:'r5f@5f00000' type:'internal memory mapped' supports: load start stop reset
43- 6 - Name:'dsp@4d80800000' type:'internal memory mapped' supports: load start stop reset
44- 7 - Name:'dsp@4d81800000' type:'internal memory mapped' supports: load start stop reset
45- 8 - Name:'dsp@64800000' type:'internal memory mapped' supports: load start stop reset
61+ .. code-block :: console
62+
63+ => rproc list
64+ 0 - Name:'m4fss@5000000-bus@4000000' type:'internal memory mapped' supports: load start stop
65+ 1 - Name:'r5f@78000000-r5fss@78000000' type:'internal memory mapped' supports: load start stop reset
66+ 2 - Name:'r5f@78200000-r5fss@78000000' type:'internal memory mapped' supports: load start stop reset
67+ 3 - Name:'r5f@78400000-r5fss@78400000' type:'internal memory mapped' supports: load start stop reset
68+ 4 - Name:'r5f@78600000-r5fss@78400000' type:'internal memory mapped' supports: load start stop reset
69+ 5 - Name:'pru@34000-icssg@30000000' type:'internal memory mapped' supports: load start stop
70+ 6 - Name:'rtu@4000-icssg@30000000' type:'internal memory mapped' supports: load start stop
71+ 7 - Name:'txpru@a000-icssg@30000000' type:'internal memory mapped' supports: load start stop
72+ 8 - Name:'pru@38000-icssg@30000000' type:'internal memory mapped' supports: load start stop
73+ 9 - Name:'rtu@6000-icssg@30000000' type:'internal memory mapped' supports: load start stop
74+ 10 - Name:'txpru@c000-icssg@30000000' type:'internal memory mapped' supports: load start stop
75+ 11 - Name:'pru@34000-icssg@30080000' type:'internal memory mapped' supports: load start stop
76+ 12 - Name:'rtu@4000-icssg@30080000' type:'internal memory mapped' supports: load start stop
77+ 13 - Name:'txpru@a000-icssg@30080000' type:'internal memory mapped' supports: load start stop
78+ 14 - Name:'pru@38000-icssg@30080000' type:'internal memory mapped' supports: load start stop
79+ 15 - Name:'rtu@6000-icssg@30080000' type:'internal memory mapped' supports: load start stop
80+ 16 - Name:'txpru@c000-icssg@30080000' type:'internal memory mapped' supports: load start stop
4681
4782
4883 Loading
@@ -51,13 +86,24 @@ Loading
5186Once Initialized, remotecores can be loaded with a relevant image. Make sure
5287image is loaded only after initializing the core.
5388
54- .. code-block :: console
89+ .. ifconfig :: not CONFIG_sdk in ('SITARA')
90+
91+ .. code-block :: console
5592
56- => load mmc 1:2 0x90000000 /lib/firmware/j7-main-r5f0_0-fw
57- 2536540 bytes read in 112 ms (21.6 MiB/s)
58- => rproc load 2 0x90000000 0x${filesize}
59- Load Remote Processor 2 with data@addr=0x90000000 2536540 bytes: Success!
93+ => load mmc 1:2 0x90000000 /lib/firmware/j7-main-r5f0_0-fw
94+ 2536540 bytes read in 112 ms (21.6 MiB/s)
95+ => rproc load 2 0x90000000 0x${filesize}
96+ Load Remote Processor 2 with data@addr=0x90000000 2536540 bytes: Success!
6097
98+ .. ifconfig :: CONFIG_sdk in ('SITARA')
99+
100+ .. code-block :: console
101+
102+ => load mmc 1:2 0x90000000 /lib/firmware/am64-mcu-m4f0_0-fw-sec
103+ 90036 bytes read in 13 ms (6.6 MiB/s)
104+ => rproc load 0 0x90000000 0x${filesize}
105+ Authentication passed
106+ Load Remote Processor 0 with data@addr=0x90000000 90036 bytes: Success!
61107
62108 Starting
63109^^^^^^^^^
@@ -80,6 +126,42 @@ A running remotecore can be stopped using the following command.
80126 Make sure all the commands are run in the above given sequence. Currently IPC
81127is not supported in U-boot.
82128
129+ .. ifconfig :: CONFIG_sdk in ('SITARA')
130+
131+ PRU Core Attachment
132+ ^^^^^^^^^^^^^^^^^^^
133+
134+ After the PRU core is booted from U-Boot, it is in detached state. Verify the state
135+ from linux console using the below command:
136+
137+ .. code-block :: console
138+
139+ root@am64xx-evm:~# cat /sys/class/remoteproc/remoteproc5/state
140+ detached
141+
142+ To attach to the PRU core, use the below command:
143+
144+ .. code-block :: console
145+
146+ echo "start" > /sys/class/remoteproc/remoteproc5/state
147+
148+ Upon successful attachment, the kernel will display messages like below:
149+
150+ .. code-block :: console
151+
152+ [ 203.179065] remoteproc remoteproc5: attaching to 30034000.pru
153+ [ 203.198898] virtio_rpmsg_bus virtio5: rpmsg host is online
154+ [ 203.198942] virtio_rpmsg_bus virtio5: creating channel rpmsg-raw addr 0x1e
155+ [ 203.199828] rproc-virtio rproc-virtio.7.auto: registered virtio5 (type 7)
156+ [ 203.199849] remoteproc remoteproc5: remote processor 30034000.pru is now attached
157+
158+ Verify PRU core state from linux console :
159+
160+ .. code-block :: console
161+
162+ root@am64xx-evm:~# cat /sys/class/remoteproc/remoteproc5/state
163+ attached
164+
83165 Lockstep and Split mode
84166^^^^^^^^^^^^^^^^^^^^^^^
85167
0 commit comments