Branch: refs/heads/main
Home: https://github.com/OpenAMP/libmetal
Commit: 0ad1183a821bf3713dbb825887d86054d5458fa3
https://github.com/OpenAMP/libmetal/commit/0ad1183a821bf3713dbb825887d86054…
Author: Tanmay Shah <tanmay.shah(a)amd.com>
Date: 2023-09-11 (Mon, 11 Sep 2023)
Changed paths:
M lib/utilities.h
Log Message:
-----------
lib: utilities: add MB and GB defines
If MB and GB definition is not available then define new ones
Signed-off-by: Tanmay Shah <tanmay.shah(a)amd.com>
Branch: refs/heads/main
Home: https://github.com/OpenAMP/libmetal
Commit: 6d571fd068e1998a39a39c1d18d5ff10195274e9
https://github.com/OpenAMP/libmetal/commit/6d571fd068e1998a39a39c1d18d5ff10…
Author: Ben Levinsky <ben.levinsky(a)amd.com>
Date: 2023-09-11 (Mon, 11 Sep 2023)
Changed paths:
M lib/system/freertos/sys.h
Log Message:
-----------
lib: system: freertos: Add metal/errno.h to match standalone
As lib/system/generic/sys.h has metal/errno.h add this to the freertos
equivalent.
This fixes some compilation issues when linking against certain FreeRTOS port
BSPs.
Signed-off-by: Ben Levinsky <ben.levinsky(a)amd.com>
Hello All,
RPMsg in U-Boot is under development. First proof of concept patch v1 was sent to upstream mailing list as RFC patch here: http://patchwork.ozlabs.org/project/uboot/list/?series=365
Here is the video of demo of RPMsg framework introduced in above patch series:
https://www.youtube.com/watch?v=PxGNR_FYGt8
This document explains patch series and motivation to introduce RPMsg in U-Boot and future work that needs to be done: https://drive.google.com/file/d/1Bjtzj58klMPVuWEtRK89oyem7_Hdajn8/view?usp=…
This patch series is very basic implementation of virtio based RPMsg framework referenced from the Linux kernel. For now, U-Boot is communicating with remote processor over fix hard-coded endpoint. More advance features such as name-service, multiple endpoint support etc.. will be added in coming revisions of this patch series. Meanwhile, please feel free to review existing work and provide review comments and any other suggestions.
Thanks,
Tanmay
Hello All,
RPMsg in U-Boot is under development. First proof of concept patch v1
was sent to upstream mailing list as RFC patch here:
[1]http://patchwork.ozlabs.org/project/uboot/list/?series=365
Here is the video of demo of RPMsg framework introduced in above patch
series:
[2]https://www.youtube.com/watch?v=PxGNR_FYGt8
This document explains patch series and motivation to introduce RPMsg
in U-Boot and future work that needs to be done:
[3]https://drive.google.com/file/d/1Bjtzj58klMPVuWEtRK89oyem7_Hdajn8/vi
ew?usp=sharing
This patch series is very basic implementation of virtio based RPMsg
framework referenced from the Linux kernel. For now, U-Boot is
communicating with remote processor over fix hard-coded endpoint. More
advance features such as name-service, multiple endpoint support etc..
will be added in coming revisions of this patch series. Meanwhile,
please feel free to review existing work and provide review comments
and any other suggestions.
Thanks,
Tanmay
References
1. http://patchwork.ozlabs.org/project/uboot/list/?series=365
2. https://www.youtube.com/watch?v=PxGNR_FYGt8
3. https://drive.google.com/file/d/1Bjtzj58klMPVuWEtRK89oyem7_Hdajn8/view?usp=…
Branch: refs/heads/main
Home: https://github.com/OpenAMP/libmetal
Commit: 548f6428557acaa1ac218ab74b1e04b16f183f1c
https://github.com/OpenAMP/libmetal/commit/548f6428557acaa1ac218ab74b1e04b1…
Author: Sergei Korneichuk <sergei.korneichuk(a)amd.com>
Date: 2023-08-21 (Mon, 21 Aug 2023)
Changed paths:
M lib/atomic.h
Log Message:
-----------
Export each of the memory_order enumerators
The lib/atomic.h exports memory_order enum into the global namespace,
but none of its enumerators. According to Section 7.3.3 "The using
declaration" of the C++ standard: "specifying an enumeration name
in a using-declaration does not declare its enumerators in
the using-declaration's declarative region." See also:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0943r1.html
Signed-off-by: Sergei Korneichuk <sergei.korneichuk(a)amd.com>
Branch: refs/heads/main
Home: https://github.com/OpenAMP/openamp-system-reference
Commit: c2c89575efbfa3428fa825dc0e06957fc7cce409
https://github.com/OpenAMP/openamp-system-reference/commit/c2c89575efbfa342…
Author: Felipe Neves <felipe.neves(a)linaro.org>
Date: 2023-08-17 (Thu, 17 Aug 2023)
Changed paths:
M examples/zephyr/README.md
A examples/zephyr/dual_qemu_ivshmem/.gitignore
A examples/zephyr/dual_qemu_ivshmem/README.rst
A examples/zephyr/dual_qemu_ivshmem/host/CMakeLists.txt
A examples/zephyr/dual_qemu_ivshmem/host/app.overlay
A examples/zephyr/dual_qemu_ivshmem/host/boards/pcie_ivshmem.dtsi
A examples/zephyr/dual_qemu_ivshmem/host/boards/qemu_cortex_a53.conf
A examples/zephyr/dual_qemu_ivshmem/host/prj.conf
A examples/zephyr/dual_qemu_ivshmem/host/src/main.c
A examples/zephyr/dual_qemu_ivshmem/remote/CMakeLists.txt
A examples/zephyr/dual_qemu_ivshmem/remote/app.overlay
A examples/zephyr/dual_qemu_ivshmem/remote/boards/pcie_ivshmem.dtsi
A examples/zephyr/dual_qemu_ivshmem/remote/boards/qemu_cortex_a53.conf
A examples/zephyr/dual_qemu_ivshmem/remote/prj.conf
A examples/zephyr/dual_qemu_ivshmem/remote/src/main.c
A examples/zephyr/dual_qemu_ivshmem/rpmsg_ivshmem_backend/rpmsg_ivshmem_backend.c
A examples/zephyr/dual_qemu_ivshmem/rpmsg_ivshmem_backend/rpmsg_ivshmem_backend.h
Log Message:
-----------
examples: dual_qemu_ivshmem: add RPMsg over IVSHMEM sample code.
The additions include a backend to glue the Zephyr IVSHMEM
device driver into the openAMP code making it usable to send
data between two QEMU instances using the RPMsg protocol.
Also a custom shell command in the host side application
is provided to send string messages for a number of times.
Signed-off-by: Felipe Neves <felipe.neves(a)linaro.org>
Commit: 9c752508112513cf44892a45fdfc2007d37ad591
https://github.com/OpenAMP/openamp-system-reference/commit/9c752508112513cf…
Author: Felipe Neves <felipe.neves(a)linaro.org>
Date: 2023-08-17 (Thu, 17 Aug 2023)
Changed paths:
M west.yml
Log Message:
-----------
west: update zephyr revsion to v3.4-branch
This revision contains the IVSHMEM infrastructure
needed to make the RPMsg over it to work.
Signed-off-by: Felipe Neves <felipe.neves(a)linaro.org>
Compare: https://github.com/OpenAMP/openamp-system-reference/compare/6a612fae306c...…
Branch: refs/heads/main
Home: https://github.com/OpenAMP/open-amp
Commit: e63d07d10577b06c5b3fc8e1c20ede74779d3132
https://github.com/OpenAMP/open-amp/commit/e63d07d10577b06c5b3fc8e1c20ede74…
Author: Dan Milea <dan.milea(a)windriver.com>
Date: 2023-08-17 (Thu, 17 Aug 2023)
Changed paths:
M cmake/options.cmake
M lib/CMakeLists.txt
M lib/include/openamp/rpmsg_virtio.h
M lib/include/openamp/virtio.h
A lib/include/openamp/virtio_mmio.h
M lib/include/openamp/virtqueue.h
M lib/virtio/virtio.c
A lib/virtio_mmio/CMakeLists.txt
A lib/virtio_mmio/virtio_mmio_drv.c
Log Message:
-----------
virtio: virtio-mmio framework
VIRTIO MMIO transport for OpenAMP.
Signed-off-by: Dan Milea <dan.milea(a)windriver.com>
Branch: refs/heads/main
Home: https://github.com/OpenAMP/libmetal
Commit: f2144b12ae6394712288e0c4a89da381b9830766
https://github.com/OpenAMP/libmetal/commit/f2144b12ae6394712288e0c4a89da381…
Author: Andrew Davis <afd(a)ti.com>
Date: 2023-08-16 (Wed, 16 Aug 2023)
Changed paths:
M lib/alloc.h
M lib/system/freertos/alloc.h
M lib/system/generic/alloc.h
M lib/system/linux/alloc.h
M lib/system/nuttx/alloc.h
M lib/system/zephyr/alloc.h
Log Message:
-----------
lib: refactor alloc.h to not need forward declaration
This should have no functional change, but makes this header consistent
with how the other headers are organized.
Signed-off-by: Andrew Davis <afd(a)ti.com>
Remote Processor Messaging (RPMsg) framework is used to communicate
with remote processor. RPMsg is a virtio-based messaging bus that
allows U-Boot drivers to communicate with remote processors available
on the system. This patch also introduces new virtio transport layer
driver.
To keep things minimal for now hard-coded endpoint is used in U-Boot
to communicate with remote processor using RPMsg protocol. This will
be modified to use multiple endpoints in future.
U-Boot can't receive interrupts from remote processor as per design.
Hence, user has to know when the data will be available from remote
processor and call rpmsg_recv accordingly. Mostly it will be called
to receive response of query done using rpmsg_send.
Some code is already available to allocate memory for RPMsg however,
that framework is mostly TI platform specific and isn't used by any
other platforms. This series makes sure it does not break
previous code for other platforms. If platforms wants to use this new
framework it is expected to set "support_rpmsg_virtio" flag in
relative remoteproc device's platform data.
Also the framework introduced by this series is ported from the Linux
kernel so other platforms which already support RPMsg in the Linux
kernel can easily use this framework in U-Boot as well.
---
Tanmay Shah (10):
remoteproc: move resource table definition
firmware: zynqmp: move zynqmp_pm_request_node API
remoteproc: add remoteproc virtio transport driver
drivers: add RPMsg framework
rpmsg: add sample client driver
cmd: add rpmsg framework commands
remoteproc: add attach/detach commands
remoteproc: add zynqmp driver
configs: zynqmp: enable remoteproc and rpmsg
configs: sandbox: enable rpmsg
MAINTAINERS | 15 +
arch/sandbox/dts/test.dts | 8 +
cmd/Kconfig | 6 +
cmd/Makefile | 1 +
cmd/remoteproc.c | 14 +-
cmd/rpmsg.c | 61 +++
configs/sandbox_defconfig | 4 +
configs/xilinx_zynqmp_virt_defconfig | 6 +
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
drivers/firmware/firmware-zynqmp.c | 27 ++
drivers/power/domain/zynqmp-power-domain.c | 7 -
drivers/remoteproc/Kconfig | 20 +
drivers/remoteproc/Makefile | 2 +
drivers/remoteproc/rproc-elf-loader.c | 33 --
drivers/remoteproc/rproc-uclass.c | 125 +++++-
drivers/remoteproc/rproc_virtio.c | 422 +++++++++++++++++++++
drivers/remoteproc/xlnx_rproc.c | 411 ++++++++++++++++++++
drivers/rpmsg/Kconfig | 39 ++
drivers/rpmsg/Makefile | 13 +
drivers/rpmsg/rpmsg-uclass.c | 156 ++++++++
drivers/rpmsg/rpmsg_internal.h | 52 +++
drivers/rpmsg/rpmsg_sample_client.c | 63 +++
drivers/rpmsg/sandbox_test_rpmsg.c | 88 +++++
drivers/rpmsg/virtio_rpmsg_bus.c | 384 +++++++++++++++++++
drivers/virtio/virtio-uclass.c | 1 +
drivers/virtio/virtio_ring.c | 16 +
include/dm/uclass-id.h | 1 +
include/remoteproc.h | 130 ++++++-
include/rpmsg.h | 145 +++++++
include/rproc_virtio.h | 33 ++
include/virtio.h | 7 +-
include/virtio_ring.h | 32 ++
include/zynqmp_firmware.h | 30 +-
test/dm/Makefile | 1 +
test/dm/rpmsg.c | 41 ++
36 files changed, 2321 insertions(+), 76 deletions(-)
create mode 100644 cmd/rpmsg.c
create mode 100644 drivers/remoteproc/rproc_virtio.c
create mode 100644 drivers/remoteproc/xlnx_rproc.c
create mode 100644 drivers/rpmsg/Kconfig
create mode 100644 drivers/rpmsg/Makefile
create mode 100644 drivers/rpmsg/rpmsg-uclass.c
create mode 100644 drivers/rpmsg/rpmsg_internal.h
create mode 100644 drivers/rpmsg/rpmsg_sample_client.c
create mode 100644 drivers/rpmsg/sandbox_test_rpmsg.c
create mode 100644 drivers/rpmsg/virtio_rpmsg_bus.c
create mode 100644 include/rpmsg.h
create mode 100644 include/rproc_virtio.h
create mode 100644 test/dm/rpmsg.c
base-commit: 94e7cb181ad6bd25d36a11c58e0df64e9f815888
--
2.25.1