diff --git a/source/linux/Foundational_Components_IPC_J7200.rst b/source/linux/Foundational_Components_IPC_J7200.rst index f69f839a9..9a82a138d 100644 --- a/source/linux/Foundational_Components_IPC_J7200.rst +++ b/source/linux/Foundational_Components_IPC_J7200.rst @@ -45,7 +45,7 @@ in the SDK package that can be run from ARM Linux. The remoteproc driver is hard-coded to look for specific files when loading the R5F cores. Here are the files it looks for on an J7200 device: -:: +.. code-block:: text +------------------+-----------------+----------------------+-----------------------+ | Core Name | RemoteProc Name | Description | Firmware File Name | @@ -62,7 +62,7 @@ loading the R5F cores. Here are the files it looks for on an J7200 device: Generally on a target file system the above files are soft linked to the intended executable FW files: -:: +.. code-block:: console root@j7200-evm:~# ls -l /lib/firmware/ lrwxrwxrwx 1 root root 65 Mar 9 2018 j7200-main-r5f0_0-fw -> /lib/firmware/ti-eth/j7200/app_remoteswitchcfg_server_strip.xer5f @@ -76,23 +76,23 @@ For updating MCU (DM) R5F firmware binary, tispl.bin needs to be recompiled with #. Go to linux installer and replace the existing R5F MCU (DM) firmware binary with the new one -:: + .. code-block:: console - host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j7200/ipc_echo_testb_mcu1_0_release_strip.xer5f + host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j7200/ipc_echo_testb_mcu1_0_release_strip.xer5f #. Recompile u-boot to regenerate tispl.bin using the top level makefile. -:: + .. code-block:: console - host# make u-boot + host# make u-boot -Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. + Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. #. Replace the updated tispl.bin containing new R5F firmware binary in the boot partition of sdcard and reboot -:: + .. code-block:: console - host# sudo cp board-support/u-boot_build/A72/tispl.bin /media/$USER/boot + host# sudo cp board-support/u-boot_build/A72/tispl.bin /media/$USER/boot .. _booting_remote_cores_from_Linux_console: @@ -103,7 +103,7 @@ To reload a remote core with new executables, please follow the below steps. First, identify the remotproc node associated with the remote core: -:: +.. code-block:: console root@j7200-evm:~# head /sys/class/remoteproc/remoteproc*/name ==> /sys/class/remoteproc/remoteproc0/name <== @@ -118,20 +118,20 @@ First, identify the remotproc node associated with the remote core: Then, use the sysfs interface to stop the remote core. For example, to stop the Main R5FSS0 -:: +.. code-block:: console root@j7200-evm:~# echo stop > /sys/class/remoteproc/remoteproc1/state [ 71.804687] remoteproc remoteproc1: stopped remote processor 5c00000.r5f If needed, update the firmware symbolic link to point to a new firmware: -:: +.. code-block:: console root@j7200-evm:/lib/firmware# ln -sf /lib/firmware/ti-ipc/j7200/ipc_echo_test_mcu2_1_release_strip.xer5f j7200-main-r5f0_1-fw Finally, use the sysfs interface to start the remote core: -:: +.. code-block:: console root@j7200-evm:~# echo start > /sys/class/remoteproc/remoteproc1/state [ 110.922899] remoteproc remoteproc1: powering up 5c00000.r5f @@ -156,7 +156,7 @@ memory carveouts (DMA pools) are shown below. See the devicetree bindings documentation for more details: `Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml `__ -:: +.. code-block:: text +------------------+--------------------+---------+----------------------------+ | Memory Section | Physical Address | Size | Description | @@ -178,6 +178,8 @@ See the devicetree bindings documentation for more details: `Documentation/devic | R5F(main) Pool | 0xa3100000 | 15MB | R5F externel code/data mem | +------------------+--------------------+---------+----------------------------+ +.. code-block:: console + root@j7200-evm:~# dmesg | grep Reserved [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB @@ -216,7 +218,7 @@ R5F external memory section sizes in their respective linker mapfiles. arch/arm64/boot/dts/ti/k3-j7200-som-p0.dtsi -:: +.. code-block:: text reserved_memory: reserved-memory { #address-cells = <2>; diff --git a/source/linux/Foundational_Components_IPC_J721E.rst b/source/linux/Foundational_Components_IPC_J721E.rst index 0cae8c4ae..9977a3171 100644 --- a/source/linux/Foundational_Components_IPC_J721E.rst +++ b/source/linux/Foundational_Components_IPC_J721E.rst @@ -45,7 +45,7 @@ in the SDK package that can be run from ARM Linux. The remoteproc driver is hard-coded to look for specific files when loading the R5F, C66x and C71x cores. Here are the files it looks for on an J721E device: -:: +.. code-block:: text +------------------+-----------------+----------------------+-----------------------+ | Core Name | RemoteProc Name | Description | Firmware File Name | @@ -58,23 +58,23 @@ loading the R5F, C66x and C71x cores. Here are the files it looks for on an J721 +------------------+-----------------+----------------------+-----------------------+ | C71x | 65800000.c7x | C71x core | j7-c71_1-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 41000000.r5f | R5F core(MCU domain) | j7-mcu-r5f0_0-fw | + | R5F | 41000000.r5f | R5F core(MCU domain) | j7-mcu-r5f0_0-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 41400000.r5f | R5F core(MCU domain) | j7-mcu-r5f0_1-fw | + | R5F | 41400000.r5f | R5F core(MCU domain) | j7-mcu-r5f0_1-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5c00000.r5f | R5F core(MAIN domain)| j7-main-r5f0_0-fw | + | R5F | 5c00000.r5f | R5F core(MAIN domain)| j7-main-r5f0_0-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5d00000.r5f | R5F core(MAIN domain)| j7-main-r5f0_1-fw | + | R5F | 5d00000.r5f | R5F core(MAIN domain)| j7-main-r5f0_1-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5e00000.r5f | R5F core(MAIN domain)| j7-main-r5f1_0-fw | + | R5F | 5e00000.r5f | R5F core(MAIN domain)| j7-main-r5f1_0-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5f00000.r5f | R5F core(MAIN domain)| j7-main-r5f1_1-fw | + | R5F | 5f00000.r5f | R5F core(MAIN domain)| j7-main-r5f1_1-fw | +------------------+-----------------+----------------------+-----------------------+ Generally on a target file system the above files are soft linked to the intended executable FW files: -:: +.. code-block:: console root@j721e-evm:~# ls -l /lib/firmware/ lrwxrwxrwx 1 root root 69 Mar 9 2018 j7-c66_0-fw -> /lib/firmware/ti-ipc/j721e/ipc_echo_test_c66xdsp_1_release_strip.xe66 @@ -98,23 +98,23 @@ For updating MCU (DM) R5F firmware binary, tispl.bin needs to be recompiled with #. Go to linux installer and replace the existing R5F MCU (DM) firmware binary with the new one -:: + .. code-block:: console - host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j721e/ipc_echo_testb_mcu1_0_release_strip.xer5f + host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j721e/ipc_echo_testb_mcu1_0_release_strip.xer5f #. Recompile u-boot to regenerate tispl.bin using the top level makefile. -:: + .. code-block:: console - host# make u-boot + host# make u-boot -Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. + Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. #. Replace the updated tispl.bin containing new R5F firmware binary in the boot partition of sdcard and reboot -:: + .. code-block:: console - host# sudo cp board-support/u-boot_build/A72/tispl.bin /media/$USER/boot + host# sudo cp board-support/u-boot_build/A72/tispl.bin /media/$USER/boot .. _booting_remote_cores_from_Linux_console: @@ -125,7 +125,7 @@ To reload a remote core with new executables, please follow the below steps. First, identify the remotproc node associated with the remote core: -:: +.. code-block:: console root@j721e-evm:~# head /sys/class/remoteproc/remoteproc*/name ==> /sys/class/remoteproc/remoteproc0/name <== @@ -190,20 +190,20 @@ First, identify the remotproc node associated with the remote core: Then, use the sysfs interface to stop the remote core. For example, to stop the Main R5F0 -:: +.. code-block:: console root@j721e-evm:~# echo stop > /sys/class/remoteproc/remoteproc4/state [ 277.626160] remoteproc remoteproc4: stopped remote processor 5c00000.r5f If needed, update the firmware symbolic link to point to a new firmware: -:: +.. code-block:: console root@j721e-evm:/lib/firmware# ln -sf /lib/firmware/ti-ipc/j721e/ipc_echo_test_mcu2_1_release_strip.xer5f j7-main-r5f0_1-fw Finally, use the sysfs interface to start the remote core: -:: +.. code-block:: console root@j721e-evm:~# echo start > /sys/class/remoteproc/remoteproc4/state [ 311.633427] remoteproc remoteproc4: powering up 5c00000.r5f @@ -228,7 +228,7 @@ memory carveouts (DMA pools) are shown below. See the devicetree bindings documentation for more details: `Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml `__ -:: +.. code-block:: text +------------------+--------------------+---------+----------------------------+ | Memory Section | Physical Address | Size | Description | @@ -270,6 +270,7 @@ See the devicetree bindings documentation for more details: `Documentation/devic | R5F(main) Pool | 0xa5100000 | 15MB | R5F externel code/data mem | +------------------+--------------------+---------+----------------------------+ +.. code-block:: console root@j721e-evm:~# dmesg | grep Reserved [ 0.000000] Reserved memory: created CMA memory pool at 0x00000008e0000000, size 512 MiB @@ -319,7 +320,7 @@ M4F and R5F external memory section sizes in their respective linker mapfiles. arch/arm64/boot/dts/ti/k3-j721e-som-p0.dtsi -:: +.. code-block:: text reserved_memory: reserved-memory { #address-cells = <2>; diff --git a/source/linux/Foundational_Components_IPC_J721S2.rst b/source/linux/Foundational_Components_IPC_J721S2.rst index 7e2d7a517..74a9e18ab 100644 --- a/source/linux/Foundational_Components_IPC_J721S2.rst +++ b/source/linux/Foundational_Components_IPC_J721S2.rst @@ -45,7 +45,7 @@ in the SDK package that can be run from ARM Linux. The remoteproc driver is hard-coded to look for specific files when loading the R5F and C7x cores. Here are the files it looks for on an J721S2 device: -:: +.. code-block:: text +------------------+-----------------+----------------------+-----------------------+ | Core Name | RemoteProc Name | Description | Firmware File Name | @@ -54,23 +54,23 @@ loading the R5F and C7x cores. Here are the files it looks for on an J721S2 devi +------------------+-----------------+----------------------+-----------------------+ | C7x | 65800000.c7x | C7x core | j721s2-c71_1-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 41000000.r5f | R5F core(MCU domain) | j721s2-mcu-r5f0_0-fw | + | R5F | 41000000.r5f | R5F core(MCU domain) | j721s2-mcu-r5f0_0-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 41400000.r5f | R5F core(MCU domain) | j721s2-mcu-r5f0_1-fw | + | R5F | 41400000.r5f | R5F core(MCU domain) | j721s2-mcu-r5f0_1-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5c00000.r5f | R5F core(MAIN domain)| j721s2-main-r5f0_0-fw | + | R5F | 5c00000.r5f | R5F core(MAIN domain)| j721s2-main-r5f0_0-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5d00000.r5f | R5F core(MAIN domain)| j721s2-main-r5f0_1-fw | + | R5F | 5d00000.r5f | R5F core(MAIN domain)| j721s2-main-r5f0_1-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5e00000.r5f | R5F core(MAIN domain)| j721s2-main-r5f1_0-fw | + | R5F | 5e00000.r5f | R5F core(MAIN domain)| j721s2-main-r5f1_0-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5f00000.r5f | R5F core(MAIN domain)| j721s2-main-r5f1_1-fw | + | R5F | 5f00000.r5f | R5F core(MAIN domain)| j721s2-main-r5f1_1-fw | +------------------+-----------------+----------------------+-----------------------+ Generally on a target file system the above files are soft linked to the intended executable FW files: -:: +.. code-block:: console root@j721s2-evm:~# ls -l /lib/firmware/ lrwxrwxrwx 1 root root 60 Feb 24 2023 j721s2-c71_0-fw -> /lib/firmware/ti-ipc/j721s2/ipc_echo_test_c7x_1_release_strip.xe71 @@ -86,23 +86,23 @@ For updating MCU (DM) R5F firmware binary, tispl.bin needs to be recompiled with #. Go to linux installer and replace the existing R5F MCU (DM) firmware binary with the new one -:: + .. code-block:: console - host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j721s2/ipc_echo_testb_mcu1_0_release_strip.xer5f + host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j721s2/ipc_echo_testb_mcu1_0_release_strip.xer5f #. Recompile u-boot to regenerate tispl.bin using the top level makefile. -:: + .. code-block:: console - host# make u-boot + host# make u-boot -Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. + Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. #. Replace the updated tispl.bin containing new R5F firmware binary in the boot partition of sdcard and reboot -:: + .. code-block:: console - host# sudo cp board-support/u-boot_build/A72/tispl.bin /media/$USER/boot + host# sudo cp board-support/u-boot_build/A72/tispl.bin /media/$USER/boot .. _booting_remote_cores_from_Linux_console: @@ -113,7 +113,7 @@ To reload a remote core with new executables, please follow the below steps. First, identify the remotproc node associated with the remote core: -:: +.. code-block:: console root@j721s2-evm:~# head /sys/class/remoteproc/remoteproc*/name ==> /sys/class/remoteproc/remoteproc0/name <== @@ -140,20 +140,20 @@ First, identify the remotproc node associated with the remote core: Then, use the sysfs interface to stop the remote core. For example, to stop the C71x -:: +.. code-block:: console root@j721s2-evm:~# echo stop > /sys/class/remoteproc/remoteproc0/state [ 1964.316965] remoteproc remoteproc0: stopped remote processor 64800000.dsp If needed, update the firmware symbolic link to point to a new firmware: -:: +.. code-block:: console root@j721s2-evm:/lib/firmware# ln -sf /lib/firmware/ti-ipc/j721s2/ipc_echo_test_c7x_1_release_strip.xe71 j721s2-c71_0-fw Finally, use the sysfs interface to start the remote core: -:: +.. code-block:: console root@j721s2-evm:/lib/firmware# echo start > /sys/class/remoteproc/remoteproc0/state [ 2059.504473] remoteproc remoteproc0: powering up 64800000.dsp @@ -182,7 +182,7 @@ memory carveouts (DMA pools) are shown below. See the devicetree bindings documentation for more details: `Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml `__ -:: +.. code-block:: text +------------------+--------------------+---------+----------------------------+ | Memory Section | Physical Address | Size | Description | @@ -220,6 +220,7 @@ See the devicetree bindings documentation for more details: `Documentation/devic | R5F(main) Pool | 0xa5100000 | 15MB | R5F externel code/data mem | +------------------+--------------------+---------+----------------------------+ +.. code-block:: console root@j721s2-evm:~# dmesg | grep Reserved [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB @@ -267,7 +268,7 @@ M4F and R5F external memory section sizes in their respective linker mapfiles. arch/arm64/boot/dts/ti/k3-j721s2-som-p0.dtsi -:: +.. code-block:: text reserved_memory: reserved-memory { #address-cells = <2>; diff --git a/source/linux/Foundational_Components_IPC_J722S.rst b/source/linux/Foundational_Components_IPC_J722S.rst index fb0c1065c..1c8a5f570 100644 --- a/source/linux/Foundational_Components_IPC_J722S.rst +++ b/source/linux/Foundational_Components_IPC_J722S.rst @@ -55,9 +55,9 @@ loading the R5F and C7x cores. Here are the files it looks for on an J722S devic +------------------+-----------------+----------------------+-----------------------+ | C7x | 7e200000.c7x | C7x core | j722s-c71_1-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 79000000.r5f | R5F core(MCU domain) | j722s-mcu-r5f0_0-fw | + | R5F | 79000000.r5f | R5F core(MCU domain) | j722s-mcu-r5f0_0-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 78400000.r5f | R5F core(MAIN domain)| j722s-main-r5f0_0-fw | + | R5F | 78400000.r5f | R5F core(MAIN domain)| j722s-main-r5f0_0-fw | +------------------+-----------------+----------------------+-----------------------+ Generally on a target file system the above files are soft linked to the @@ -75,23 +75,23 @@ For updating MCU (DM) R5F firmware binary, tispl.bin needs to be recompiled with #. Go to linux installer and replace the existing R5F MCU (DM) firmware binary with the new one -.. code-block:: console + .. code-block:: console - host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j722s/ipc_echo_testb_mcu1_0_release_strip.xer5f + host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j722s/ipc_echo_testb_mcu1_0_release_strip.xer5f #. Recompile u-boot to regenerate tispl.bin using the top level makefile. -.. code-block:: console + .. code-block:: console - host# make u-boot + host# make u-boot -Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. + Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. #. Replace the updated tispl.bin containing new R5F firmware binary in the boot partition of sdcard and reboot -.. code-block:: console + .. code-block:: console - host# sudo cp board-support/u-boot_build/A53/tispl.bin /media/$USER/boot + host# sudo cp board-support/u-boot_build/A53/tispl.bin /media/$USER/boot .. _booting_remote_cores_from_Linux_console: diff --git a/source/linux/Foundational_Components_IPC_J742S2.rst b/source/linux/Foundational_Components_IPC_J742S2.rst index 5845cbf75..a37e5625e 100644 --- a/source/linux/Foundational_Components_IPC_J742S2.rst +++ b/source/linux/Foundational_Components_IPC_J742S2.rst @@ -45,7 +45,7 @@ in the SDK package that can be run from ARM Linux. The remoteproc driver is hard-coded to look for specific files when loading the R5F and C7x cores. Here are the files it looks for on an J742S2 device: -:: +.. code-block:: text +------------------+-----------------+----------------------+-----------------------+ | Core Name | RemoteProc Name | Description | Firmware File Name | @@ -76,7 +76,7 @@ loading the R5F and C7x cores. Here are the files it looks for on an J742S2 devi Generally on a target file system the above files are soft linked to the intended executable FW files: -:: +.. code-block:: console root@j742s2-evm:~# ls -l /lib/firmware/ lrwxrwxrwx 1 root root 66 Mar 9 2018 j742s2-c71_0-fw -> /lib/firmware/ti-ipc/j742s2/ipc_echo_test_c7x_1_release_strip.xe71 @@ -96,23 +96,23 @@ For updating MCU (DM) R5F firmware binary, tispl.bin needs to be recompiled with #. Go to linux installer and replace the existing R5F MCU (DM) firmware binary with the new one -:: + .. code-block:: console - host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j742s2/ipc_echo_testb_mcu1_0_release_strip.xer5f + host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j742s2/ipc_echo_testb_mcu1_0_release_strip.xer5f #. Recompile u-boot to regenerate tispl.bin using the top level makefile. -:: + .. code-block:: console - host# make u-boot + host# make u-boot -Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. + Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. #. Replace the updated tispl.bin containing new R5F firmware binary in the boot partition of sdcard and reboot -:: + .. code-block:: console - host# sudo cp board-support/u-boot_build/A72/tispl.bin /media/$USER/boot + host# sudo cp board-support/u-boot_build/A72/tispl.bin /media/$USER/boot .. _booting_remote_cores_from_Linux_console: @@ -123,7 +123,7 @@ To reload a remote core with new executables, please follow the below steps. First, identify the remotproc node associated with the remote core: -:: +.. code-block:: console root@j742s2-evm:~# head /sys/class/remoteproc/remoteproc*/name ==> /sys/class/remoteproc/remoteproc0/name <== @@ -159,20 +159,20 @@ First, identify the remotproc node associated with the remote core: Then, use the sysfs interface to stop the remote core. For example, to stop the C71x -:: +.. code-block:: console root@j742s2-evm:~# echo stop > /sys/class/remoteproc/remoteproc4/state [ 748.578297] remoteproc remoteproc4: stopped remote processor 5c00000.r5f If needed, update the firmware symbolic link to point to a new firmware: -:: +.. code-block:: console root@j742s2-evm:/lib/firmware# ln -sf /lib/firmware/ti-ipc/j742s2/ipc_echo_test_c7x_1_release_strip.xe71 j742s2-c71_0-fw Finally, use the sysfs interface to start the remote core: -:: +.. code-block:: console root@j742s2-evm:~# echo start > /sys/class/remoteproc/remoteproc4/state [ 798.485687] remoteproc remoteproc4: powering up 5c00000.r5f @@ -199,7 +199,7 @@ memory carveouts (DMA pools) are shown below. See the devicetree bindings documentation for more details: `Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml `__ -:: +.. code-block:: text +------------------+--------------------+---------+----------------------------+ | Memory Section | Physical Address | Size | Description | @@ -249,6 +249,7 @@ See the devicetree bindings documentation for more details: `Documentation/devic | R5F(main) Pool | 0xa7100000 | 15MB | R5F externel code/data mem | +------------------+--------------------+---------+----------------------------+ +.. code-block:: console root@j742s2-evm:~# dmesg | grep Reserved [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB @@ -302,7 +303,7 @@ M4F and R5F external memory section sizes in their respective linker mapfiles. arch/arm64/boot/dts/ti/k3-j742s2-evm.dts -:: +.. code-block:: text reserved_memory: reserved-memory { #address-cells = <2>; diff --git a/source/linux/Foundational_Components_IPC_J784S4.rst b/source/linux/Foundational_Components_IPC_J784S4.rst index 398862775..7eca3c2ff 100644 --- a/source/linux/Foundational_Components_IPC_J784S4.rst +++ b/source/linux/Foundational_Components_IPC_J784S4.rst @@ -45,7 +45,7 @@ in the SDK package that can be run from ARM Linux. The remoteproc driver is hard-coded to look for specific files when loading the R5F and C7x cores. Here are the files it looks for on an J784S4 device: -:: +.. code-block:: text +------------------+-----------------+----------------------+-----------------------+ | Core Name | RemoteProc Name | Description | Firmware File Name | @@ -58,27 +58,27 @@ loading the R5F and C7x cores. Here are the files it looks for on an J784S4 devi +------------------+-----------------+----------------------+-----------------------+ | C7x | 67800000.c7x | C7x core | j784s4-c71_3-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 41000000.r5f | R5F core(MCU domain) | j784s4-mcu-r5f0_0-fw | + | R5F | 41000000.r5f | R5F core(MCU domain) | j784s4-mcu-r5f0_0-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 41400000.r5f | R5F core(MCU domain) | j784s4-mcu-r5f0_1-fw | + | R5F | 41400000.r5f | R5F core(MCU domain) | j784s4-mcu-r5f0_1-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5c00000.r5f | R5F core(MAIN domain)| j784s4-main-r5f0_0-fw | + | R5F | 5c00000.r5f | R5F core(MAIN domain)| j784s4-main-r5f0_0-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5d00000.r5f | R5F core(MAIN domain)| j784s4-main-r5f0_1-fw | + | R5F | 5d00000.r5f | R5F core(MAIN domain)| j784s4-main-r5f0_1-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5e00000.r5f | R5F core(MAIN domain)| j784s4-main-r5f1_0-fw | + | R5F | 5e00000.r5f | R5F core(MAIN domain)| j784s4-main-r5f1_0-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5f00000.r5f | R5F core(MAIN domain)| j784s4-main-r5f1_1-fw | + | R5F | 5f00000.r5f | R5F core(MAIN domain)| j784s4-main-r5f1_1-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5900000.r5f | R5F core(MAIN domain)| j784s4-main-r5f2_0-fw | + | R5F | 5900000.r5f | R5F core(MAIN domain)| j784s4-main-r5f2_0-fw | +------------------+-----------------+----------------------+-----------------------+ - | R5F | 5a00000.r5f | R5F core(MAIN domain)| j784s4-main-r5f2_1-fw | + | R5F | 5a00000.r5f | R5F core(MAIN domain)| j784s4-main-r5f2_1-fw | +------------------+-----------------+----------------------+-----------------------+ Generally on a target file system the above files are soft linked to the intended executable FW files: -:: +.. code-block:: console root@j784s4-evm:~# ls -l /lib/firmware/ lrwxrwxrwx 1 root root 66 Mar 9 2018 j784s4-c71_0-fw -> /lib/firmware/ti-ipc/j784s4/ipc_echo_test_c7x_1_release_strip.xe71 @@ -99,23 +99,23 @@ For updating MCU (DM) R5F firmware binary, tispl.bin needs to be recompiled with #. Go to linux installer and replace the existing R5F MCU (DM) firmware binary with the new one -:: + .. code-block:: console - host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j784s4/ipc_echo_testb_mcu1_0_release_strip.xer5f + host# cp /ipc_echo_testb_freertos_mcu1_0_release.xer5f /board-support/prebuilt-images/ti-dm/j784s4/ipc_echo_testb_mcu1_0_release_strip.xer5f #. Recompile u-boot to regenerate tispl.bin using the top level makefile. -:: + .. code-block:: console - host# make u-boot + host# make u-boot -Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. + Please refer to :ref:`top-level-makefile` for more details on Top Level makefile. #. Replace the updated tispl.bin containing new R5F firmware binary in the boot partition of sdcard and reboot -:: + .. code-block:: console - host# sudo cp board-support/u-boot_build/A72/tispl.bin /media/$USER/boot + host# sudo cp board-support/u-boot_build/A72/tispl.bin /media/$USER/boot .. _booting_remote_cores_from_Linux_console: @@ -126,7 +126,7 @@ To reload a remote core with new executables, please follow the below steps. First, identify the remotproc node associated with the remote core: -:: +.. code-block:: console root@j784s4-evm:~# head /sys/class/remoteproc/remoteproc*/name ==> /sys/class/remoteproc/remoteproc0/name <== @@ -165,20 +165,20 @@ First, identify the remotproc node associated with the remote core: Then, use the sysfs interface to stop the remote core. For example, to stop the C71x -:: +.. code-block:: console root@j784s4-evm:~# echo stop > /sys/class/remoteproc/remoteproc5/state [ 748.578297] remoteproc remoteproc5: stopped remote processor 5c00000.r5f If needed, update the firmware symbolic link to point to a new firmware: -:: +.. code-block:: console root@j784s4-evm:/lib/firmware# ln -sf /lib/firmware/ti-ipc/j784s4/ipc_echo_test_c7x_1_release_strip.xe71 j784s4-c71_0-fw Finally, use the sysfs interface to start the remote core: -:: +.. code-block:: console root@j784s4-evm:~# echo start > /sys/class/remoteproc/remoteproc5/state [ 798.485687] remoteproc remoteproc5: powering up 5c00000.r5f @@ -205,7 +205,7 @@ memory carveouts (DMA pools) are shown below. See the devicetree bindings documentation for more details: `Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml `__ -:: +.. code-block:: text +------------------+--------------------+---------+----------------------------+ | Memory Section | Physical Address | Size | Description | @@ -259,6 +259,7 @@ See the devicetree bindings documentation for more details: `Documentation/devic | R5F(main) Pool | 0xa7100000 | 15MB | R5F externel code/data mem | +------------------+--------------------+---------+----------------------------+ +.. code-block:: console root@j784s4-evm:~# dmesg | grep Reserved [ 0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB @@ -314,7 +315,7 @@ M4F and R5F external memory section sizes in their respective linker mapfiles. arch/arm64/boot/dts/ti/k3-j784s4-evm.dts -:: +.. code-block:: text reserved_memory: reserved-memory { #address-cells = <2>;