summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Ogden <peter.ogden@xilinx.com>2020-04-01 04:54:16 -0700
committerSai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>2020-05-18 10:02:37 -0700
commit4dc410c1d2bb6ed77b94bb15b3536c7d6c4db362 (patch)
tree7723f17e638fc28c98df249e17bb03b498710c6c
parent1d5b70a2dbf329630c12f9c6170e4897b4689253 (diff)
downloadmeta-xilinx-4dc410c1d2bb6ed77b94bb15b3536c7d6c4db362.tar.gz
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 <ogden@xilinx.com> Signed-off-by: Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
-rw-r--r--meta-xilinx-pynq/classes/xilinx-pynq.bbclass29
-rw-r--r--meta-xilinx-pynq/recipes-devtool/python/python-pynq.inc22
-rw-r--r--meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0001-Fix-3.6-ism-in-Xlnk-class.patch25
-rw-r--r--meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0002-Avoid-deleteing-notebooks.patch35
-rw-r--r--meta-xilinx-pynq/recipes-devtool/python/python3-pynq/0003-Use-sysroot-for-Displayport-library.patch25
-rw-r--r--meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.5.1.bb (renamed from meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.4.bb)0
6 files changed, 121 insertions, 15 deletions
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"
3PYNQ_ARCH_arm = "armv7l" 3PYNQ_ARCH_arm = "armv7l"
4PYNQ_ARCH_aarch64 = "aarch64" 4PYNQ_ARCH_aarch64 = "aarch64"
5 5
6CMA_ARCH_arm = "32"
7CMA_ARCH_aarch64 = "64"
8
9PYNQ_BUILD_ARCH="${PYNQ_ARCH_${TARGET_ARCH}}" 6PYNQ_BUILD_ARCH="${PYNQ_ARCH_${TARGET_ARCH}}"
10PYNQ_BUILD_ROOT="${STAGING_DIR_TARGET}" 7PYNQ_BUILD_ROOT="${STAGING_DIR_TARGET}"
11BBCLASSEXTEND = "native nativesdk" 8BBCLASSEXTEND = "native nativesdk"
12 9
10PACKAGES += " ${PN}-notebooks"
13FILES_${PN}-notebooks += "${PYNQ_NOTEBOOK_DIR}" 11FILES_${PN}-notebooks += "${PYNQ_NOTEBOOK_DIR}"
14PACKAGES += "${PN}-notebooks" 12
13INSANE_SKIP_${PN} += "staticdev dev-so"
14inherit python3-dir
15 15
16# Used for setup.py on PYNQ 16# Used for setup.py on PYNQ
17BOARD_NAME_ultra96-zynqmp = "Ultra96" 17BOARD_NAME_ultra96-zynqmp = "Ultra96"
18BOARD_NAME_zcu104-zynqmp = "ZCU104"
19
20do_compile_prepend() {
21 export BOARD=${BOARD_NAME}
22 export PYNQ_BUILD_ARCH=${PYNQ_BUILD_ARCH}
23 export PYNQ_JUPYTER_NOTEBOOKS=${D}${PYNQ_NOTEBOOK_DIR}
24}
25
26do_install_prepend() {
27 export BOARD=${BOARD_NAME}
28 export PYNQ_BUILD_ARCH=${PYNQ_BUILD_ARCH}
29 export PYNQ_JUPYTER_NOTEBOOKS=${D}${PYNQ_NOTEBOOK_DIR}
30 install -d ${PYNQ_JUPYTER_NOTEBOOKS}
31}
32
33do_configure_prepend() {
34 export BOARD=${BOARD_NAME}
35 export PYNQ_BUILD_ARCH=${PYNQ_BUILD_ARCH}
36 export PYNQ_JUPYTER_NOTEBOOKS=${D}${PYNQ_NOTEBOOK_DIR}
37 install -d ${PYNQ_JUPYTER_NOTEBOOKS}
38}
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"
3LICENSE = "MIT" 3LICENSE = "MIT"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=b42e39ad2ddbad7e8ad47f3eee6feff5" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=b42e39ad2ddbad7e8ad47f3eee6feff5"
5 5
6SRC_URI[md5sum] = "9950894100c20293e921090b76ca9f17"
7SRC_URI[sha256sum] = "4f719e2753093d1e79931755c624d160cf342c03af49e027d09abe75bdc8e8c5"
8
6RDEPENDS_${PN} += "\ 9RDEPENDS_${PN} += "\
7 ${PYTHON_PN}-core \ 10 ${PYTHON_PN}-core \
8 ${PYTHON_PN}-asyncio \ 11 ${PYTHON_PN}-asyncio \
@@ -17,6 +20,7 @@ RDEPENDS_${PN} += "\
17 ${PYTHON_PN}-setuptools \ 20 ${PYTHON_PN}-setuptools \
18 ${PYTHON_PN}-threading \ 21 ${PYTHON_PN}-threading \
19 ${PYTHON_PN}-xml \ 22 ${PYTHON_PN}-xml \
23 ${PYTHON_PN}-audio \
20 lmsensors-libsensors \ 24 lmsensors-libsensors \
21 libdrm \ 25 libdrm \
22 libcma \ 26 libcma \
@@ -27,19 +31,13 @@ inherit update-rc.d xilinx-pynq
27 31
28DEPENDS += " libdrm boost libcma" 32DEPENDS += " libdrm boost libcma"
29 33
30PYNQBRANCH ?= "image_v2.4" 34SRC_URI += "file://pl_server_init \
31SRCBRANCHARG = "${@['nobranch=1', 'branch=${PYNQBRANCH}'][d.getVar('PYNQBRANCH', True) != '']}" 35 file://0001-Fix-3.6-ism-in-Xlnk-class.patch \
32PYNQURI ?= "git://github.com/Xilinx/PYNQ.git;protocol=https" 36 file://0002-Avoid-deleteing-notebooks.patch \
33 37 file://0003-Use-sysroot-for-Displayport-library.patch \
34SRC_URI = "${PYNQURI};${SRCBRANCHARG} \ 38"
35 file://pl_server_init \
36 "
37SRCREV ?= "3d659d374701b7c34fa702e7aa23f71f9113f826"
38 39
39FILESEXTRAPATHS_prepend := "${THISDIR}:" 40FILESEXTRAPATHS_prepend := "${THISDIR}:"
40S = "${WORKDIR}/git"
41
42INSANE_SKIP_${PN} = "staticdev"
43 41
44INITSCRIPT_PACKAGES = "${PN}" 42INITSCRIPT_PACKAGES = "${PN}"
45INITSCRIPT_NAME = "pl_server_init" 43INITSCRIPT_NAME = "pl_server_init"
@@ -48,6 +46,8 @@ INITSCRIPT_PARAMS = "start 99 S ."
48do_install_append() { 46do_install_append() {
49 install -d ${D}${INIT_D_DIR} 47 install -d ${D}${INIT_D_DIR}
50 install -m 755 ${WORKDIR}/pl_server_init ${D}${INIT_D_DIR}/pl_server_init 48 install -m 755 ${WORKDIR}/pl_server_init ${D}${INIT_D_DIR}/pl_server_init
49 rm -rf ${D}${PYNQ_NOTEBOOK_DIR}_*
51} 50}
52 51
52
53FILES_${PN} += " ${INIT_D_DIR}/pl_server_init " 53FILES_${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 @@
1From 940acab94a60708a9a9092579af52c1195f23fae Mon Sep 17 00:00:00 2001
2From: Peter Ogden <ogden@xilinx.com>
3Date: Tue, 3 Mar 2020 06:21:03 -0500
4Subject: [PATCH 1/3] Fix 3.6-ism in Xlnk class
5
6---
7 pynq/xlnk.py | 2 +-
8 1 file changed, 1 insertion(+), 1 deletion(-)
9
10diff --git a/pynq/xlnk.py b/pynq/xlnk.py
11index c07f1e5..a25e0e3 100644
12--- a/pynq/xlnk.py
13+++ b/pynq/xlnk.py
14@@ -423,7 +423,7 @@ class Xlnk:
15 for l in f.readlines():
16 m = re.match('CmaTotal:[\\s]+([0-9]+) kB', l)
17 if m:
18- return int(m[1]) * 1024
19+ return int(m.group(1)) * 1024
20 return 0
21
22 def flush(self, bo, offset, vaddr, nbytes):
23--
242.7.4
25
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 @@
1From 70b38f8748779d57117bca3e37441e2223372293 Mon Sep 17 00:00:00 2001
2From: Peter Ogden <ogden@xilinx.com>
3Date: Tue, 3 Mar 2020 06:23:26 -0500
4Subject: [PATCH 2/3] Avoid deleteing notebooks
5
6---
7 setup.py | 5 +++--
8 1 file changed, 3 insertions(+), 2 deletions(-)
9
10diff --git a/setup.py b/setup.py
11index df1dada..95479e3 100644
12--- a/setup.py
13+++ b/setup.py
14@@ -36,6 +36,7 @@ from setuptools.command.build_ext import build_ext
15 from distutils.dir_util import copy_tree
16 from distutils.file_util import copy_file, move_file
17 from shutil import rmtree
18+import shutil
19 import glob
20 import re
21 import subprocess
22@@ -322,8 +323,8 @@ class BuildExtension(build_ext):
23 for ol in overlay_dirs:
24 src = os.path.join(board_folder, ol)
25 dst = os.path.join(self.build_lib, "pynq/overlays", ol)
26- exclude_file_or_folder('notebooks', src)
27- copy_tree(src, dst)
28+ if not os.path.isdir(dst):
29+ shutil.copytree(src, dst, ignore=shutil.ignore_patterns('notebooks'))
30
31 def run(self):
32 if CPU_ARCH == ZYNQ_ARCH:
33--
342.7.4
35
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 @@
1From 65e1134505235a60013d91c8b03401b8b4062cde Mon Sep 17 00:00:00 2001
2From: Peter Ogden <ogden@xilinx.com>
3Date: Tue, 3 Mar 2020 10:32:35 -0500
4Subject: [PATCH 3/3] Use sysroot for Displayport library
5
6---
7 pynq/lib/_pynq/_displayport/Makefile | 2 +-
8 1 file changed, 1 insertion(+), 1 deletion(-)
9
10diff --git a/pynq/lib/_pynq/_displayport/Makefile b/pynq/lib/_pynq/_displayport/Makefile
11index 5567e34..7f1f7b7 100644
12--- a/pynq/lib/_pynq/_displayport/Makefile
13+++ b/pynq/lib/_pynq/_displayport/Makefile
14@@ -2,7 +2,7 @@ CC ?= gcc
15 CXX ?= g++
16
17 OBJSC = displayport.o
18-INC = -I${PYNQ_BUILD_ROOT}/usr/include/libdrm
19+INC = -I=${PYNQ_BUILD_ROOT}/usr/include/libdrm
20
21 all:
22 $(CXX) -fPIC $(INC) -c -g -std=c++11 displayport.cpp $(CFLAGS)
23--
242.7.4
25
diff --git a/meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.4.bb b/meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.5.1.bb
index 5a904c8f..5a904c8f 100644
--- a/meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.4.bb
+++ b/meta-xilinx-pynq/recipes-devtool/python/python3-pynq_2.5.1.bb