element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
Software Application Development Xilinx Linux/FreeRTOS AMP
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Avnet Boards Forums requires membership for participation - click to join
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 7 replies
  • Subscribers 305 subscribers
  • Views 745 views
  • Users 0 members are here
Related

Xilinx Linux/FreeRTOS AMP

Former Member
Former Member over 12 years ago

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

Thanks!

  • Sign in to reply
  • Cancel
  • jamestkennedy
    0 jamestkennedy over 12 years ago

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

    http://www.freertos.org/Interactive_Frames/Open_Frames.html?http://interactive.freertos.org/home

    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.

    thanks.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 12 years ago in reply to jamestkennedy

    Hi,

    See this post on Xilinx forum:
    http://forums.xilinx.com/t5/7-Series-FPGAs/where-is-pre-canned-AMP-solution-Linux-FreeRTOS/td-p/259490

    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.

    Regards,

    Pramod Ranade

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jamestkennedy
    0 jamestkennedy over 12 years ago in reply to Former Member

    hi pramod,

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

    http://www.xilinx.com/support/documentation/application_notes/xapp1078-amp-linux-bare-metal.pdf

    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?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jamestkennedy
    0 jamestkennedy over 12 years ago in reply to Former Member

    Hi Pramod,

    After porting APP 1078 to the ZedBoard,

    http://zedboard.org/comment/1961#comment-1961

    I changed the baremetal in CPU1 to FreeRTOS.
    I first copied the AMP modified standalone, standalone_amp_v3_07_a to C:Xilinx14.3ISE_DSEDKswlibbsp.
    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,

    http://www.xilinx.com/support/answers/50826.htm

    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?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • jamestkennedy
    0 jamestkennedy over 12 years ago in reply to Former Member

    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.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago

    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

    thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Former Member

    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?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube