summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--conf/template.zcu102-zynqmp/bblayers.conf.sample21
-rw-r--r--conf/template.zcu102-zynqmp/conf-notes.txt10
-rw-r--r--conf/template.zcu102-zynqmp/local.conf.sample250
-rw-r--r--recipes-kernel/linux/kernel-devsrc.bb2
-rw-r--r--recipes-kernel/linux/kernel.devsrc.acclx86
-rw-r--r--recipes-u-boot/u-boot/files/0001-Fixed-missformed-CONFIG_PMUFW_INIT_FILE.patch35
-rw-r--r--recipes-u-boot/u-boot/u-boot-xlnx_2019.1.bbappend11
7 files changed, 328 insertions, 87 deletions
diff --git a/conf/template.zcu102-zynqmp/bblayers.conf.sample b/conf/template.zcu102-zynqmp/bblayers.conf.sample
new file mode 100644
index 0000000..02157cd
--- /dev/null
+++ b/conf/template.zcu102-zynqmp/bblayers.conf.sample
@@ -0,0 +1,21 @@
1# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
2# changes incompatibly
3POKY_BBLAYERS_CONF_VERSION = "2"
4
5BBPATH = "${TOPDIR}"
6BBFILES ?= ""
7
8BBLAYERS ?= " \
9 ##OEROOT##/meta \
10 ##OEROOT##/meta-poky \
11 ##OEROOT##/meta-enea-bsp-common \
12 ##OEROOT##/meta-enea-bsp-arm \
13 ##OEROOT##/meta-xilinx/meta-xilinx-bsp \
14 ##OEROOT##/meta-el-common \
15 ##OEROOT##/meta-openembedded/meta-oe \
16 ##OEROOT##/meta-openembedded/meta-networking \
17 ##OEROOT##/meta-openembedded/meta-filesystems \
18 ##OEROOT##/meta-openembedded/meta-python \
19 ##OEROOT##/meta-amp \
20 ##OEROOT##/meta-el-accelerated \
21 "
diff --git a/conf/template.zcu102-zynqmp/conf-notes.txt b/conf/template.zcu102-zynqmp/conf-notes.txt
new file mode 100644
index 0000000..e85f39b
--- /dev/null
+++ b/conf/template.zcu102-zynqmp/conf-notes.txt
@@ -0,0 +1,10 @@
1Common targets are:
2 enea-image-accelerated
3 the platform release image.
4
5 enea-image-accelerated-sdk
6 builds an image containing userspace tools and kernel configurations
7 necessary for developing, debugging and profiling applications and
8 kernel modules. In combination with '-c populate_sdk' builds a
9 self-extracting archive installing the complete Linux cross-compilation
10 toolchain for the platform.
diff --git a/conf/template.zcu102-zynqmp/local.conf.sample b/conf/template.zcu102-zynqmp/local.conf.sample
new file mode 100644
index 0000000..eed45b8
--- /dev/null
+++ b/conf/template.zcu102-zynqmp/local.conf.sample
@@ -0,0 +1,250 @@
1#
2# This file is your local configuration file and is where all local user settings
3# are placed. The comments in this file give some guide to the options a new user
4# to the system might want to change but pretty much any configuration option can
5# be set in this file. More adventurous users can look at local.conf.extended
6# which contains other examples of configuration which can be placed in this file
7# but new users likely won't need any of them initially.
8#
9# Lines starting with the '#' character are commented out and in some cases the
10# default values are provided as comments to show people example syntax. Enabling
11# the option is a question of removing the # character and making any change to the
12# variable as required.
13
14#
15# Machine Selection
16#
17# You need to select a specific machine to target the build with. There are a selection
18# of emulated machines available which can boot and run in the QEMU emulator:
19#
20#MACHINE ?= "qemuarm"
21#MACHINE ?= "qemuarm64"
22#MACHINE ?= "qemumips"
23#MACHINE ?= "qemumips64"
24#MACHINE ?= "qemuppc"
25#MACHINE ?= "qemux86"
26#MACHINE ?= "qemux86-64"
27#
28# There are also the following hardware board target machines included for
29# demonstration purposes:
30#
31#MACHINE ?= "beaglebone"
32#MACHINE ?= "genericx86"
33#MACHINE ?= "genericx86-64"
34#MACHINE ?= "mpc8315e-rdb"
35#MACHINE ?= "edgerouter"
36#
37# This sets the default machine to be qemux86 if no other machine is selected:
38MACHINE = "zcu102-zynqmp"
39TOOLCHAIN_TARGET_TASK_append = " kernel-devsrc"
40
41#
42# Where to place downloads
43#
44# During a first build the system will download many different source code tarballs
45# from various upstream projects. This can take a while, particularly if your network
46# connection is slow. These are all stored in DL_DIR. When wiping and rebuilding you
47# can preserve this directory to speed up this part of subsequent builds. This directory
48# is safe to share between multiple builds on the same machine too.
49#
50# The default is a downloads directory under TOPDIR which is the build directory.
51#
52#DL_DIR ?= "${TOPDIR}/downloads"
53
54#
55# Where to place shared-state files
56#
57# BitBake has the capability to accelerate builds based on previously built output.
58# This is done using "shared state" files which can be thought of as cache objects
59# and this option determines where those files are placed.
60#
61# You can wipe out TMPDIR leaving this directory intact and the build would regenerate
62# from these files if no changes were made to the configuration. If changes were made
63# to the configuration, only shared state files where the state was still valid would
64# be used (done using checksums).
65#
66# The default is a sstate-cache directory under TOPDIR.
67#
68#SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
69
70#
71# Where to place the build output
72#
73# This option specifies where the bulk of the building work should be done and
74# where BitBake should place its temporary files and output. Keep in mind that
75# this includes the extraction and compilation of many applications and the toolchain
76# which can use Gigabytes of hard disk space.
77#
78# The default is a tmp directory under TOPDIR.
79#
80#TMPDIR = "${TOPDIR}/tmp"
81
82#
83# Default policy config
84#
85# The distribution setting controls which policy settings are used as defaults.
86# The default value is fine for general Yocto project use, at least initially.
87# Ultimately when creating custom policy, people will likely end up subclassing
88# these defaults.
89#
90DISTRO = "enea"
91# As an example of a subclass there is a "bleeding" edge policy configuration
92# where many versions are set to the absolute latest code from the upstream
93# source control systems. This is just mentioned here as an example, its not
94# useful to most new users.
95# DISTRO ?= "poky-bleeding"
96
97#
98# Package Management configuration
99#
100# This variable lists which packaging formats to enable. Multiple package backends
101# can be enabled at once and the first item listed in the variable will be used
102# to generate the root filesystems.
103# Options are:
104# - 'package_deb' for debian style deb files
105# - 'package_ipk' for ipk files are used by opkg (a debian style embedded package manager)
106# - 'package_rpm' for rpm style packages
107# E.g.: PACKAGE_CLASSES ?= "package_rpm package_deb package_ipk"
108# We default to rpm:
109PACKAGE_CLASSES = "package_rpm"
110
111#
112# SDK/ADT target architecture
113#
114# This variable specifies the architecture to build SDK/ADT items for and means
115# you can build the SDK packages for architectures other than the machine you are
116# running the build on (i.e. building i686 packages on an x86_64 host).
117# Supported values are i686 and x86_64
118#SDKMACHINE ?= "i686"
119
120#
121# Extra image configuration defaults
122#
123# The EXTRA_IMAGE_FEATURES variable allows extra packages to be added to the generated
124# images. Some of these options are added to certain image types automatically. The
125# variable can contain the following options:
126# "dbg-pkgs" - add -dbg packages for all installed packages
127# (adds symbol information for debugging/profiling)
128# "dev-pkgs" - add -dev packages for all installed packages
129# (useful if you want to develop against libs in the image)
130# "ptest-pkgs" - add -ptest packages for all ptest-enabled packages
131# (useful if you want to run the package test suites)
132# "tools-sdk" - add development tools (gcc, make, pkgconfig etc.)
133# "tools-debug" - add debugging tools (gdb, strace)
134# "eclipse-debug" - add Eclipse remote debugging support
135# "tools-profile" - add profiling tools (oprofile, lttng, valgrind)
136# "tools-testapps" - add useful testing tools (ts_print, aplay, arecord etc.)
137# "debug-tweaks" - make an image suitable for development
138# e.g. ssh root access has a blank password
139# There are other application targets that can be used here too, see
140# meta/classes/image.bbclass and meta/classes/core-image.bbclass for more details.
141# We default to enabling the debugging tweaks.
142EXTRA_IMAGE_FEATURES = "debug-tweaks"
143
144#
145# Additional image features
146#
147# The following is a list of additional classes to use when building images which
148# enable extra features. Some available options which can be included in this variable
149# are:
150# - 'buildstats' collect build statistics
151# - 'image-mklibs' to reduce shared library files size for an image
152# - 'image-prelink' in order to prelink the filesystem image
153# - 'image-swab' to perform host system intrusion detection
154# NOTE: if listing mklibs & prelink both, then make sure mklibs is before prelink
155# NOTE: mklibs also needs to be explicitly enabled for a given image, see local.conf.extended
156USER_CLASSES ?= "buildstats image-mklibs image-prelink"
157
158#
159# Runtime testing of images
160#
161# The build system can test booting virtual machine images under qemu (an emulator)
162# after any root filesystems are created and run tests against those images. To
163# enable this uncomment this line. See classes/testimage(-auto).bbclass for
164# further details.
165#TEST_IMAGE = "1"
166#
167# Interactive shell configuration
168#
169# Under certain circumstances the system may need input from you and to do this it
170# can launch an interactive shell. It needs to do this since the build is
171# multithreaded and needs to be able to handle the case where more than one parallel
172# process may require the user's attention. The default is iterate over the available
173# terminal types to find one that works.
174#
175# Examples of the occasions this may happen are when resolving patches which cannot
176# be applied, to use the devshell or the kernel menuconfig
177#
178# Supported values are auto, gnome, xfce, rxvt, screen, konsole (KDE 3.x only), none
179# Note: currently, Konsole support only works for KDE 3.x due to the way
180# newer Konsole versions behave
181#OE_TERMINAL = "auto"
182# By default disable interactive patch resolution (tasks will just fail instead):
183PATCHRESOLVE = "noop"
184
185#
186# Disk Space Monitoring during the build
187#
188# Monitor the disk space during the build. If there is less that 1GB of space or less
189# than 100K inodes in any key build location (TMPDIR, DL_DIR, SSTATE_DIR), gracefully
190# shutdown the build. If there is less that 100MB or 1K inodes, perform a hard abort
191# of the build. The reason for this is that running completely out of space can corrupt
192# files and damages the build in ways which may not be easily recoverable.
193# It's necesary to monitor /tmp, if there is no space left the build will fail
194# with very exotic errors.
195BB_DISKMON_DIRS = "\
196 STOPTASKS,${TMPDIR},1G,100K \
197 STOPTASKS,${DL_DIR},1G,100K \
198 STOPTASKS,${SSTATE_DIR},1G,100K \
199 STOPTASKS,/tmp,100M,100K \
200 ABORT,${TMPDIR},100M,1K \
201 ABORT,${DL_DIR},100M,1K \
202 ABORT,${SSTATE_DIR},100M,1K \
203 ABORT,/tmp,10M,1K"
204
205#
206# Shared-state files from other locations
207#
208# As mentioned above, shared state files are prebuilt cache data objects which can
209# used to accelerate build time. This variable can be used to configure the system
210# to search other mirror locations for these objects before it builds the data itself.
211#
212# This can be a filesystem directory, or a remote url such as http or ftp. These
213# would contain the sstate-cache results from previous builds (possibly from other
214# machines). This variable works like fetcher MIRRORS/PREMIRRORS and points to the
215# cache locations to check for the shared objects.
216# NOTE: if the mirror uses the same structure as SSTATE_DIR, you need to add PATH
217# at the end as shown in the examples below. This will be substituted with the
218# correct path within the directory structure.
219#SSTATE_MIRRORS ?= "\
220#file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
221#file://.* file:///some/local/dir/sstate/PATH"
222
223
224#
225# Qemu configuration
226#
227# By default qemu will build with a builtin VNC server where graphical output can be
228# seen. The two lines below enable the SDL backend too. By default libsdl-native will
229# be built, if you want to use your host's libSDL instead of the minimal libsdl built
230# by libsdl-native then uncomment the ASSUME_PROVIDED line below.
231PACKAGECONFIG_append_pn-qemu-native = " sdl"
232PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
233#ASSUME_PROVIDED += "libsdl-native"
234
235# CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
236# track the version of this file when it was generated. This can safely be ignored if
237# this doesn't mean anything to you.
238CONF_VERSION = "1"
239
240DISTRO_FEATURES_remove = " x11"
241
242LICENSE_FLAGS_WHITELIST = "commercial_oseutils"
243
244BBMASK += " \
245 meta-enea-bsp-arm/recipes-kernel/linux/linux-raspberrypi-rt_4.19.bbappend \
246 meta-enea-bsp-arm/recipes-kernel/linux/linux-raspberrypi_4.9.bbappend \
247 meta-amp/recipes-kernel/linux/linux-intel_%.bbappend \
248 "
249# For Ultrascale+ don't include the kernel source in the image
250IMAGE_INSTALL_remove += "kernel-devsrc"
diff --git a/recipes-kernel/linux/kernel-devsrc.bb b/recipes-kernel/linux/kernel-devsrc.bb
index 8bbfa23..8522366 100644
--- a/recipes-kernel/linux/kernel-devsrc.bb
+++ b/recipes-kernel/linux/kernel-devsrc.bb
@@ -83,4 +83,4 @@ do_install[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
83 83
84PACKAGES = "kernel-devsrc" 84PACKAGES = "kernel-devsrc"
85FILES_${PN} = "${KERNEL_SRC_PATH}" 85FILES_${PN} = "${KERNEL_SRC_PATH}"
86RDEPENDS_${PN} = "bc" 86RDEPENDS_${PN} = "bc python python3"
diff --git a/recipes-kernel/linux/kernel.devsrc.acclx b/recipes-kernel/linux/kernel.devsrc.acclx
deleted file mode 100644
index 8bbfa23..0000000
--- a/recipes-kernel/linux/kernel.devsrc.acclx
+++ /dev/null
@@ -1,86 +0,0 @@
1SUMMARY = "Linux kernel Development Source"
2DESCRIPTION = "Development source linux kernel. When built, this recipe packages the \
3source of the preferred virtual/kernel provider and makes it available for full kernel \
4development or external module builds"
5
6SECTION = "kernel"
7
8LICENSE = "GPLv2"
9
10inherit linux-kernel-base
11
12# Whilst not a module, this ensures we don't get multilib extended (which would make no sense)
13inherit module-base
14
15# We need the kernel to be staged (unpacked, patched and configured) before
16# we can grab the source and make the source package. We also need the bits from
17# ${B} not to change while we install, so virtual/kernel must finish do_compile.
18do_install[depends] += "virtual/kernel:do_shared_workdir"
19# Need the source, not just the output of populate_sysroot
20do_install[depends] += "virtual/kernel:do_install"
21
22# There's nothing to do here, except install the source where we can package it
23do_fetch[noexec] = "1"
24do_unpack[noexec] = "1"
25do_patch[noexec] = "1"
26do_configure[noexec] = "1"
27do_compile[noexec] = "1"
28do_populate_sysroot[noexec] = "1"
29
30S = "${STAGING_KERNEL_DIR}"
31B = "${STAGING_KERNEL_BUILDDIR}"
32
33KERNEL_VERSION = "${@get_kernelversion_headers('${S}')}"
34
35PACKAGE_ARCH = "${MACHINE_ARCH}"
36
37do_install() {
38 kerneldir=${D}${KERNEL_SRC_PATH}
39 install -d $kerneldir
40
41 #
42 # Copy the staging dir source (and module build support) into the devsrc structure.
43 # We can keep this copy simple and take everything, since a we'll clean up any build
44 # artifacts afterwards, and the extra i/o is not significant
45 #
46 cd ${B}
47 find . -type d -name '.git*' -prune -o -path '.debug' -prune -o -type f -print0 | cpio --null -pdlu $kerneldir
48 cd ${S}
49 find . -type d -name '.git*' -prune -o -type d -name '.kernel-meta' -prune -o -type f -print0 | cpio --null -pdlu $kerneldir
50
51 # Explicitly set KBUILD_OUTPUT to ensure that the image directory is cleaned and not
52 # The main build artifacts. We clean the directory to avoid QA errors on mismatched
53 # architecture (since scripts and helpers are native format).
54 KBUILD_OUTPUT="$kerneldir"
55 oe_runmake -C $kerneldir CC="${KERNEL_CC}" LD="${KERNEL_LD}" clean _mrproper_scripts
56 # make clean generates an absolute path symlink called "source"
57 # in $kerneldir points to $kerneldir, which doesn't make any
58 # sense, so remove it.
59 if [ -L $kerneldir/source ]; then
60 bbnote "Removing $kerneldir/source symlink"
61 rm -f $kerneldir/source
62 fi
63
64 # As of Linux kernel version 3.0.1, the clean target removes
65 # arch/powerpc/lib/crtsavres.o which is present in
66 # KBUILD_LDFLAGS_MODULE, making it required to build external modules.
67 if [ ${ARCH} = "powerpc" ]; then
68 mkdir -p $kerneldir/arch/powerpc/lib/
69 cp ${B}/arch/powerpc/lib/crtsavres.o $kerneldir/arch/powerpc/lib/crtsavres.o
70 fi
71
72 # Remove fixdep/objtool as they won't be target binaries
73 for i in fixdep objtool; do
74 if [ -e $kerneldir/tools/objtool/$i ]; then
75 rm -rf $kerneldir/tools/objtool/$i
76 fi
77 done
78
79 chown -R root:root ${D}
80}
81# Ensure we don't race against "make scripts" during cpio
82do_install[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
83
84PACKAGES = "kernel-devsrc"
85FILES_${PN} = "${KERNEL_SRC_PATH}"
86RDEPENDS_${PN} = "bc"
diff --git a/recipes-u-boot/u-boot/files/0001-Fixed-missformed-CONFIG_PMUFW_INIT_FILE.patch b/recipes-u-boot/u-boot/files/0001-Fixed-missformed-CONFIG_PMUFW_INIT_FILE.patch
new file mode 100644
index 0000000..3d54c3b
--- /dev/null
+++ b/recipes-u-boot/u-boot/files/0001-Fixed-missformed-CONFIG_PMUFW_INIT_FILE.patch
@@ -0,0 +1,35 @@
1From 845ef4193cf00feef7de9c248adab642eda725b8 Mon Sep 17 00:00:00 2001
2From: Daniel BORNAZ <daniel.bornaz@enea.com>
3Date: Tue, 7 Jul 2020 11:13:02 +0200
4Subject: [PATCH] Fixed missformed CONFIG_PMUFW_INIT_FILE
5
6---
7 scripts/Makefile.spl | 12 ++++++------
8 1 file changed, 6 insertions(+), 6 deletions(-)
9
10diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
11index e5b604e2d2..9ae6672907 100644
12--- a/scripts/Makefile.spl
13+++ b/scripts/Makefile.spl
14@@ -180,12 +180,12 @@ ifdef CONFIG_ARCH_ZYNQ
15 MKIMAGEFLAGS_boot.bin = -T zynqimage -R $(srctree)/$(CONFIG_BOOT_INIT_FILE)
16 endif
17 ifdef CONFIG_ARCH_ZYNQMP
18-ifneq ($(CONFIG_PMUFW_INIT_FILE),"")
19-spl/boot.bin: zynqmp-check-pmufw
20-zynqmp-check-pmufw: FORCE
21- ( cd $(srctree) && test -r $(CONFIG_PMUFW_INIT_FILE) ) \
22- || ( echo "Cannot read $(CONFIG_PMUFW_INIT_FILE)" && false )
23-endif
24+# ifneq ($(CONFIG_PMUFW_INIT_FILE),"")
25+# spl/boot.bin: zynqmp-check-pmufw
26+# zynqmp-check-pmufw: FORCE
27+# ( cd $(srctree) && test -r $(CONFIG_PMUFW_INIT_FILE) ) \
28+# || ( echo "Cannot read $(CONFIG_PMUFW_INIT_FILE)" && false )
29+# endif
30 MKIMAGEFLAGS_boot.bin = -T zynqmpimage -R $(srctree)/$(CONFIG_BOOT_INIT_FILE) \
31 -n "$(shell cd $(srctree); readlink -f $(CONFIG_PMUFW_INIT_FILE))"
32 endif
33--
342.20.1
35
diff --git a/recipes-u-boot/u-boot/u-boot-xlnx_2019.1.bbappend b/recipes-u-boot/u-boot/u-boot-xlnx_2019.1.bbappend
new file mode 100644
index 0000000..1d03d10
--- /dev/null
+++ b/recipes-u-boot/u-boot/u-boot-xlnx_2019.1.bbappend
@@ -0,0 +1,11 @@
1include u-boot-spl-zynq-init.inc
2
3FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
4
5SRC_URI_append = "\
6 file://0001-Fixed-missformed-CONFIG_PMUFW_INIT_FILE.patch \
7 "
8
9python() {
10 d.appendVar("EXTRA_OEMAKE", " TEST=NOTHING")
11}