-
Notifications
You must be signed in to change notification settings - Fork 263
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
linux-imx-headers #19
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for this work; I think we got in a nice looking recipe as initial work and it can be used as base for further improvements.
See the comments I made. Easy stuff 👍
S = "${WORKDIR}/git" | ||
|
||
do_compile() { | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please:
do_compile[noexec] = "1"
-I${STAGING_KERNEL_DIR}/drivers/staging/android/uapi \ | ||
-I${STAGING_KERNEL_BUILDDIR}/include/generated/uapi \ | ||
" \ | ||
CPPFLAGS="-I${STAGING_DIR_TARGET}${includedir}/imx" \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use ${STAGING_INCDIR}/imx
as it is smaller.
It seems good; we just need to double check what else we can move to depend on the new linux-imx-headers. Suspects are:
As those should be part of this PR and we can merge them all in one shot. |
oe_runmake CROSS_COMPILE="${HOST_PREFIX}" PLATFORM="${PLATFORM}" INCLUDE="${INCLUDE_DIR}" all | ||
} | ||
|
||
do_install () { | ||
oe_runmake PLATFORM="${PLATFORM}" DEST_DIR="${D}" install | ||
} | ||
|
||
PACKAGE_ARCH = "${MACHINE_ARCH}" | ||
PACKAGE_ARCH = "${MACHINE_SOCARCH}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line is redundant to MACHINE_SOCARCH_FILTER.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're right ... however, it does not hurt.
In fact, after we finish going over the recipes, I will rework them one more time, globally, to avoid duplication but first I wish to go over the minimal set of changes which allow use to prove it keeps all working.
@@ -35,7 +33,8 @@ EGLVIVSINK_PLATFORM = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayla | |||
'fb', d),d)}" | |||
|
|||
EGL_PLATFORM_CONF = "--egl-platform=${EGLVIVSINK_PLATFORM}" | |||
EXTRA_OECONF = "--kernel-headers=${STAGING_KERNEL_DIR}/include ${PACKAGECONFIG_CONFARGS}" | |||
|
|||
EXTRA_OECONF = "CFLAGS="-I${STAGING_INCDIR}/imx"" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You must keep the previous:
EXTRA_OECONF = "--kernel-headers=${STAGING_INCDIR}/imx ${PACKAGECONFIG_CONFARGS}"
Hello Tom, I made a small rework on the recipes to simplify its use and also to allow for later improvements with easy. Take a look at the class and please try it at your side. Assuming it works, we can merge it. |
But in that case what's the plan for machines that use a kernel older than 4.9? Do they have to stick to sumo? Having a look at meta-freescale-3rdparty, it seems that many vendors are still using 3.14/4.1: Do we consider that every board vendor must be aligned with NXP's latest at all time or do we create as many linux-imx-headers recipes as there are kernel versions supported? Note that for i.MX6, nothing prevents people to stay on 4.1 or 3.14 but still use latest graphics/vpu libs. That's for the above reason that I am not fond of this approach. |
Hello @gibsson, thanks for joining the review :-)
I understand your concern and yes, it is going to cause some problems. Many of those board are outdated because vendors are not paying attention to community BSP. There many side benefits of having this in a general way, mainly:
So we will need to ping vendors to update their machines and in case they don't do that, remove broken boards. This ultimately is not a bad thing as if they don't care why should we care? |
Hello, also happy to be part of the discussion.
I understand but I wouldn't discard them though. Especially those using 4.1 kernels, it's still fairly recent in the NXP world, many vendors haven't switched to 4.9 yet (not just on the Yocto BSP).
How so? You still need to build the kernel so I'm not sure to follow.
But the ABI stays the same for all kernels, as long as you use 4.9 based on NXP fork you'll have the same.
How so? You still need to build the kernel for those packages to be useful.
Once again, I don't think it's only a matter of updating the recipe, some vendors haven't switched to 4.9 yet because they haven't run all their tests on it. All in all, I think this approach locks things down for unnecessary reasons (as it works fine without that approach today in a more flexible manner). |
They can still keep using old Yocto Project releases. I am sorry but their slowness cannot block things to improve.
We make more binaries SoC arch and as consequence, more recipes are skip when doing multiple machines. For you, it may not be a big deal but for customers which use multiple machines and for vendors who have multiple machines, it has a huge impact.
Yes but this is not guaranteed by the layer until we force it to stick to a static set of headers.
I respect your view @gibsson but vendors will need to upgrade or move to mainline Linux kernel. In fact, many vendors do not upgrade at all. Those, I am not concerned as this is their decision. All we can do to assist faster upgrades, we do. We have shared tree for Linux and U-Boot which allows for reducing work duplication and sooner or later they need to upgrade. |
Following changes are included: ecc2161 fix build error by gcc 8.2 7c7562b fix build error 114d98b launch dhcpd for usb<n> to avoid ipaddress lost in host machine 675c264 auto mount nfs by usb if command line have nfsroot= e05cc55 fix build error when gcc over 7.0 1b40fd0 Fix Sync command wait for wrong pid 1a58f13 Add OS DeviceInterfaceGUID to function fs 0c45898 write time too long to failure send response in time 87201ac mkfs.ext2 work, report status every 50ms e4aa701 dual dir ucopy work 77498f4 ufb copy work 06156a3 Update pid b7c19b0 wcie auto load winusb driver aa9e77a add super speed and MS_OS_DESC support 20d819c add functionfs to usb gadget support f2526dc Add ACmd, Sync, Open Command ce808f3 Create new daemon by use function_fs Signed-off-by: Otavio Salvador <[email protected]>
recipes-bsp/imx-test/imx-test_git.bb
Outdated
@@ -56,8 +56,8 @@ do_compile() { | |||
oe_runmake V=1 VERBOSE='' \ | |||
CROSS_COMPILE=${TARGET_PREFIX} \ | |||
INC="-I${STAGING_INCDIR} \ | |||
-I${STAGING_IMX_INCDIR}" \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't the order here wrong? The source headers should have a higher priority than the sysroot headers, in which case line 58 is also wrong.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You are right, can you fix it?
Use a common file to make easier update, maintain and create others U-Boot recipes like U-Boot fw-utils. Signed-off-by: Joris Offouga <[email protected]> Signed-off-by: Otavio Salvador <[email protected]>
classes/use-imx-headers.bbclass
Outdated
DEPENDS_imx_append = " linux-imx-headers" | ||
PACKAGE_ARCH_imx ?= "${MACHINE_SOCARCH}" | ||
|
||
STAGING_IMX_INCDIR = "${STAGING_INCDIR}/imx" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
STAGING_INCDIR_IMX seems a better name since the word order follows the directory order.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great, mind to fix it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do.
Initial support for fw utils for qoriq Signed-off-by: Joris Offouga <[email protected]> Signed-off-by: Otavio Salvador <[email protected]>
classes/use-imx-headers.bbclass
Outdated
# | ||
# Copyright 2018 (C) O.S. Systems Software LTDA. | ||
|
||
DEPENDS_imx_append = " linux-imx-headers" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs to be DEPENDS_append_imx, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it is indeed better
Signed-off-by: Chunrong Guo <[email protected]> Signed-off-by: Otavio Salvador <[email protected]>
Signed-off-by: Chunrong Guo <[email protected]> Signed-off-by: Otavio Salvador <[email protected]>
Signed-off-by: Chunrong Guo <[email protected]> Signed-off-by: Otavio Salvador <[email protected]>
Signed-off-by: Chunrong Guo <[email protected]> Signed-off-by: Otavio Salvador <[email protected]>
One of the advantages in using upstream mesa is that we have the freedom to use gl or gles2 for qtbase. So follow meta-qt5's default here which is desktop-gl and give other layers a more simple chance to change default if necessary. Notes: * Did performance tests with my images and did not find any performance issues. * Some recipes in meta-qt5-extra fail to build when qtbase is build for gles2. A patch addressing imx was applied [1] - but honestly it is not the way to go: use meta-qt5's default which is fine. [1] schnitzeltony/meta-qt5-extra@0972828 Signed-off-by: Andreas Müller <[email protected]> Signed-off-by: Otavio Salvador <[email protected]>
Signed-off-by: Andreas Müller <[email protected]> Signed-off-by: Otavio Salvador <[email protected]>
Signed-off-by: Chunrong Guo <[email protected]> Signed-off-by: Otavio Salvador <[email protected]>
Signed-off-by: Chunrong Guo <[email protected]> Signed-off-by: Otavio Salvador <[email protected]>
Signed-off-by: Chunrong Guo <[email protected]> Signed-off-by: Otavio Salvador <[email protected]>
Add a separate package for installing custom i.MX kernel headers. This way packages depending on these headers will need to be rebuilt only when the headers change instead of for every kernel change. Headers are installed to ${includedir}/imx, in the expected sub-folder, and dependents of the headers will need to add this include path. Signed-off-by: Tom Hochstein <[email protected]>
Signed-off-by: Tom Hochstein <[email protected]>
Find ion.h and version.h in linux-imx-headers instead of kernel. Signed-off-by: Tom Hochstein <[email protected]>
This builds on top of original recipe provided by Tom and do minor style and simplicity rework. - Add minor comments on the recipe for why it is doing each specific step - Add ALLOW_EMPTY for PN so it can be installed with SDK - Fix minor code style issues Signed-off-by: Otavio Salvador <[email protected]>
This reworks make use of linux-imx-headers and set it as SoC arch compatible. Signed-off-by: Otavio Salvador <[email protected]>
This reworks make use of linux-imx-headers and set it as SoC arch compatible. Signed-off-by: Otavio Salvador <[email protected]>
The code does not require anything that is machine specific and just use standard Linux APIs so it has no reason to depend on Linux kernel. Signed-off-by: Otavio Salvador <[email protected]>
This reworks make use of linux-imx-headers and set it as SoC arch compatible. Signed-off-by: Otavio Salvador <[email protected]>
Signed-off-by: Tom Hochstein <[email protected]>
…aders Signed-off-by: Tom Hochstein <[email protected]>
Signed-off-by: Tom Hochstein <[email protected]>
This allow to easy reuse of binary packages among similar SoCs. The usual use for this is to share SoC specific packages among different boards independently of the kernel version it is using, as far it is ABI compatible with the official version it will just work. Following recipes has been reworked to make use of the class: - imx-lib - imx-test - imx-vpu-hantro - imx-vpu - imx-alsa-plugins - gstreamer1.0-plugins-base - gstreamer1.0-plugins-imx - imx-gst1.0-plugin Signed-off-by: Otavio Salvador <[email protected]> Signed-off-by: Tom Hochstein <[email protected]>
*update to lsdk 1812 tag include the following changes d3111f0 - Merge pull request #28 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 3de6197 - Fixed build failure issue. 850f7b0 - Merge pull request #27 in DQNS/vpp from ~NXA12342/vpp:18.01 to 18.01 bb942a3 - dpdk/ipsec: add locks on session data hash updates 2e647f4 - Merge pull request #26 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 f242992 - PVT: ipsec: Fixed capability matching for openssl based sha1 authentication d7133de - Adding copyright for IPsec protocol offload work a0a8384 - Fixed copyright issue 8ac7782 - Fixed Debian pkg errors with Ubuntu 18.04 99f3b56 - Address compilation issues with Java > 1.8 09ba9a8 - Introducing env variables to include non-standard include in libs paths 9a24604 - glibc 2.27 fix 25c590a - Optimizing Crypto Dequeue Node to prevent buffer losses d8409f4 - Merge branch '18.01' of ssh://bitbucket.sw.nxp.com/~nxa19696/vpp into 18.01 731a2e5 - Added option for enabling RSS 3a97655 - Merge pull request #19 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 e47fe7d - Enable use of Maximum QP in Sec Device when available 723d633 - Merge pull request #18 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 a99e163 - PVT:dpdk_plugin: introducing IPSec protocol offload support 5f9b2c1 - Fixed Port detection mechanism for DPAA platforms f5724cd - Fixed debian pkg support for ARM64 platforms 29755c5 - Upstreamed: Fix to start Crypto Dev 351b6fd - Added support for Single CPU usecase with events 49ddf3b - ipsec: workaround for crypto devices having single queue d6adb7d - Tune config file for caam_jr driver b4a490c - Adjusting number of buffers for LS1012 ee5b872 - Merge pull request #13 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 b40602f - Merge branch '18.01' of ssh://bitbucket.sw.nxp.com/~nxa19696/vpp into 18.01 d8edb01 - Introduced Check for Heap allocation failure 7c551f6 - Merge pull request #12 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 43bef3e - Tuning Memory requirements for LS1012 ff02d6e - README_nxp updated 984ef5b - Adjusting Socket Memory requiremets Signed-off-by: Chunrong Guo <[email protected]>
*update to lsdk 1812 tag include the following changes d3111f0 - Merge pull request #28 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 3de6197 - Fixed build failure issue. 850f7b0 - Merge pull request #27 in DQNS/vpp from ~NXA12342/vpp:18.01 to 18.01 bb942a3 - dpdk/ipsec: add locks on session data hash updates 2e647f4 - Merge pull request #26 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 f242992 - PVT: ipsec: Fixed capability matching for openssl based sha1 authentication d7133de - Adding copyright for IPsec protocol offload work a0a8384 - Fixed copyright issue 8ac7782 - Fixed Debian pkg errors with Ubuntu 18.04 99f3b56 - Address compilation issues with Java > 1.8 09ba9a8 - Introducing env variables to include non-standard include in libs paths 9a24604 - glibc 2.27 fix 25c590a - Optimizing Crypto Dequeue Node to prevent buffer losses d8409f4 - Merge branch '18.01' of ssh://bitbucket.sw.nxp.com/~nxa19696/vpp into 18.01 731a2e5 - Added option for enabling RSS 3a97655 - Merge pull request #19 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 e47fe7d - Enable use of Maximum QP in Sec Device when available 723d633 - Merge pull request #18 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 a99e163 - PVT:dpdk_plugin: introducing IPSec protocol offload support 5f9b2c1 - Fixed Port detection mechanism for DPAA platforms f5724cd - Fixed debian pkg support for ARM64 platforms 29755c5 - Upstreamed: Fix to start Crypto Dev 351b6fd - Added support for Single CPU usecase with events 49ddf3b - ipsec: workaround for crypto devices having single queue d6adb7d - Tune config file for caam_jr driver b4a490c - Adjusting number of buffers for LS1012 ee5b872 - Merge pull request #13 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 b40602f - Merge branch '18.01' of ssh://bitbucket.sw.nxp.com/~nxa19696/vpp into 18.01 d8edb01 - Introduced Check for Heap allocation failure 7c551f6 - Merge pull request #12 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 43bef3e - Tuning Memory requirements for LS1012 ff02d6e - README_nxp updated 984ef5b - Adjusting Socket Memory requiremets Signed-off-by: Chunrong Guo <[email protected]>
*update to lsdk 1909 tag include the following changes: 4e8d2e5 - Merge pull request #19 in DASH/optee_os from ~NXA19713/optee_os:master to master 94bd7cc - Copyright header update. 9c09a28 - Merge pull request #18 in DASH/optee_os from ~NXA19713/optee_os:master to master 587183a - plat-ls:add LS1028ARDB platform Signed-off-by: Chunrong Guo <[email protected]>
*update to lsdk 1812 tag include the following changes d3111f0 - Merge pull request Freescale#28 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 3de6197 - Fixed build failure issue. 850f7b0 - Merge pull request Freescale#27 in DQNS/vpp from ~NXA12342/vpp:18.01 to 18.01 bb942a3 - dpdk/ipsec: add locks on session data hash updates 2e647f4 - Merge pull request Freescale#26 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 f242992 - PVT: ipsec: Fixed capability matching for openssl based sha1 authentication d7133de - Adding copyright for IPsec protocol offload work a0a8384 - Fixed copyright issue 8ac7782 - Fixed Debian pkg errors with Ubuntu 18.04 99f3b56 - Address compilation issues with Java > 1.8 09ba9a8 - Introducing env variables to include non-standard include in libs paths 9a24604 - glibc 2.27 fix 25c590a - Optimizing Crypto Dequeue Node to prevent buffer losses d8409f4 - Merge branch '18.01' of ssh://bitbucket.sw.nxp.com/~nxa19696/vpp into 18.01 731a2e5 - Added option for enabling RSS 3a97655 - Merge pull request Freescale#19 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 e47fe7d - Enable use of Maximum QP in Sec Device when available 723d633 - Merge pull request Freescale#18 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 a99e163 - PVT:dpdk_plugin: introducing IPSec protocol offload support 5f9b2c1 - Fixed Port detection mechanism for DPAA platforms f5724cd - Fixed debian pkg support for ARM64 platforms 29755c5 - Upstreamed: Fix to start Crypto Dev 351b6fd - Added support for Single CPU usecase with events 49ddf3b - ipsec: workaround for crypto devices having single queue d6adb7d - Tune config file for caam_jr driver b4a490c - Adjusting number of buffers for LS1012 ee5b872 - Merge pull request Freescale#13 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 b40602f - Merge branch '18.01' of ssh://bitbucket.sw.nxp.com/~nxa19696/vpp into 18.01 d8edb01 - Introduced Check for Heap allocation failure 7c551f6 - Merge pull request Freescale#12 in DQNS/vpp from ~NXA19696/vpp:18.01 to 18.01 43bef3e - Tuning Memory requirements for LS1012 ff02d6e - README_nxp updated 984ef5b - Adjusting Socket Memory requiremets Signed-off-by: Chunrong Guo <[email protected]>
*update to lsdk 1909 tag include the following changes: 4e8d2e5 - Merge pull request Freescale#19 in DASH/optee_os from ~NXA19713/optee_os:master to master 94bd7cc - Copyright header update. 9c09a28 - Merge pull request Freescale#18 in DASH/optee_os from ~NXA19713/optee_os:master to master 587183a - plat-ls:add LS1028ARDB platform Signed-off-by: Chunrong Guo <[email protected]>
No description provided.