From 1dbc0b0ab07ab46d33a563c842b972a1f6ed3fb8 Mon Sep 17 00:00:00 2001 From: Sipke Vriend Date: Mon, 26 May 2025 14:39:38 +1000 Subject: [PATCH 1/3] overview: change architecture topology to dual processor only review requests are that the example architecture is dual processor only as it is the common implementation. --- images/architecture/overview-architecture.svg | 314 +++++------------- openamp/overview.rst | 7 +- 2 files changed, 91 insertions(+), 230 deletions(-) diff --git a/images/architecture/overview-architecture.svg b/images/architecture/overview-architecture.svg index b5c8b6e6..669b159a 100644 --- a/images/architecture/overview-architecture.svg +++ b/images/architecture/overview-architecture.svg @@ -1,12 +1,12 @@ - + - + - + @@ -41,12 +41,10 @@ - - @@ -82,7 +80,7 @@ - + @@ -129,28 +127,28 @@ - - - - Main + + + + Main - - - - Remote + + + + Remote - - - - - - FW + + + + + + FW @@ -170,101 +168,36 @@ - - - - Remote Main + + + Remoteproc - - - Remoteproc + + + RPMsg - - - RPMsg - - - - - - - - - - - - - - - - FW - - - - - - - - ResourceTable - - - - - - - Remoteproc - - - - - + - + - - - - SharedMemory - - - - - - - - - - - - - + - - SharedMemory + + SharedMemory - - - - - - - Resource Assign - - - - + @@ -274,43 +207,33 @@ - - + + - - - - - IPC - - - - - - - - + + + - Load FW + IPC - - - - Hypervisor + + + + Hypervisor - - - - - Peripherals + + + + + Peripherals - + @@ -318,75 +241,28 @@ - - - - - Peripherals - - - - - - - Virtio - - - - - - - RPMsg - - - - - - - - - - - IPC - - - - - - - OpenAMP - - - - - - - RPMsg - - - - - - - Virtio + + + + RPMsg - - - - OpenAMP + + + + Virtio - - - - Virtio + + + + OpenAMP - + @@ -396,7 +272,7 @@ - + @@ -405,76 +281,60 @@ Start, Stop - - - - - - - - Start, Stop - - - - - - libmetal - - - - - - - libmetal + + + + libmetal - + libmetal - + Proxy - - + + - - + + - File IO + File IO - - - - RPC + + + + RPC - - - - - - - + + + + + + + + File IO - - - - RPC + + + + RPC diff --git a/openamp/overview.rst b/openamp/overview.rst index e39df6b8..20262b3f 100644 --- a/openamp/overview.rst +++ b/openamp/overview.rst @@ -197,9 +197,10 @@ The components comprising OpenAMP are: The :ref:`topology` is limited to main controller to remote system but otherwise open to the implementation. -The architecture is exemplified below via a daisy chained topology, with the center processor being -both remote and main controller for the next processor in the chain. This is an alternate topology -to the previous example in the :ref:`OpenAMP Fundamentals` section. +The architecture is exemplified below via a daisy chained topology, with a main processor +controlling a single remote in the chain. This implements the left half of the daisy chain +topology detailed in the :ref:`OpenAMP Fundamentals` section, and +is the commonly implemented topology. .. image:: ../images/architecture/overview-architecture.svg From 7e0e96b51182413dca2f110093a8babf31afacd1 Mon Sep 17 00:00:00 2001 From: Sipke Vriend Date: Mon, 9 Jun 2025 18:50:23 +1000 Subject: [PATCH 2/3] images-odg: adjust overview architecture based on review comments modified with assistance from arnaud.p to address review comments - the resource table should be on the remote side with an arrow going to the remoteproc box on the main processor., - on remote virtio and rpmsg should be in the OpenAMP box with a libmetal box below, - on main: same remark, - arrows should be horizontal - I'd like to suggest also removing the "proxy" box and "File IO" arrows - remove peripherals and add mailbox under shared memory --- images/architecture/overview-architecture.svg | 255 ++++++++---------- 1 file changed, 116 insertions(+), 139 deletions(-) diff --git a/images/architecture/overview-architecture.svg b/images/architecture/overview-architecture.svg index 669b159a..cd6cc147 100644 --- a/images/architecture/overview-architecture.svg +++ b/images/architecture/overview-architecture.svg @@ -1,12 +1,12 @@ - + - + - + @@ -25,6 +25,7 @@ + @@ -39,12 +40,13 @@ - - + - - + + + + @@ -57,30 +59,23 @@ - - - - - - - - + @@ -127,214 +122,196 @@ - - - - Main + + + + Main (Linux kernel) - - - - Remote + + + + Remote - - - - - - FW + + + + + + FW - - - Virtio + + + + ResourceTable - - - - ResourceTable + + + remoteproc - - - Remoteproc + + + + + + + + + + + + SharedMemory - + - - - RPMsg + + + + + + Load FW - + - - - + + + - + + + + - - SharedMemory + Mailbox - + - - - - - - Load FW + + + RPMsg device - + - - - - - - - IPC + + + Virtio - - - Hypervisor + + + open-amp - + - - - - Peripherals + + + + + + + Parse resources - + - - - - Peripherals + + + + + + Start, Stop - - - RPMsg + + + libmetal - - - Virtio + + + Virtio transport - - - OpenAMP + + + Virtiodevice - + - - - - - - Resource Assign + + + RPMsg device - + - - - - - - Start, Stop + + + Virtio - - - libmetal + + + Virtio transport - - - libmetal + + + Virtiodevice - - - Proxy + + + libmetal - + - - + + + - File IO - - - - - - - RPC - - - - - - - - - - - File IO - - - - - - - RPC + IPC From 88db7e514db9b204e766e145eb06338a23fd0931 Mon Sep 17 00:00:00 2001 From: Sipke Vriend Date: Mon, 16 Jun 2025 08:29:52 +1000 Subject: [PATCH 3/3] overview: remove duplicate architecture diagrams review requested removal of duplicate architecture diagrams in each sub section. --- .../overview-architecture-libmetal.svg | 498 ------------------ .../overview-architecture-proxy.svg | 488 ----------------- .../overview-architecture-remoteproc.svg | 491 ----------------- .../overview-architecture-rpmsg.svg | 492 ----------------- openamp/overview.rst | 8 - 5 files changed, 1977 deletions(-) delete mode 100644 images/architecture/overview-architecture-libmetal.svg delete mode 100644 images/architecture/overview-architecture-proxy.svg delete mode 100644 images/architecture/overview-architecture-remoteproc.svg delete mode 100644 images/architecture/overview-architecture-rpmsg.svg diff --git a/images/architecture/overview-architecture-libmetal.svg b/images/architecture/overview-architecture-libmetal.svg deleted file mode 100644 index 7d32252d..00000000 --- a/images/architecture/overview-architecture-libmetal.svg +++ /dev/null @@ -1,498 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Main - - - - - - - - Remote - - - - - - - - - - FW - - - - - - - - libmetal - - - - - - - - Virtio - - - - - - - - ResourceTable - - - - - - - - Remote Main - - - - - - - Remoteproc - - - - - - - - RPMsg - - - - - - - - - - - - - - - - FW - - - - - - - - ResourceTable - - - - - - - Remoteproc - - - - - - - - - - - - - - - - SharedMemory - - - - - - - - - - - - - - - - SharedMemory - - - - - - - - - - Resource Assign - - - - - - - - - - Load FW - - - - - - - - - - Load FW - - - - - - - Hypervisor - - - - - - - - Peripherals - - - - - - - - Peripherals - - - - - - - - Peripherals - - - - - - - - libmetal - - - - - - - - Virtio - - - - - - - - RPMsg - - - - - - - OpenAMP - - - - - - - - libmetal - - - - - - - - RPMsg - - - - - - - - Virtio - - - - - - - OpenAMP - - - - - - - - Virtio - - - - - - - - - - Resource Assign - - - - - - - - - - Start, Stop - - - - - - - - - - Start, Stop - - - - - - - - Proxy - - - - - - - - - - File IO - - - - - - - - RPC - - - - - - - - - - - - - - - - - - RPC - - - - - - - - - - - IPC - - - - - - - - - - - IPC - - - - - - - - \ No newline at end of file diff --git a/images/architecture/overview-architecture-proxy.svg b/images/architecture/overview-architecture-proxy.svg deleted file mode 100644 index 178a562d..00000000 --- a/images/architecture/overview-architecture-proxy.svg +++ /dev/null @@ -1,488 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Main - - - - - - - - Remote - - - - - - - - - - FW - - - - - - - Virtio - - - - - - - - ResourceTable - - - - - - - - Remote Main - - - - - - - Remoteproc - - - - - - - RPMsg - - - - - - - - - - - - - - - - FW - - - - - - - - ResourceTable - - - - - - - Remoteproc - - - - - - - - - - - - - - - - SharedMemory - - - - - - - - - - - - - - - - SharedMemory - - - - - - - - - - Resource Assign - - - - - - - - - - Load FW - - - - - - - - - - - IPC - - - - - - - - - - Load FW - - - - - - - Hypervisor - - - - - - - - Peripherals - - - - - - - - Peripherals - - - - - - - - Peripherals - - - - - - - Virtio - - - - - - - RPMsg - - - - - - - - - - - IPC - - - - - - - OpenAMP - - - - - - - RPMsg - - - - - - - Virtio - - - - - - - OpenAMP - - - - - - - Virtio - - - - - - - - - - Resource Assign - - - - - - - - - - Start, Stop - - - - - - - - - - Start, Stop - - - - - - - libmetal - - - - - - - libmetal - - - - - - - libmetal - - - - - - - - Proxy - - - - - - - - - - File IO - - - - - - - - RPC - - - - - - - - RPC - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/architecture/overview-architecture-remoteproc.svg b/images/architecture/overview-architecture-remoteproc.svg deleted file mode 100644 index 2f99240b..00000000 --- a/images/architecture/overview-architecture-remoteproc.svg +++ /dev/null @@ -1,491 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Main - - - - - - - - Remote - - - - - - - - - - FW - - - - - - - Virtio - - - - - - - - - - ResourceTable - - - - - - - - Remote Main - - - - - - - - Remoteproc - - - - - - - RPMsg - - - - - - - - - - - - - - - - FW - - - - - - - - - - ResourceTable - - - - - - - - Remoteproc - - - - - - - - - - - - - - - - SharedMemory - - - - - - - - - - - - - - - - SharedMemory - - - - - - - - - - Resource Assign - - - - - - - - - - Load FW - - - - - - - - - - - IPC - - - - - - - - - - Load FW - - - - - - - Hypervisor - - - - - - - - Peripherals - - - - - - - - Peripherals - - - - - - - - Peripherals - - - - - - - Virtio - - - - - - - RPMsg - - - - - - - - - - - IPC - - - - - - - OpenAMP - - - - - - - RPMsg - - - - - - - Virtio - - - - - - - OpenAMP - - - - - - - Virtio - - - - - - - - - - Resource Assign - - - - - - - - - - Start, Stop - - - - - - - - - - Start, Stop - - - - - - - libmetal - - - - - - - libmetal - - - - - - - libmetal - - - - - - - Proxy - - - - - - - - - - File IO - - - - - - - RPC - - - - - - - - - - - - - - - - - RPC - - - - - - - - \ No newline at end of file diff --git a/images/architecture/overview-architecture-rpmsg.svg b/images/architecture/overview-architecture-rpmsg.svg deleted file mode 100644 index 1282c469..00000000 --- a/images/architecture/overview-architecture-rpmsg.svg +++ /dev/null @@ -1,492 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Main - - - - - - - - Remote - - - - - - - - - - FW - - - - - - - - Virtio - - - - - - - - ResourceTable - - - - - - - - Remote Main - - - - - - - Remoteproc - - - - - - - - RPMsg - - - - - - - - - - FW - - - - - - - - ResourceTable - - - - - - - Remoteproc - - - - - - - - - - - - - - - - SharedMemory - - - - - - - - - - - - - - - - SharedMemory - - - - - - - - - - Resource Assign - - - - - - - - - - Load FW - - - - - - - - - - Load FW - - - - - - - Hypervisor - - - - - - - - Peripherals - - - - - - - - Peripherals - - - - - - - - Peripherals - - - - - - - - Virtio - - - - - - - - RPMsg - - - - - - - OpenAMP - - - - - - - - RPMsg - - - - - - - - Virtio - - - - - - - OpenAMP - - - - - - - - Virtio - - - - - - - - - - Resource Assign - - - - - - - - - - Start, Stop - - - - - - - - - - Start, Stop - - - - - - - libmetal - - - - - - - libmetal - - - - - - - libmetal - - - - - - - Proxy - - - - - - - - - - File IO - - - - - - - RPC - - - - - - - - - - - - - - - - - RPC - - - - - - - - - - - IPC - - - - - - - - - - - IPC - - - - - - - - - - - - - - \ No newline at end of file diff --git a/openamp/overview.rst b/openamp/overview.rst index 20262b3f..495c299a 100644 --- a/openamp/overview.rst +++ b/openamp/overview.rst @@ -221,8 +221,6 @@ remote processor and starting and stopping the remote. and peripheral allocation as well as information for establishing the IPC between associated processors. -.. image:: ../images/architecture/overview-architecture-remoteproc.svg - .. _overview-rpmsg-work-label: RPMsg and Virtio @@ -236,8 +234,6 @@ This abstraction, using virtio, means that the implementer can optionally use :ref:`resource isolation` (e.g. using a hypervisor or secure context), which is exemplified by the first processor in the architecture diagram. -.. image:: ../images/architecture/overview-architecture-rpmsg.svg - .. _overview-proxy-rpc-work-label: RPMsg Services @@ -255,8 +251,6 @@ The RPC service provides for remote procedure calls from a server to a client. I diagram the right hand processor has the RPC server servicing the center main controller processor's RPC client. -.. image:: ../images/architecture/overview-architecture-proxy.svg - .. _overview-proxy-libmetal-label: Libmetal @@ -266,8 +260,6 @@ Libmetal portability across different platforms. Vendors porting OpenAMP will provide an implementation of libmetal for their system. -.. image:: ../images/architecture/overview-architecture-libmetal.svg - .. _project-aims-work-label: Read more about the OpenAMP System Components :ref:`here`.