Amd upstreaming commits may 7 2025#332
Amd upstreaming commits may 7 2025#332bentheredonethat wants to merge 14 commits intoOpenAMP:mainfrom
Conversation
db47455 to
8d3c1b1
Compare
|
some of the warnings are due to some choices in the first commit. please let me know if those are ok.. as the original location of that is deleted in a later commit and the warnnings are fixed. some small issues with a commit length came up too. other warnings are because of symbols in AMD-Xilinx BSP (camel-case issue) |
d1b1039 to
ef1a328
Compare
|
Hello @bentheredonethat, |
Add IPI uio based API implementation. examples: linux: add IPI with R5 rproc kick sysfs impelmentation Add IPI mailbox IPI implementation with the remoteproc kick sysfs API. examples: linux: zynqmp: Use IPI commit API Change to use IPI common API so that it can swtich from IPI uio implementaion or IPI rproc sysfs implementation. Signed-off-by: Wendy Liang <wendy.liang@xilinx.com> Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
Ensure there are macro guards for IPI symbol Signed-off-by: Ben Levinsky <ben.levinsky@xilinx.com>
examples: linux: zynqmp_r5: dynamically set TTC and IPI vars Previously, TTC and IPI variables within libmetal demo for linux were hardcoded for zynqmp SoC. Now TTC and IPI are set based on whether target is zynqmp or versal. examples: generic: zynqmp_r5: dynamically set TTC and IPI vars Previously, TTC and IPI variables within libmetal demo for baremetal were hardcoded for zynqmp SoC. Now TTC and IPI are set based on whether target is zynqmp or versal. examples: freertos: zynqmp_r5: dynamically set TTC and IPI vars Previously, TTC and IPI variables within libmetal demo for FreeRTOS were hardcoded for zynqmp SoC. Now TTC and IPI are set based on whether target is zynqmp or versal. Signed-off-by: Ben Levinsky <ben.levinsky@xilinx.com>
Correct integer arithmetic errors in computing average latency. Collect and show min, max latency in addition to the average. Use floating point to compute and show throughput. Signed-off-by: Sergei Korneichuk <sergei.korneichuk@xilinx.com> Acked-by: ben Levinsky <ben.levinsky@xilinx.com>
There is compilation error of the Linux ZynqMP AMP Demo in shmem_throughput_demo.c due to the MB definition being re-defined. The MB symbol is provided in lib/utilities.h as part of commit 7643dda ("lib: utilities: Match upstream for MB/GB macros") Signed-off-by: Ben Levinsky <ben.levinsky@amd.com> Acked-by: Sergei Korneichuk <sergei.korneichuk@amd.com>
lib: generic: xlnx: Use CMAKE_C_FLAGS to determine if SDT symbol is present. Currently the file bspconfig.h file is used to determine if System Device Tree workflow is being used. Instead change condition to be if SDT is in CMAKE_C_FLAGS variable. Acked-by: Sergei Korneichuk <sergei.korneichuk@amd.com> lib: freertos: xlnx: Use CMAKE_C_FLAGS to determine if SDT symbol is present. Currently the file bspconfig.h file is used to determine if System Device Tree workflow is being used. Instead change condition to be if SDT is in CMAKE_C_FLAGS variable. As part of this also make the freertos build up to parity with baremetal. Signed-off-by: Ben Levinsky <ben.levinsky@amd.com> Reviewed-by: Tanmay Shah <tanmay.shah@amd.com>
Enable application values for Linux platform to be overwritten via CMake Configure step. Also ZynqMP Bitmask is incorrect. Make sure it properly kicks RPU0. examples: linux: zynqmp: Add Versal-NET IPI Values Ensure that Versal-NET IPI values are present for Libmetal AMP Demo on Linux platform. As part of this, also copy convention in zynqmp_r5 area and move values to common.h Acked-by: Sergei Korneichuk <sergei.korneichuk@amd.com> examples: linux: zynqmp: Fix Typo in ZynqMP IPI Base address Base address is ff3600000. Remove extra zero. Signed-off-by: Ben Levinsky <ben.levinsky@amd.com> Acked-by: Tanmay Shah <tanmay.shah@amd.com>
examples: zynqmp_r5: CMake: Enable demo to build without libxil present in SDT flow As in SDT Workflow for Rigel there can be template application in BSP for Libmetal, let Rigel manage the dependency for template application in that case. examples: zynqmp_r5: CMake: Add SDT-required libs as link dependencies Push required linking libs to CMake so that surrounding tooling does not have to manage pushing these in. examples: zynqmp_r5: CMake: Allow user to pass in app binary name Enable CMake tooling to designate output ELF name for FreeRTOS and Standalone targets. Reviewed-by: Tanmay Shah <tanmay.shah@amd.com> Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
As part of this, move the latest logic that was present in examples/system/linux/zynqmp to examples/system/linux/xlnx. Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
As FreeRTOS enable/disable is not required, remove superfluous lines for the demo. Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
Change argument to atomic_flag* to matcj standalone Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
There can be race condition where RPU side believes demo is done before APU is actually finished. Then the RPU goes to the next demo. APU does an IPI kick and RPU reads a buffer at the wrong time and believes it is seeing corruption issue. Fix this by adding a handshake so that: - At the start of the RPU demo, the RPU sets a bit to denote it is waiting. - At the start of the APU demo, set the same bit in memory so each party is in sync. - Once RPU is done (which should be before APU is done), RPU will wait on the bit to flip. - Once APU is done processing, it will flip the bit and both RPU and APU can proceed. Signed-off-by: Ben Levinsky <ben.levinsky@amd.com> Acked-by: Tanmay Shah <tanmay.shah@amd.com>
IPI is the same as Versal NET so re-use that value but pass separate TTC value. Signed-off-by: Ben Levinsky <ben.levinsky@amd.com> Acked-by: Tanmay Shah <tanmay.shah@amd.com>
fix cmake files for latest Signed-off-by: Ben Levinsky <ben.levinsky@amd.com>
ef1a328 to
c8fcd13
Compare
|
updated per your comment @arnopo |
|
I would not be in favor of adding new demos in libmetal. I think this should be in the system reference. More than that, I would expect that we only integrate a few demos that provide examples to help developers implement Libmetal on their own platform. I propose to add the discussion to the agenda for next week's system reference meeting. |
I am inclined to agree with you. Was there any resolution in the meeting? |
|
Hi @edmooring , from the meeting:
https://github.com/OpenAMP/openamp-system-reference/wiki/OpenAMP-System-Reference-Meeting-Notes-2025 |
AMD fork of Libmetla has been carrying commits for a while to ensure that the Libmetal AMP Demo for AMD-Xilinx SOC's boots on board with latest tools.
This series pushes patches that have been held for awhile.
Some of the patches are so that Libmetal Demo can be configured via Yocto build, others so demo works on now SOCs and there are a few bug fixes.