Hi all,
One of the difficulties I have encountered while trying to get OpenAMP into the Linaro continuous integration loop, as well as while trying to test the GitHub OpenAMP repository code, has been the need to use proprietary tools and environments to build the OpenAMP firmware.This is what I think is needed to solve this problem. Feedback will be welcomed.
Goal: A complete open-source development environment for OpenAMP on
Linux for Cortex A and bare metal/FreeRTOS on Cortex R.
The first use for this is for Jenkins/LAVA testing. Just using a slightly
customized version of the Xilinx Yocto build for Linux and OpenAMP turns
out to be impractical due to the use of a Xilinx-specific toolchain
and the huge size of the resulting image.
The second use is for developers who want to work with OpenAMP and the
Linux kernel without needing to use a proprietary SDK or tool chain. In
fact, with the QEMU Docker container, they wouldn't even need real
hardware.
To do this requires:
Toolchains for the ARM Cortex A and Cortex R. I intend to use the
toolchains provided by ARM by default, but the eventual setup should allow
the user to switch to other toolchains, such as LLVM or a proprietary one.
A Linux root filesystem. I will create this using Yocto and a
stripped-down image recipe.
The necessary header files and libraries to compile and link
the Cortex R5 firmware for Xilinx first (the BSP). Later I
want to support other manufacturers as well.
A mechanism to update the root file system when the Linux kernel
or the OpenAMP binaries and firmware are updated.
A way of building bootable images, either for hardware or QEMU.
The above two items are part of the standard image build
process and will use available open source tools.
Something to run the resulting image. This will default to the
QEMU Docker image.
This should be easier to use for newcomers and facilitate the CI loop.
Steps:
1) Shrink the image. This can be done in two stages:
a. Build less stuff. The OpenAMP tests don't need full Perl and Python
installs, among other things.
b. Tune the kernel. There are a lot of modules we don't need.
This will also speed up build times considerably. It might even be
enough to get the CI loop started.
2) Set up the tooling to create root file systems
3) Set up the tooling to create images
4) Document all the steps required to create and boot an image.
5) Automate all of the above.
This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.
[copy-pasted from the Google group]
This is to announce the release of OpenAMP 2020.01. It's a
"catch up" release that incorporates the low-risk changes
proposed for OpenAMP/libmetal since the last release. See
https://github.com/OpenAMP/open-amp/releases/tag/v2020.01.0 and
https://github.com/OpenAMP/libmetal/releases/tag/v2020.01.0
With the transition of the OpenAMP project to a Linaro open source project (https://openampproject.org), we anticipate a return to the normal 6-month release cycle in (approximately) April and October.
This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.
Bill and friends,
I would like to talk about the various patchsets floating on the
mailing list that I'm keeping an eye on. More specifically where I
think the work is at and what the next steps are. I came up with the
following list (not in order of priority) along with some comments
that we can expand on tomorrow.
1) "V5 remoteproc: updates for omap remoteproc support" [1]
Comments: I am waiting on the people at TI that commented on V5 to
provide their ACK/comments before doing another review.
2) "remoteproc: Add support for predefined notifyids" [2]
Comments: Consensus was to wait for a new resource table definition -
anyone working on this? If not I will.
3) "V3 rpmsg: core: add API to get MTU [3]
Comments: Bjorn said he wouldn't merge the set without a client.
Arnaud pointed to that client [4] in the thread. A new set with both
feature (MTU and RPMSG tty driver) needs to be published for 5.6-rc1
and I will review/test it.
4) "V4 remoteproc: add support for co-processor loaded and booted
before kernel" [5]
Comments: Please send a 5th version when 5.6-rc1 comes out. Tero or
Suman will have to ack it before it is eventually merged. On my side
I will look at how TI has implemented that feature.
5) "V2 remoteproc: Add elf64 support in elf loader" [6]
Comments: Good conversation, please comment or ack next version.
6) "V2 remoteproc: qcom: post mortem debug support" [7]
Comments: Good conversation with Bjorn and Arnaud, waiting for Bjorn
to release another version.
Those take us back to around the September timeframe, which is about
the time I started perusing around this project. If there is a set
you've been waiting on that dates before September, please send
another revision when 5.6-rc1 is released and I will review it.
See you all tomorrow,
Mathieu
[1]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=229249
[2]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=228473
[3]. https://patchwork.kernel.org/patch/11333509/
[4]. https://patchwork.kernel.org/cover/11130213/
[5]. https://patchwork.kernel.org/patch/11265869/
[6]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=182999
[7]. https://patchwork.kernel.org/project/linux-remoteproc/list/?series=221715
On Wed, 29 Jan 2020 at 12:16, Mills, William via Openamp-rp
<openamp-rp(a)lists.openampproject.org> wrote:
>
> Hello all,
>
>
> A reminder that we have normal meeting of openamp-rp sub-project
> tomorrow.
>
> Please think about agenda topics or it will be a short meeting.
>
>
> Thanks,
>
> Bill
>
>
> ---------------------------------------------------
>
> William A. Mills
>
> Chief Technologist, Open Source
>
> Texas Instruments, Processors
>
> 20250 Century Blvd, Suit 300
>
> Germantown MD, 20874
>
> (work/mobile) +1-240-643-0836
> --
> Openamp-rp mailing list
> Openamp-rp(a)lists.openampproject.org
> https://lists.openampproject.org/mailman/listinfo/openamp-rp
Hello all,
A reminder that we have normal meeting of openamp-rp sub-project tomorrow.
Please think about agenda topics or it will be a short meeting.
Thanks,
Bill
---------------------------------------------------
William A. Mills
Chief Technologist, Open Source
Texas Instruments, Processors
20250 Century Blvd, Suit 300
Germantown MD, 20874
(work/mobile) +1-240-643-0836
Hello all,
A reminder that we have normal meeting of openamp-rp sub-project
tomorrow.
Please think about agenda topics or it will be a short meeting.
Thanks,
Bill
---------------------------------------------------
William A. Mills
Chief Technologist, Open Source
Texas Instruments, Processors
20250 Century Blvd, Suit 300
Germantown MD, 20874
(work/mobile) +1-240-643-0836
Good day Ed,
On Fri, 3 Jan 2020 at 17:59, Ed Mooring via Openamp-rp
<openamp-rp(a)lists.openampproject.org> wrote:
>
> On the December 19 call, I committed to sending the instructions I had
> provided to the Linaro LITE team to build a bootable image that can be
> used to develop and test OpenAMP with Linux on Xilinx QEMU.
>
> I am using this setup to work with Paul Sokolovsky on getting CI for
> OpenAMP on QEMU using LAVA.
>
> This is a first cut. Feedback is welcome.
I finally had time to give this a spin. Just like Bill I hit the
"zcu102-zynqmp" problem but fixed it quickly. From there the
compilation started and ran for a while until it failed when building
QEMU. This is what I got [1] when I launched "bitbake
openamp-image-minimal", hopefully one of those SHA will look
suspicious to you. I expect a simple misalignment between the
various SW repositories fetched by "repo". Speaking of which and
echoing Bill's comments, I think an exact git repository and SHA have
to be provided for each of the repositories that need to be brought in
manually, that is open-amp, libmetal and embeddedsw. At this time I
have the following:
open-amp: f98eb2a670ce Maintainers: update Ed Mooring mail address
libmetal: e3dfc2fe85e5 Maintainers: update project maintainers
embeddedsw: e8db5fb11822 Updated the license.txt file
Let me know if you find something obvious or if you think one of those
projects need to be set to a specific version.
Thanks,
Mathieu
[1]. https://pastebin.com/V1v25zK0
>
> Regards,
> Ed M
> This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.
> --
> Openamp-rp mailing list
> Openamp-rp(a)lists.openampproject.org
> https://lists.openampproject.org/mailman/listinfo/openamp-rp
All,
To continue the discussion of the resource table evolution from 12/19, I have created the following wiki page:
https://github.com/OpenAMP/open-amp/wiki/Resource-Table-Evolution
Please add your ideas to this wiki page, especially the ones that we have discussed to some degree already.
Alternatively, you can start a discussion on this list and then you can capture your summary on the wiki page.
Thanks,
Bill
---------------------------------------------------
William A. Mills
Chief Technologist, Open Source
Texas Instruments, Processors
20250 Century Blvd, Suit 300
Germantown MD, 20874
(work/mobile) +1-240-643-0836
Hi Ed,
On 1/3/20 7:59 PM, Ed Mooring via Openamp-rp wrote:
> On the December 19 call, I committed to sending the instructions I had
> provided to the Linaro LITE team to build a bootable image that can be
> used to develop and test OpenAMP with Linux on Xilinx QEMU.
>
> I am using this setup to work with Paul Sokolovsky on getting CI for
> OpenAMP on QEMU using LAVA.
>
> This is a first cut. Feedback is welcome.
>
> Regards,
> Ed M
> This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.
>
>
As you sent the instructions as an attachment I can't reply inline but I
will fake it.
> # Building the image
>
> In the build directory (<path to repo>/build):
>
> $ bitbake openamp-image-minimal
>
To get this at least started I used:
$ MACHINE=zcu102-zynqmp bitbake openamp-image-minimal
The instructions above leaves a default machine of qemuzynq which does
not exist. There is a qemu-zynq7 but I don't think that is right.
>From the name of the output image I am inferring that you want the
zcu102-zynqmp machine.
Please confirm or deny this assumption. Thanks.
**** What version for openamp/* git sources?
Right now I have the three dirs in the openamp dir as follows:
bill@rocky:~/w/proj/openamp/ci-xilinx$ for d in openamp/*; do (echo "***
$d"; cd $d; git remote -v; git status); done
*** openamp/embeddedsw
origin https://github.com/Xilinx/embeddedsw.git (fetch)
origin https://github.com/Xilinx/embeddedsw.git (push)
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
*** openamp/libmetal
origin https://github.com/Xilinx/libmetal.git (fetch)
origin https://github.com/Xilinx/libmetal.git (push)
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
*** openamp/open-amp
origin https://github.com/Xilinx/open-amp.git (fetch)
origin https://github.com/Xilinx/open-amp.git (push)
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
Can you please document what you are using and have tested.
Thanks,
Bill
Hi Ed,
On the 12/19 call you said you had build instructions for the R5 that
you had sent to the LITE group. You took an action item to post them
here as well. Can you do that please? It would be very helpful.
More comments below...
On 11/25/19 8:47 PM, Ed Mooring via Openamp-rp wrote:
> Here is the README for the Docker Container discussed in today's call:
> # Running the container:
>
> docker run -it xilinx-qemu
>
You had previously said to use the image named:
edmooring/qemu:xilinx-qemu
I tried running as you had it above (just xilinx-qemu) and it did not
find the image. The old name still works but has not been updated in 8
weeks.
Am I missing something? Have you published a new docker image somewhere
I can't find?
> This boots a Linux image (with ramdisk) and a device tree.
> The image contains the OpenAMP demo firmware images and
> examples.
>
> Alternatively,
>
> docker run -it -v <path_to_tftpboot_directory>:/tftpboot xilinx-qemu
>
> adds <path_to_tftpboot_directory> on the host system as /tftpboot
> inside the container, allowing a user to fetch arbitrary files, including
> Linux executables and firmware images, from within the container.
>
> # Running the OpenAMP echo test example
>
> * Log in to the emulated Linux as root (password is also "root").
> * Set up the R5 firmware: echo image_echo_test >/sys/class/remoteproc/remoteproc0/firmware
> * Start the R5: echo start >/sys/class/remoteproc/remoteproc0/state
> * Run the example: echo_test
>
Thanks for this. I have tested it myself and added it to the wiki.
> # Random notes:
>
> The version of QEMU that this uses is built from the xilinx-v2019.1
> tag on GitHub for Debian Stretch. Debian Stretch was chosen for the base
> of this container because Linaro uses it extensively and this way the
> executables are compatible across the various Linaro containers.
Thanks,
Bill