On 29/07/2025 16:31, Inochi Amaoto wrote: > On Mon, Jul 28, 2025 at 07:03:23PM +0800, Junhui Liu wrote: >> Add C906L remote processor for CV1800B SoC, which is an asymmetric >> processor typically running RTOS. >> >> Signed-off-by: Junhui Liu <junhui....@pigmoral.tech> >> --- >> .../bindings/remoteproc/sophgo,cv1800b-c906l.yaml | 79 >> ++++++++++++++++++++++ >> 1 file changed, 79 insertions(+) >> >> diff --git >> a/Documentation/devicetree/bindings/remoteproc/sophgo,cv1800b-c906l.yaml >> b/Documentation/devicetree/bindings/remoteproc/sophgo,cv1800b-c906l.yaml >> new file mode 100644 >> index >> 0000000000000000000000000000000000000000..2061c2fd6ba343c09b1a91700ea4a695d2b57f81 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/remoteproc/sophgo,cv1800b-c906l.yaml >> @@ -0,0 +1,79 @@ >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/remoteproc/sophgo,cv1800b-c906l.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Sophgo C906L remote processor controller for CV1800B SoC >> + >> +maintainers: >> + - Junhui Liu <junhui....@pigmoral.tech> >> + >> +description: >> + Document the bindings for the C906L remoteproc component that loads and >> boots >> + firmwares on the CV1800B SoC. >> + >> +properties: >> + compatible: >> + const: sophgo,cv1800b-c906l >> + >> + firmware-name: >> + maxItems: 1 >> + >> + mbox-names: >> + items: >> + - const: tx >> + - const: rx >> + >> + mboxes: >> + description: >> + This property is required only if the rpmsg/virtio functionality is >> used. >> + (see mailbox/sophgo,cv1800b-mailbox.yaml) >> + items: >> + - description: mailbox channel to send data to C906L >> + - description: mailbox channel to receive data from C906L >> + >> + memory-region: >> + description: >> + List of phandles to reserved memory regions used by the remote >> processor. >> + The first region is required and provides the firmware region for the >> + remote processor. The following regions (vdev buffer, vrings) are >> optional >> + and are only required if rpmsg/virtio functionality is used. >> + minItems: 1 >> + items: >> + - description: firmware region >> + - description: vdev buffer >> + - description: vring0 >> + - description: vring1 >> + additionalItems: true >> + > > Why not allocating these region dynamicly? I do not think firware is > always avaible before staring. Allowing dynamic firmware give us max > flexiblity.
I'm afraid it's not easy to do this. For firmware region, the RTOS firmware usually needs a physical address to link to, and I have researched and tested two RTOS (RT-Thread and Zephyr) on the C906L, both of them do not support position-independent execution or runtime relocation. Therefore, a reserved memory region is needed to provide a fixed physical address for the RTOS firmware. (In fact, there is already a reserved memory region for the C906L in cv1800b-milkv-duo.dts) For virtio-related regions, the RTOS firmware also needs to know the shared memory regions for communications at compile time. So, reserving memory through DT is necessary for now. > > Regards, > Inochi -- Best regards, Junhui Liu