Sorry, you need to enable JavaScript to visit this website.

Xilinx Linux/FreeRTOS AMP

Zedboard forums is currently read-only while it under goes maintenance.

8 posts / 0 new
Xilinx Linux/FreeRTOS AMP

Anybody know if a port of Xilinx's Linux/FreeRTOS Asymmetric Multi-Processing (AMP) reference design is in the works for the ZedBoard?


FreeRTOS port

there is a FreeRTTOS port for Zynq on the site, but for the ZC702. with a little effort it will work for the Zedboard.

Linux Ubuntu is well documented on this forum and the community designs.

I am looking into getting the ASMP going. I have seen a PetaLinux/FreeRTOS app again for ZC702, by Xilinx/PetaLinux and missinglinkelectronics.
I will check their websites.

I also would welcome some informsation on how to set up the ASMP for ZedBoard.


AMP Linux/FreeRTOS


See this post on Xilinx forum:

In it, I have posted link to AMP Linux/FreeRTOS
project for ZC702 board. Not sure what changes are
needed to make it work on ZedBoard.


Pramod Ranade

happy valentine from xilinx

hi pramod,

you are probably aware that mcdougal released his work in an app note. here's a link, everyone.

what you can do in baremetal, you can do with FreeRTOS as it is done the same with inclusion of the extra API and BSP.
as you had done, pramod!
a good start on an linux high end with network interface to the world (sockets?), with FreeRTOS low end doing real time reactive controls.
what do you know about xilinx petalinux use of rpmsg/remoteproc for the inter-ARM communication of the two cores?

XAPP 1078 prted to Zedboard Linux/FreeRTOS

Hi Pramod,

After porting APP 1078 to the ZedBoard,

I changed the baremetal in CPU1 to FreeRTOS.
I first copied the AMP modified standalone, standalone_amp_v3_07_a to C:\Xilinx\14.3\ISE_DS\EDK\sw\lib\bsp.
Next I modified the version defined for the parameter standalone_version in the file <Xilinx_Zynq>/sw/repo/freertos_zynq_v1_01_a/data/freertos_zynq_v2_1_0.tcl and version against DEPENDS option in the file <Xilinx_Zynq>/sw/repo/freertos_zynq_v1_01_a/data/freertos_zynq_v2_1_0.mld to the AMP standalone.

Then when I defined the bsp for the cpu1 app, I used the modified FreeRTOS library, and got both the AMP standalone and the FreeRTOS libraries.

Next I modified app_cpu1 main to create tasks for the old app_cpu1 main and also for the FreeRTOS hello and goodbye tasks (modifed for 3 iterations)

When I booted the new boot.bin and ran the new app_cpu1 via "/mnt/rwmem.elf 0xfffffff0 0x18000000,", I got the 3 hello's and goodbyes (throught the OCM).
And the old app_cpu1 task performed as before.

So now I have a good baseline for multi-threaded AMP with linux and FreeRTOS. The OCM seems a good way to communicate data besides these simple communications. Now recalling the Zynq-7000 Example Design - Cache coherent CDMA transfers from block RAM to OCM,

I can consider using this platform to design access from linux ethernet to OCM to Block Ram for a PL accelerator and then return circuit. Sounds pretty slick, but Can I do it?

FreeRTOS multitasking app

I have linux AND FreeRTOS multitask build working. Today I added a PL custom accelerator and got that going from one of the FREERTOS tasks. The bit file uses 57% of the LUTS but it still works. XST has improved. But the user_logic is crude, uses registers as zynqgeek's custom peripheral. i want to use OCM to/from BRAM dma to move data/results and just use registers for control. Xilinx is leading me from the shadows slowly but surely. thanks zynqgeek, XAPP 1078 john mcdougall, and AR# 50826 author.

Linux on cpu_1

Hi, is it possible to run Linux on cpu_1 and some bare-metal application on cpu_0?
the device we are developing is thought to have initialization code and system code run on cpu_0 (invisible to the user/client) and left the other cpu to user-applications development


To run app from Xilinx SDK it

To run app from Xilinx SDK it is possible to choose which you want to use.

From SD, i think that bootloader is looking for sth to run on cpu_0. And if it possible you need to run Lin on 1.cpu and then you need to run it (always after, i think).

Am I allright?