6 Replies Latest reply on Nov 4, 2015 11:20 PM by hockeyman1972

    AMP freertos on cpu1 and petalinux 2015.2 on cpu0

    anderluntermbiambam

      I want to setup AMP with petalinux (2015.2) on cpu0 and freertos on cpu1. UG978 gives an outline to do this, however with an older version of petalinux (2013.10). There where changes in the way to implement petalinux and UG978 was not updated for this.

      So I followed the latest xapp1078 (xapp1078_2014.4.zip) for creating a bare-metal application and petalinux AMP.

      http://www.wiki.xilinx.com/XAPP1078+Latest+Information

      Now I have to replace the bare-metal application in xapp2014s bsp by the one of freertos. What is the correct way to do so? Which bsp for freertos can I use? Can I change the existing bsp (DDR address range ...)?

        • OpenAMP
          hockeyman1972

          Hi Andreas,

          You've run into an area of development that is unfortunately dead-ended in favor of another solution, and at present it hasn't evolved to the point where there are well documented reference designs to guide you (at least, not that I've seen to date).  The core of what is presented in XAPP978 has been standardized in a new open source development project called OpenAMP.  If you wish to transition to this developing technology, for implementing with Xilinx hardware I'd suggest browsing the Xilinx community forum on the topic:

          https://forums.xilinx.com/t5/OpenAMP/bd-p/openamp

          Having said that, I don't believe it is impossible to update the 2013.10 solution to the current release, but it would be a slow process dealing with changes to the hardware files, the underlying drivers, changes to the Linux kernel and changes to the FreeRTOS implementation.  And in the end if you manage to get it working it is most likely a branch that will dead-end due to the migration to OpenAMP.   

          OpenAMP will be a key technology moving forward to the next-generation Xilinx devices, so I expect it will be around and supported for some time long term.  But at present it is in the expert-adoption phase.

          Ron

          • Thank you Ron. This is a good
            anderluntermbiambam

            Thank you Ron. This is a good information. I found the github repository of openAMP:
            https://github.com/OpenAMP/open-amp

            OpenAMP framework supports bare-metal applications as master (though linux still may be chosen as master), which sounds promissing. Also other kernels which support remoteproc seem to be supported by openAMP.

            Would recommend to switch back to petalinux 2013.10 for now and use the old flow (UG978)? xapp1078 uses petalinux 2015.2 (which uses a different way to create BSP by petalinux-create -t project -s <path to BSP>).

            • vivado 2015.3 error for ug978
              anderluntermbiambam

              I tested the workflow of ug978, however i got an error while creating the PetaLinux BSP. The SDK Log sais:

              18:02:13 ERRORt: (XSDB Server)ERROR: [Hsi 55-1545] Problem running tcl command ::sw_petalinux_v2_00_a::petalinux_drc : no such variable

              I am using vivado 2015.3 and petalinux 2013.10. What is the reason for this error? Am I supposed to use an older version of vivado to make this example work?

                • this is the whole error message (I am using ubuntu 14.04):
                  anderluntermbiambam

                  18:02:13 ERRORt: (XSDB Server)ERROR: [Hsi 55-1545] Problem running tcl command ::sw_petalinux_v2_00_a::petalinux_drc : no such variable
                      (read trace on "env(XILINX_EDK)")
                      invoked from within
                  "append path " $env(XILINX_EDK)/sw/lib/bsp/ ""
                      (procedure "get_path" line 90)
                      invoked from within
                  "get_path"
                      (procedure "::sw_petalinux_v2_00_a::petalinux_drc" line 10)
                      invoked from within
                  "::sw_petalinux_v2_00_a::petalinux_drc petalinux"

                  18:02:13 ERRORt: (XSDB Server)ERROR: [Hsi 55-1440] Error(s) while running DRCs.

                  18:02:13 ERRORt: (XSDB Server)ERROR: [Hsi 55-1450] Error: running generate_bsp.

                  18:02:13 ERRORt: Error generating bsp sources: Failed in generating sources
                  18:02:13 ERRORt: Failed to generate sources for BSP project petalinux_bsp_amp
                  org.eclipse.core.runtime.CoreException: Internal error occurred while generating bsp sources. Please check the SDK Log view for further details.
                  tat com.xilinx.sdk.sw.ui.handlers.RegenBspSourcesHandler.internalGenerateBsp(RegenBspSourcesHandler.java:178)
                  tat com.xilinx.sdk.sw.ui.handlers.RegenBspSourcesHandler.access$2(RegenBspSourcesHandler.java:163)
                  tat com.xilinx.sdk.sw.ui.handlers.RegenBspSourcesHandler$1$1.run(RegenBspSourcesHandler.java:131)
                  tat org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2345)
                  tat com.xilinx.sdk.sw.ui.handlers.RegenBspSourcesHandler$1.run(RegenBspSourcesHandler.java:135)
                  tat org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

                  • Incompatible tools
                    hockeyman1972

                    PetaLinux and other Xilinx tools must be version matched to ensure correct operation.  Sometimes you can use them together if they are close in version (like PetaLinux 2015.2 with Vivado/SDK 2015.3), but it's always best to stick to a match set of tools to avoid these kinds of problems.

                    Ron