Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
65762d0
index: add explicit hidden toc for any submodule files not to include
Dec 22, 2025
fb5b5ce
demos:echo: add links to reference build documentation
Dec 22, 2025
5c3ee1f
demos:reference_boards: add links to reference build information
Feb 16, 2026
928b7f8
demos:matrix_multiply: add reference to build documentation in reference
Feb 22, 2026
6cab97a
demos:rpmsg_multi_services: add links to reference build documentation
Feb 22, 2026
600925d
demos:linux_rpc: add references to build documentation in reference repo
Feb 22, 2026
5743f74
demos:linux_rpc: add reference to build of remote processor rpc demo
Feb 23, 2026
4ee9321
demos: add amd specific system reference info to reference boards page
Feb 23, 2026
b5ec6e5
index: suppress warnings for readme that do not have readthedocs example
Feb 23, 2026
53ec627
conf: do not include hidden tocs in side bar
Mar 8, 2026
b3dc08c
demos: integrate readmes from hypervisorless_virtio_zcu102
Mar 8, 2026
056d575
index: hide the open-amp and library readme files
Mar 8, 2026
5877782
index: hide the openamp-docs readme file
Mar 8, 2026
341780f
index: hide maintainers file from table of contents
Mar 8, 2026
e7c0aa3
index: hide lopper repository specific documentation files
Mar 9, 2026
1c41fed
tools: rearrange lopper files and intergrate docs from lopper repo
Mar 9, 2026
1197e65
Remove invalid readme file
Mar 9, 2026
b372fe0
overview: remove duplicate reference and invalid indent warnings
Mar 16, 2026
26cd40a
wip: temporary bump of gitmodule for demonstration purposes.
Mar 16, 2026
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
10 changes: 5 additions & 5 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
[submodule "open-amp"]
path = open-amp
url = https://github.com/OpenAMP/open-amp.git
url = https://github.com/sipke/open-amp.git
[submodule "hypervisorless_virtio_zcu102"]
path = hypervisorless_virtio_zcu102
url = https://github.com/danmilea/hypervisorless_virtio_zcu102.git
url = https://github.com/sipke/hypervisorless_virtio_zcu102.git
[submodule "lopper"]
path = lopper
url = https://github.com/devicetree-org/lopper.git
url = https://github.com/sipke/lopper.git
[submodule "openamp-system-reference"]
path = openamp-system-reference
url = https://github.com/OpenAMP/openamp-system-reference.git
url = https://github.com/sipke/openamp-system-reference.git
[submodule "libmetal"]
path = libmetal
url = https://github.com/OpenAMP/libmetal.git
url = https://github.com/sipke/libmetal.git
[submodule "awesome"]
path = _doxygen/awesome
url = https://github.com/jothepro/doxygen-awesome-css.git
3 changes: 2 additions & 1 deletion conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,8 @@
html_logo = '_static/images/openAMP_combox_dark_trim.svg'

html_theme_options = {
'logo_only': True
'logo_only': True,
'includehidden': False
}

# below copied / hacked from Zephyr projects' zephyr/doc/conf.py
Expand Down
11 changes: 11 additions & 0 deletions demos/echo.rst
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,14 @@ This Echo Test Sample is demonstrated in the following reference implementations
* :ref:`Docker Images<docker-images-label>` as demo1A
* :ref:`AMD-Xilinx platforms<demos-AMD-work-label>`
* :ref:`Inter Process Demos<inter-process-reference-label>`


***************************
Echo Test Build Information
***************************

.. toctree::
:maxdepth: 2
:titlesonly:

../openamp-system-reference/examples/legacy_apps/examples/echo/README
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we should not rework the readme files

../openamp-system-reference/examples/legacy_apps/README should perhaps describe how to set the compilation environment , and we should remove the Run application on a Linux PC chapter.

Link to openamp-system-reference/examples/legacy_apps/README in ../openamp-system-reference/examples/legacy_apps/examples/echo/README seems broken.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, adjusting readme files to suit inclusion into openamp docs would make sense.
Yes, as mentioned in the PR summary (second last paragraph) some links are broken as they do not use sphinx references. I did not fix those for this draft pull request as was just showing how the toc not included warnings can be corrected as example before proceeding to address all as there are quite some.

13 changes: 12 additions & 1 deletion demos/hvl_virtio.rst
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,17 @@ This Hypervisorless Virtio Samples are demonstrated in the following reference i
For information on building and running the demonstrations for zcu102 refer to

.. toctree::
:maxdepth: 2
:maxdepth: 1

../hypervisorless_virtio_zcu102/README_demo
../hypervisorless_virtio_zcu102/README
../hypervisorless_virtio_zcu102/zephyr_r5/README
../hypervisorless_virtio_zcu102/zephyr_r5/hello_r5/README

For more information on Hypervisorless Virtio and associated OpenAMP support refer to

.. toctree::
:maxdepth: 1

../hypervisorless_virtio_zcu102/README_hypervisorless_virtio.md
../hypervisorless_virtio_zcu102/README_openamp_virtio.md
21 changes: 19 additions & 2 deletions demos/linux_rpc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,25 @@ This Linux RPC Sample is demonstrated in the following reference implementations

* :ref:`Linux Inter Process <inter-process-reference-label>`


********************************
Linux RPC Demo Build Information
********************************

.. toctree::
:maxdepth: 1
:caption: Demo Compile and Execution Instructions
:maxdepth: 2

../openamp-system-reference/examples/legacy_apps/examples/linux_rpc_demo/README


*********************************************
Alternate Bare Metal Remote Build Information
*********************************************

The following sections detail how to build a baremetal remote if you wish to run this example
on a remote processor rather than secondary linux process.

.. toctree::
:maxdepth: 2

../openamp-system-reference/examples/legacy_apps/examples/rpc_demo/README
11 changes: 11 additions & 0 deletions demos/matrix_multiply.rst
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,14 @@ This Matrix Multiply Sample is demonstrated in the following reference implement
* :ref:`Docker Images<docker-images-label>` as demo1B
* :ref:`AMD-Xilinx platforms<demos-AMD-work-label>`
* :ref:`Inter Process Demos<inter-process-reference-label>`


*********************************
Matrix Multiply Build Information
*********************************

.. toctree::
:maxdepth: 2
:titlesonly:

../openamp-system-reference/examples/legacy_apps/examples/matrix_multiply/README
1 change: 1 addition & 0 deletions demos/reference_boards.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ number of examples. Additional supporting code is located in the
system_reference-NXP
system_reference-TI
inter_process
../openamp-system-reference/examples/legacy_apps/README
11 changes: 11 additions & 0 deletions demos/rpmsg_multi_services.rst
Original file line number Diff line number Diff line change
Expand Up @@ -216,3 +216,14 @@ This RPMsg Multi Services Sample is demonstrated in the following reference impl
* :ref:`Texas Instruments <reference_board_TI>`

* Refer to `Zephyr Build Instructions <https://github.com/OpenAMP/openamp-system-reference/tree/main/examples/zephyr/rpmsg_multi_services>`_.


**************************************
RPMsg Multi Services Build Information
**************************************

.. toctree::
:maxdepth: 2
:titlesonly:

../openamp-system-reference/examples/zephyr/rpmsg_multi_services/README
7 changes: 7 additions & 0 deletions demos/system_reference-AMD-Xilinx.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,10 @@ The following Reference Samples and Demos are implemented using the
../openamp-system-reference/examples/linux/rpmsg-echo-test/README.md
../openamp-system-reference/examples/linux/rpmsg-mat-mul/README.md
../openamp-system-reference/examples/linux/rpmsg-proxy-app/README.md
../openamp-system-reference/examples/libmetal/machine/host/amd_linux_userspace/README
../openamp-system-reference/examples/libmetal/machine/remote/amd_rpu/README
../openamp-system-reference/examples/libmetal/machine/remote/amd_rpu/system/freertos/README
../openamp-system-reference/examples/libmetal/machine/remote/amd_rpu/system/generic/README
../openamp-system-reference/examples/legacy_apps/machine/xlnx/README
../openamp-system-reference/examples/legacy_apps/machine/xlnx/microblaze_generic/README
../openamp-system-reference/examples/linux/dts/xilinx/README
2 changes: 1 addition & 1 deletion hypervisorless_virtio_zcu102
49 changes: 49 additions & 0 deletions index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,52 @@ Welcome to the OpenAMP Project Documentation
protocol_details/index
docs/porting_guide
openamp/glossary


..
TOC entries used to suppress warnings we accept for files not included in a table of contents.
WARNING: document isn't included in any toctree [toc.not_included]
Note that each library's (e.g. open-amp) readme file is included via the REFERENCE section links
in the navigation bar on the left.

.. toctree::
:hidden:

README
openamp-system-reference/README
openamp-system-reference/LICENSE
open-amp/.github/actions/build_ci/README
open-amp/README
open-amp/MAINTAINERS
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

generate page is empty ?
_m_a_i_n_t_a_i_n_e_r_s_8md.html

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting. doxygen looks to have generated two files. The one you link is empty, the other has the content.

find _build/openamp/doc/html/ | grep -i m_a_i_n_t_a_i_n_e_r_s
_build/openamp/doc/html/md__m_a_i_n_t_a_i_n_e_r_s.html
_build/openamp/doc/html/_m_a_i_n_t_a_i_n_e_r_s_8md.html

The one with the expected content can be navigated to via REFERENCE, open-amp API, Maintainers.
The page you linked I found via the search. Is that how you got to it, or is it referenced in a menu item also?
Do not know yet why the two files.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This same issue seems to happen with the LICENSE file included in doxygen INPUT
e.g. https://openamp--82.org.readthedocs.build/en/82/doxygen/libmetal/_l_i_c_e_n_s_e_8md.html is generated as well as
https://openamp--82.org.readthedocs.build/en/82/doxygen/libmetal/md__l_i_c_e_n_s_e.html

So these PR changes have not introduced this duplication of html file generation as detailed above.

Dug into it a bit but haven't found root cause, but initial indication is possible conflict in naming causing doxygen to generate multiples, or something with the search indexing or both.

Will change this out of draft and submit submodule PRs. If we want to figure out why the duplication its probably deserves an issue and separate investigation.

open-amp/LICENSE
libmetal/.github/actions/build_ci/README
libmetal/README
libmetal/MAINTAINERS
libmetal/LICENSE
lopper/LICENSE
lopper/specification/README
lopper/tests/MIGRATION_GUIDE
lopper/tests/README
lopper/README
lopper/README-architecture
lopper/specification/source/index
lopper/docs/amd/linux/source/index
lopper/docs/amd/zephyr/source/index
lopper/demos/openamp/README.md

..
TOC entries for examples which do not have readthedocs descriptions so suppressing to avoid the
warning:
WARNING: document isn't included in any toctree [toc.not_included]
If readthedocs description is added, these should be integrated into that description.

.. toctree::
:hidden:

openamp-system-reference/examples/legacy_apps/examples/nocopy_echo/README
openamp-system-reference/examples/legacy_apps/examples/rpmsg_sample_echo/README
openamp-system-reference/examples/libmetal/README
openamp-system-reference/examples/libmetal/demos/irq_shmem_demo/README
openamp-system-reference/examples/libmetal/demos/irq_shmem_demo/host/README
openamp-system-reference/examples/libmetal/demos/irq_shmem_demo/remote/README
openamp-system-reference/examples/zephyr/dual_qemu_ivshmem/README
2 changes: 1 addition & 1 deletion libmetal
Submodule libmetal updated 1 files
+1 −15 doc/Doxyfile.in
2 changes: 1 addition & 1 deletion lopper
Submodule lopper updated 47 files
+38 −4 README-architecture.md
+5 −3 README.md
+7 −7 docs/amd/zephyr/source/cortex-a78/index.rst
+7 −7 docs/amd/zephyr/source/cortex-r52/index.rst
+1 −1 docs/amd/zephyr/source/microblaze-riscv/index.rst
+86 −6 lopper/__init__.py
+23 −27 lopper/__main__.py
+7 −12 lopper/assists/baremetal_xparameters_xlnx.py
+3 −60 lopper/assists/baremetalconfig_xlnx.py
+127 −8 lopper/assists/domain_access.py
+65 −4 lopper/assists/gen_domain_dts.py
+185 −0 lopper/assists/gen_qemu_mem_cfg.py
+36 −10 lopper/assists/lopper_lib.py
+1 −0 lopper/assists/openamp_xlnx.py
+244 −0 lopper/assists/yaml_bindings/xlnx,riscv-cpus.yaml
+53 −1 lopper/assists/yaml_bindings/xlnx,v-hdmi-phy1.yaml
+218 −76 lopper/assists/yaml_to_dts_expansion.py
+33 −0 lopper/assists/zephyr_supported_comp.yaml
+280 −0 lopper/audit.py
+1 −1 lopper/base.py
+3 −1 lopper/lops/%.yaml.lop
+1 −0 lopper/lops/lop-a53-imux.dts
+1 −0 lopper/lops/lop-a72-imux.dts
+1 −0 lopper/lops/lop-a78-imux.dts
+99 −0 lopper/lops/lop-domain-chosen.dts
+1 −0 lopper/lops/lop-r5-imux.dts
+1 −0 lopper/lops/lop-r52-imux.dts
+18 −393 lopper/lops/lop-xlate-yaml.dts
+9 −0 lopper/schema.py
+102 −0 lopper/selftest/assist-sanity.py
+66 −0 lopper/selftest/domains/reserved-memory-boolean-test.yaml
+67 −0 lopper/selftest/domains/reserved-memory-e2e-domain.yaml
+61 −0 lopper/selftest/domains/reserved-memory-e2e-test.yaml
+37 −0 lopper/selftest/domains/reserved-memory-outside-domain.yaml
+98 −0 lopper/selftest/reserved-memory-test-sdt.dts
+157 −27 lopper/tree.py
+5 −0 lopper/yaml.py
+48 −0 lopper_sanity.py
+15 −5 run_pytest.sh
+1 −1 specification/source/chapter6-simplified-yaml.rst
+204 −0 tests/test_assist_matching.py
+769 −0 tests/test_audit.py
+400 −0 tests/test_glob_access.py
+377 −0 tests/test_lops.py
+721 −0 tests/test_reserved_memory.py
+214 −0 tests/test_tree.py
+75 −0 tests/test_yaml.py
2 changes: 1 addition & 1 deletion open-amp
4 changes: 3 additions & 1 deletion openamp/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -283,17 +283,19 @@ This is achieved through the OpenAMP library which:
(`See OpenAMP repository <https://github.com/OpenAMP>`_)
- works on different system thanks to the `libmetal <https://github.com/libmetal>`_
adaptation layer:

- Bare Metal (No OS)
- Multiple RTOS's, including `FreeRTOS <https://freertos.org/>`_,
`NuttX <https://nuttx.apache.org/>`_, `Zephyr <https://www.zephyrproject.org/>`_,
`VxWorks <https://www.windriver.com/products/vxworks>`_, and more

- OS's on top of hypervisors
- Within hypervisors
- is compatible with different compilers such as gcc, clang, armcc and more
- maintains compatibility with the Linux kernel by leveraging the following frameworks:
`remoteproc <https://www.kernel.org/doc/html/latest/staging/remoteproc.html>`_,
`RPMsg <https://www.kernel.org/doc/html/latest/staging/rpmsg.html>`_ and
`Virtio <https://docs.kernel.org/driver-api/virtio/virtio.html>`_ frameworks.
`Virtio Driver <https://docs.kernel.org/driver-api/virtio/virtio.html>`_ frameworks.


.. _governance-work-label:
Expand Down
7 changes: 3 additions & 4 deletions tools/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,10 @@
OpenAMP Supporting Tools
=========================

Lopper
------

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding https://openamp--82.org.readthedocs.build/en/82/tools/index.html#
the chapter lopper is displayed twice

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed table of contents caption to remove the duplicate

.. toctree::
:maxdepth: 2
:caption: Contents:

lopper
../lopper/demos/openamp/README.md

* Run the Lopper Demonstration as demo5 in :ref:`Docker Images<docker-images-label>`.
44 changes: 3 additions & 41 deletions tools/lopper.rst
Original file line number Diff line number Diff line change
@@ -1,44 +1,6 @@
===================
OpenAMP Lopper Tool
===================

.. _lopper-tool-intro:

***************
Lopper Intro
***************
.. toctree::
:maxdepth: 1

System Device Trees (S-DT) are used to describe resources of `heterogeneous <https://en.wikipedia.org/wiki/Heterogeneous_computing>`_ embedded environments.

Their intent is to be the industry standard method for defining how computing resources are divided into independent :ref:`runtime domains<resource-assignment-work-label>`.

Examples of domains are

* a computing unit, e.g. RTOS on R5s
* an operating environment at a specific execution level (e.g. `OPTEE <https://optee.readthedocs.io/en/latest/general/about.html>`_)
* a virtual machine (e.g. `Xen <https://xenproject.org/>`_)

For those familiar with `Device Trees (DTS) <https://www.kernel.org/doc/html/latest/devicetree/usage-model.html>`_ think of the S-DT as a combination of multiple device trees to define sub-systems. DTS' define resources seen from one address space, whereas S-DT's define the topology of the full system.

The `Lopper Tool <https://github.com/devicetree-org/lopper>`_ provides a way to generate sub-system DTS' from S-DT's and manipulate, inspect or verify the S-DT for correctness.

.. image:: ../images/tools/lopper-intro.svg


The `Lopper Tool <https://github.com/devicetree-org/lopper>`_ is a data driven tool written in Python, and supports inputs in dts, dtb and yaml format. Actions, which are used to manipulate the input data, are provided as unit operations (lops) as DTS formatted files. These are small transformation commands, inline Python source or for more complex scenarios `lopper assists <https://github.com/devicetree-org/lopper/tree/master/lopper/assists>`_ Python modules.

The diagram below shows an example of three transformations performed by lopper through three independent DTS files which define the actions to perform.

.. image:: ../images/tools/lopper-actions.svg

Lopper is built on top of device tree tools, `Device Tree Compiler (DTC) <https://github.com/torvalds/linux/tree/master/scripts/dtc>`_ and `libfdt <https://github.com/torvalds/linux/tree/master/scripts/dtc/libfdt>`_.


References
^^^^^^^^^^

:ref:`Lopper Architecture Readme<lopper/README-architecture:lopper processing flow:>`

`Linaro Connect 2020 - System Device Tree & Lopper Slide Set <https://static.linaro.org/connect/lvc20/presentations/LVC20-314-0.pdf>`_

`Open Source Summit 2022 Slide Set <https://static.sched.com/hosted_files/ossna2022/d9/Lopper%20ELCNA%202022.pdf>`_
lopper_intro
43 changes: 43 additions & 0 deletions tools/lopper_intro.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@

.. _lopper-tool-intro:

====================
OpenAMP Lopper Intro
====================

System Device Trees (S-DT) are used to describe resources of `heterogeneous <https://en.wikipedia.org/wiki/Heterogeneous_computing>`_ embedded environments.

Their intent is to be the industry standard method for defining how computing resources are divided into independent :ref:`runtime domains<resource-assignment-work-label>`.

Examples of domains are

* a computing unit, e.g. RTOS on R5s
* an operating environment at a specific execution level (e.g. `OPTEE <https://optee.readthedocs.io/en/latest/general/about.html>`_)
* a virtual machine (e.g. `Xen <https://xenproject.org/>`_)

For those familiar with `Device Trees (DTS) <https://www.kernel.org/doc/html/latest/devicetree/usage-model.html>`_ think of the S-DT as a combination of multiple device trees to define sub-systems. DTS' define resources seen from one address space, whereas S-DT's define the topology of the full system.

The `Lopper Tool <https://github.com/devicetree-org/lopper>`_ provides a way to generate sub-system DTS' from S-DT's and manipulate, inspect or verify the S-DT for correctness.

.. image:: ../images/tools/lopper-intro.svg


The `Lopper Tool <https://github.com/devicetree-org/lopper>`_ is a data driven tool written in Python, and supports inputs in dts, dtb and yaml format. Actions, which are used to manipulate the input data, are provided as unit operations (lops) as DTS formatted files. These are small transformation commands, inline Python source or for more complex scenarios `lopper assists <https://github.com/devicetree-org/lopper/tree/master/lopper/assists>`_ Python modules.

The diagram below shows an example of three transformations performed by lopper through three independent DTS files which define the actions to perform.

.. image:: ../images/tools/lopper-actions.svg

Lopper is built on top of device tree tools, `Device Tree Compiler (DTC) <https://github.com/torvalds/linux/tree/master/scripts/dtc>`_ and `libfdt <https://github.com/torvalds/linux/tree/master/scripts/dtc/libfdt>`_.

Run the Lopper Demonstration as demo5 in :ref:`Docker Images<docker-images-label>`.


References
^^^^^^^^^^

`Linaro Connect 2020 - System Device Tree & Lopper Slide Set <https://static.linaro.org/connect/lvc20/presentations/LVC20-314-0.pdf>`_

`Open Source Summit 2022 Slide Set <https://static.sched.com/hosted_files/ossna2022/d9/Lopper%20ELCNA%202022.pdf>`_

`Lopper Repository <https://github.com/devicetree-org/lopper>`_