Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Xilinx ZCU102 #427

Open
wants to merge 4 commits into
base: dunfell
Choose a base branch
from

Conversation

karthikpoduval
Copy link
Contributor

Hi All,

In this pull request I have added support for Xilinx ZCU102 board using Xilinx layers. It doesn't build straight out of the box and hence some changes are necessary which have to be added to conf/local.conf. Please let me know if this is fine or can be done differently. The UART for ZCU102 bard is very obvious and needs only a micro USB cable, so I didn't bother to add any special documentation for it.

I do intend to test it on pynq and zybo but that would be done later.

--
Regards,
Karthik Poduval

Signed-off-by: Karthik Poduval <karthik.poduval@gmail.com>
Signed-off-by: Karthik Poduval <karthik.poduval@gmail.com>
Signed-off-by: Karthik Poduval <karthik.poduval@gmail.com>
Copy link
Contributor

@cbrake cbrake left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice documentation!

1. `cd yoe-distro`
1. `. zcu102-zynqmp-envsetup.sh`
1. `yoe_setup`
1. add following to conf/local.conf
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally we would advise putting these changes in site.conf to be captured in git and shared with the team. local.conf is intended only for settings that are use specific and not checked into git.

https://github.com/YoeDistro/yoe-distro/blob/dunfell/docs/conf-files.md

However, I wonder if these settings can be captured just for these machines (machine conf, etc)?

One thing we try to do with Yoe is keep the system such that you can build for multiple machines in one build system -- this is handy if you are maintaining multiple projects/products.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @cbrake I am adding them to site.conf with machine specific variables, something like this.
diff --git a/conf/site.conf b/conf/site.conf
index f643f48..81d26d5 100644
--- a/conf/site.conf
+++ b/conf/site.conf
@@ -71,6 +71,14 @@ IMAGE_BOOT_FILES_append_sama5d27-som1-ek-sd = "
"
WKS_FILE_sama5d27-som1-ek-sd = "yoe-sdimage.wks"

+# Xilinx zcu102 specific configurations
+IMAGE_BOOT_FILES_append_zcu102-zynqmp = " boot.bin"
+PREFERRED_PROVIDER_qemu-native_zcu102-zynqmp = "qemu-xilinx-native"
+PREFERRED_PROVIDER_virtual/pmu-firmware_zcu102-zynqmp = "pmu-firmware"
+PREFERRED_PROVIDER_virtual/boot-bin_zcu102-zynqmp = "xilinx-bootbin"
+PREFERRED_PROVIDER_virtual/dtb_zcu102-zynqmp = "device-tree"

It works fine.

Maybe its the inclusion of the Xilinx machine (which also provides QEMU) there is NOTE in the build.

NOTE: Resolving any missing task queue dependencies
NOTE: Multiple providers are available for qemu-native (qemu-native, qemu-xilinx-native)
Consider defining a PREFERRED_PROVIDER entry to match qemu-native
NOTE: Multiple providers are available for runtime nativesdk-qemu (nativesdk-qemu, nativesdk-qemu-xilinx)
Consider defining a PREFERRED_RPROVIDER entry to match nativesdk-qemu

Kindly advice on how to resolve.
Also what to do about these warnings (introduced by Xilinx layers) ?

WARNING: No recipes available for:
/home/kpoduval/workspace/yoe-zcu/sources/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/gcc/gcc-source_10.%.bbappend
/home/kpoduval/workspace/yoe-zcu/sources/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/newlib/libgloss_3.3.%.bbappend
/home/kpoduval/workspace/yoe-zcu/sources/meta-xilinx/meta-xilinx-bsp/recipes-microblaze/newlib/newlib_3.3.%.bbappend
/home/kpoduval/workspace/yoe-zcu/sources/meta-petalinux/recipes-browser/chromium/chromium-ozone-wayland_%.bbappend
/home/kpoduval/workspace/yoe-zcu/sources/meta-petalinux/recipes-browser/chromium/chromium-x11_%.bbappend
/home/kpoduval/workspace/yoe-zcu/sources/meta-petalinux/recipes-browser/chromium/gn-native_%.bbappend
/home/kpoduval/workspace/yoe-zcu/sources/meta-petalinux/recipes-extended/images/xen-image-minimal.bbappend
/home/kpoduval/workspace/yoe-zcu/sources/meta-petalinux/recipes-extended/xen/xen_git.bbappend
/home/kpoduval/workspace/yoe-zcu/sources/meta-petalinux/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bbappend
/home/kpoduval/workspace/yoe-zcu/sources/meta-petalinux/recipes-support/opencv/opencv_4.3%.bbappend
/home/kpoduval/workspace/yoe-zcu/sources/meta-xilinx/meta-xilinx-standalone/recipes-core/newlib/libgloss_3.1.0.bbappend
/home/kpoduval/workspace/yoe-zcu/sources/meta-xilinx/meta-xilinx-standalone/recipes-core/newlib/newlib_3.1.0.bbappend

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess those warnings are because of stale recipes from Xilinx layers, I wish there was patch process on the layers themselves :). For the NOTE I think I have it working with defining some defaults before the xilinx specific confs.
+PREFERRED_PROVIDER_qemu-native ?= "qemu-native"
+PREFERRED_PROVIDER_nativesdk-qemu ?= "nativesdk-qemu"

I will put up a new pull request now, thanks.

@cbrake
Copy link
Contributor

cbrake commented Aug 11, 2020

@karthikpoduval is this PR superseded by #430? Can it be closed?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants