Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

linux: Foundational_Components_IPC_J7*: Fix link to Top Level Makefile #4

Merged
merged 2 commits into from
Oct 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 17 additions & 15 deletions source/linux/Foundational_Components_IPC_J7200.rst
StaticRocket marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand All @@ -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
Expand All @@ -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 <path_to_new_fw_binary>/ipc_echo_testb_freertos_mcu1_0_release.xer5f <path_to_linux_installer>/board-support/prebuilt-images/ti-dm/j7200/ipc_echo_testb_mcu1_0_release_strip.xer5f
host# cp <path_to_new_fw_binary>/ipc_echo_testb_freertos_mcu1_0_release.xer5f <path_to_linux_installer>/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 `Top-Level Makefile <../../Overview/Top_Level_Makefile.html>`__ 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:

Expand All @@ -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 <==
Expand All @@ -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
Expand All @@ -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 <https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml?h=ti-linux-6.6.y>`__

::
.. code-block:: text

+------------------+--------------------+---------+----------------------------+
| Memory Section | Physical Address | Size | Description |
Expand All @@ -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
Expand Down Expand Up @@ -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>;
Expand Down
43 changes: 22 additions & 21 deletions source/linux/Foundational_Components_IPC_J721E.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand All @@ -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
Expand All @@ -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 <path_to_new_fw_binary>/ipc_echo_testb_freertos_mcu1_0_release.xer5f <path_to_linux_installer>/board-support/prebuilt-images/ti-dm/j721e/ipc_echo_testb_mcu1_0_release_strip.xer5f
host# cp <path_to_new_fw_binary>/ipc_echo_testb_freertos_mcu1_0_release.xer5f <path_to_linux_installer>/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 `Top-Level Makefile <../../Overview/Top_Level_Makefile.html>`__ 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:

Expand All @@ -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 <==
Expand Down Expand Up @@ -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
Expand All @@ -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 <https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml?h=ti-linux-6.6.y>`__

::
.. code-block:: text

+------------------+--------------------+---------+----------------------------+
| Memory Section | Physical Address | Size | Description |
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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>;
Expand Down
43 changes: 22 additions & 21 deletions source/linux/Foundational_Components_IPC_J721S2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
Expand All @@ -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
Expand All @@ -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 <path_to_new_fw_binary>/ipc_echo_testb_freertos_mcu1_0_release.xer5f <path_to_linux_installer>/board-support/prebuilt-images/ti-dm/j721s2/ipc_echo_testb_mcu1_0_release_strip.xer5f
host# cp <path_to_new_fw_binary>/ipc_echo_testb_freertos_mcu1_0_release.xer5f <path_to_linux_installer>/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 `Top-Level Makefile <../../Overview/Top_Level_Makefile.html>`__ 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:

Expand All @@ -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 <==
Expand All @@ -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
Expand Down Expand Up @@ -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 <https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/Documentation/devicetree/bindings/remoteproc/ti,k3-r5f-rproc.yaml?h=ti-linux-6.6.y>`__

::
.. code-block:: text

+------------------+--------------------+---------+----------------------------+
| Memory Section | Physical Address | Size | Description |
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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>;
Expand Down
Loading
Loading