From 4dc410c1d2bb6ed77b94bb15b3536c7d6c4db362 Mon Sep 17 00:00:00 2001 From: Peter Ogden Date: Wed, 1 Apr 2020 04:54:16 -0700 Subject: python3-pynq.bb: Update PYNQ to 2.5.1 * Pull PYNQ from PyPI instead of from GitHub * Minor patches to PYNQ to maintain 3.5 and Yocto Compatibility * Add ZCU104 to defined boards in the xilinx-pynq bbclass * Refactor common logic for installing notebooks into xilinx-pynq bbclass * Verify that the PYNQ base overlay for the ZCU104 works * Set up correct python3 Yocto variables using python3-dir class Signed-off-by: Peter Ogden Signed-off-by: Sai Hari Chandana Kalluri --- meta-xilinx-pynq/classes/xilinx-pynq.bbclass | 29 +++++++++++++++--- .../recipes-devtool/python/python-pynq.inc | 22 +++++++------- .../0001-Fix-3.6-ism-in-Xlnk-class.patch | 25 ++++++++++++++++ .../0002-Avoid-deleteing-notebooks.patch | 35 ++++++++++++++++++++++ .../0003-Use-sysroot-for-Displayport-library.patch | 25 ++++++++++++++++ .../recipes-devtool/python/python3-pynq_2.4.bb | 3 -- .../recipes-devtool/python/python3-pynq_2.5.1.bb | 3 ++ 7 files changed, 124 insertions(+), 18 deletions(-) create mode 100644 meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0001-Fix-3.6-ism-in-Xlnk-class.patch create mode 100644 meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0002-Avoid-deleteing-notebooks.patch create mode 100644 meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0003-Use-sysroot-for-Displayport-library.patch delete mode 100644 meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.4.bb create mode 100644 meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.5.1.bb diff --git a/meta-xilinx-pynq/classes/xilinx-pynq.bbclass b/meta-xilinx-pynq/classes/xilinx-pynq.bbclass index a571f150..645d1da2 100644 --- a/meta-xilinx-pynq/classes/xilinx-pynq.bbclass +++ b/meta-xilinx-pynq/classes/xilinx-pynq.bbclass @@ -3,15 +3,36 @@ PYNQ_NOTEBOOK_DIR ?= "${datadir}/notebooks" PYNQ_ARCH_arm = "armv7l" PYNQ_ARCH_aarch64 = "aarch64" -CMA_ARCH_arm = "32" -CMA_ARCH_aarch64 = "64" - PYNQ_BUILD_ARCH="${PYNQ_ARCH_${TARGET_ARCH}}" PYNQ_BUILD_ROOT="${STAGING_DIR_TARGET}" BBCLASSEXTEND = "native nativesdk" +PACKAGES += " ${PN}-notebooks" FILES_${PN}-notebooks += "${PYNQ_NOTEBOOK_DIR}" -PACKAGES += "${PN}-notebooks" + +INSANE_SKIP_${PN} += "staticdev dev-so" +inherit python3-dir # Used for setup.py on PYNQ BOARD_NAME_ultra96-zynqmp = "Ultra96" +BOARD_NAME_zcu104-zynqmp = "ZCU104" + +do_compile_prepend() { + export BOARD=${BOARD_NAME} + export PYNQ_BUILD_ARCH=${PYNQ_BUILD_ARCH} + export PYNQ_JUPYTER_NOTEBOOKS=${D}${PYNQ_NOTEBOOK_DIR} +} + +do_install_prepend() { + export BOARD=${BOARD_NAME} + export PYNQ_BUILD_ARCH=${PYNQ_BUILD_ARCH} + export PYNQ_JUPYTER_NOTEBOOKS=${D}${PYNQ_NOTEBOOK_DIR} + install -d ${PYNQ_JUPYTER_NOTEBOOKS} +} + +do_configure_prepend() { + export BOARD=${BOARD_NAME} + export PYNQ_BUILD_ARCH=${PYNQ_BUILD_ARCH} + export PYNQ_JUPYTER_NOTEBOOKS=${D}${PYNQ_NOTEBOOK_DIR} + install -d ${PYNQ_JUPYTER_NOTEBOOKS} +} diff --git a/meta-xilinx-pynq/recipes-devtool/python/python-pynq.inc b/meta-xilinx-pynq/recipes-devtool/python/python-pynq.inc index fa717f45..96303bdf 100644 --- a/meta-xilinx-pynq/recipes-devtool/python/python-pynq.inc +++ b/meta-xilinx-pynq/recipes-devtool/python/python-pynq.inc @@ -3,6 +3,9 @@ HOMEPAGE = "http://pynq.io" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=b42e39ad2ddbad7e8ad47f3eee6feff5" +SRC_URI[md5sum] = "9950894100c20293e921090b76ca9f17" +SRC_URI[sha256sum] = "4f719e2753093d1e79931755c624d160cf342c03af49e027d09abe75bdc8e8c5" + RDEPENDS_${PN} += "\ ${PYTHON_PN}-core \ ${PYTHON_PN}-asyncio \ @@ -17,6 +20,7 @@ RDEPENDS_${PN} += "\ ${PYTHON_PN}-setuptools \ ${PYTHON_PN}-threading \ ${PYTHON_PN}-xml \ + ${PYTHON_PN}-audio \ lmsensors-libsensors \ libdrm \ libcma \ @@ -27,19 +31,13 @@ inherit update-rc.d xilinx-pynq DEPENDS += " libdrm boost libcma" -PYNQBRANCH ?= "image_v2.4" -SRCBRANCHARG = "${@['nobranch=1', 'branch=${PYNQBRANCH}'][d.getVar('PYNQBRANCH', True) != '']}" -PYNQURI ?= "git://github.com/Xilinx/PYNQ.git;protocol=https" - -SRC_URI = "${PYNQURI};${SRCBRANCHARG} \ - file://pl_server_init \ - " -SRCREV ?= "3d659d374701b7c34fa702e7aa23f71f9113f826" +SRC_URI += "file://pl_server_init \ + file://0001-Fix-3.6-ism-in-Xlnk-class.patch \ + file://0002-Avoid-deleteing-notebooks.patch \ + file://0003-Use-sysroot-for-Displayport-library.patch \ +" FILESEXTRAPATHS_prepend := "${THISDIR}:" -S = "${WORKDIR}/git" - -INSANE_SKIP_${PN} = "staticdev" INITSCRIPT_PACKAGES = "${PN}" INITSCRIPT_NAME = "pl_server_init" @@ -48,6 +46,8 @@ INITSCRIPT_PARAMS = "start 99 S ." do_install_append() { install -d ${D}${INIT_D_DIR} install -m 755 ${WORKDIR}/pl_server_init ${D}${INIT_D_DIR}/pl_server_init + rm -rf ${D}${PYNQ_NOTEBOOK_DIR}_* } + FILES_${PN} += " ${INIT_D_DIR}/pl_server_init " diff --git a/meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0001-Fix-3.6-ism-in-Xlnk-class.patch b/meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0001-Fix-3.6-ism-in-Xlnk-class.patch new file mode 100644 index 00000000..d947a3a6 --- /dev/null +++ b/meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0001-Fix-3.6-ism-in-Xlnk-class.patch @@ -0,0 +1,25 @@ +From 940acab94a60708a9a9092579af52c1195f23fae Mon Sep 17 00:00:00 2001 +From: Peter Ogden +Date: Tue, 3 Mar 2020 06:21:03 -0500 +Subject: [PATCH 1/3] Fix 3.6-ism in Xlnk class + +--- + pynq/xlnk.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pynq/xlnk.py b/pynq/xlnk.py +index c07f1e5..a25e0e3 100644 +--- a/pynq/xlnk.py ++++ b/pynq/xlnk.py +@@ -423,7 +423,7 @@ class Xlnk: + for l in f.readlines(): + m = re.match('CmaTotal:[\\s]+([0-9]+) kB', l) + if m: +- return int(m[1]) * 1024 ++ return int(m.group(1)) * 1024 + return 0 + + def flush(self, bo, offset, vaddr, nbytes): +-- +2.7.4 + diff --git a/meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0002-Avoid-deleteing-notebooks.patch b/meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0002-Avoid-deleteing-notebooks.patch new file mode 100644 index 00000000..e67c8048 --- /dev/null +++ b/meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0002-Avoid-deleteing-notebooks.patch @@ -0,0 +1,35 @@ +From 70b38f8748779d57117bca3e37441e2223372293 Mon Sep 17 00:00:00 2001 +From: Peter Ogden +Date: Tue, 3 Mar 2020 06:23:26 -0500 +Subject: [PATCH 2/3] Avoid deleteing notebooks + +--- + setup.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index df1dada..95479e3 100644 +--- a/setup.py ++++ b/setup.py +@@ -36,6 +36,7 @@ from setuptools.command.build_ext import build_ext + from distutils.dir_util import copy_tree + from distutils.file_util import copy_file, move_file + from shutil import rmtree ++import shutil + import glob + import re + import subprocess +@@ -322,8 +323,8 @@ class BuildExtension(build_ext): + for ol in overlay_dirs: + src = os.path.join(board_folder, ol) + dst = os.path.join(self.build_lib, "pynq/overlays", ol) +- exclude_file_or_folder('notebooks', src) +- copy_tree(src, dst) ++ if not os.path.isdir(dst): ++ shutil.copytree(src, dst, ignore=shutil.ignore_patterns('notebooks')) + + def run(self): + if CPU_ARCH == ZYNQ_ARCH: +-- +2.7.4 + diff --git a/meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0003-Use-sysroot-for-Displayport-library.patch b/meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0003-Use-sysroot-for-Displayport-library.patch new file mode 100644 index 00000000..f250e4a2 --- /dev/null +++ b/meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0003-Use-sysroot-for-Displayport-library.patch @@ -0,0 +1,25 @@ +From 65e1134505235a60013d91c8b03401b8b4062cde Mon Sep 17 00:00:00 2001 +From: Peter Ogden +Date: Tue, 3 Mar 2020 10:32:35 -0500 +Subject: [PATCH 3/3] Use sysroot for Displayport library + +--- + pynq/lib/_pynq/_displayport/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/pynq/lib/_pynq/_displayport/Makefile b/pynq/lib/_pynq/_displayport/Makefile +index 5567e34..7f1f7b7 100644 +--- a/pynq/lib/_pynq/_displayport/Makefile ++++ b/pynq/lib/_pynq/_displayport/Makefile +@@ -2,7 +2,7 @@ CC ?= gcc + CXX ?= g++ + + OBJSC = displayport.o +-INC = -I${PYNQ_BUILD_ROOT}/usr/include/libdrm ++INC = -I=${PYNQ_BUILD_ROOT}/usr/include/libdrm + + all: + $(CXX) -fPIC $(INC) -c -g -std=c++11 displayport.cpp $(CFLAGS) +-- +2.7.4 + diff --git a/meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.4.bb b/meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.4.bb deleted file mode 100644 index 5a904c8f..00000000 --- a/meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.4.bb +++ /dev/null @@ -1,3 +0,0 @@ -inherit pypi setuptools3 -require python-pynq.inc - diff --git a/meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.5.1.bb b/meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.5.1.bb new file mode 100644 index 00000000..5a904c8f --- /dev/null +++ b/meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.5.1.bb @@ -0,0 +1,3 @@ +inherit pypi setuptools3 +require python-pynq.inc + -- cgit v1.2.3-54-g00ecf