From 450388ddf932c1ed892d29fe8da6429fbc5797e5 Mon Sep 17 00:00:00 2001 From: Ilari Ängeslevä Date: Thu, 19 Oct 2017 08:15:56 +0300 Subject: Add support for jetson-tx2 * Update env init and set-up scripts with jetson-tx2 definitions. * Include jetson-tx2 specific configuration files. * Create a copy of an existing patch to adapt to recent changes in the kernel directory structure. Change-Id: I28fbc6cdfe91562ef261543bba4d136c4291ce23 Reviewed-by: Samuli Piippo --- b2qt-init-build-env | 2 +- conf/distro/include/jetson-tx1.conf | 14 +------ conf/distro/include/jetson-tx2.conf | 32 +++++++++++++++ conf/distro/include/jetson.inc | 43 ++++++++++++++++++++ ...re-variable-screen-info-instead-of-modes-.patch | 46 ++++++++++++++++++++++ meta-tegra-extras/recipes/qt5/qtbase_git.bbappend | 6 ++- .../qt5/qtbase/jetson-tx2/oe-device-extra.pri | 4 ++ scripts/setup-environment.sh | 2 +- 8 files changed, 132 insertions(+), 17 deletions(-) create mode 100644 conf/distro/include/jetson-tx2.conf create mode 100644 conf/distro/include/jetson.inc create mode 100644 meta-tegra-extras/recipes/linux/linux-tegra/jetson-tx2/0001-fbcon-Compare-variable-screen-info-instead-of-modes-.patch create mode 100644 recipes-qt/qt5/qtbase/jetson-tx2/oe-device-extra.pri diff --git a/b2qt-init-build-env b/b2qt-init-build-env index d4dbbdf..33e12e8 100755 --- a/b2qt-init-build-env +++ b/b2qt-init-build-env @@ -130,7 +130,7 @@ get_groups() { emulator) PROJECT_GROUPS="emulator" ;; - jetson-tx1|jetson-tk1) + jetson-tx1|jetson-tx2|jetson-tk1) PROJECT_GROUPS="jetson" ;; salvator-x|h3ulcb|m3ulcb) diff --git a/conf/distro/include/jetson-tx1.conf b/conf/distro/include/jetson-tx1.conf index 80435f3..ca82ab0 100644 --- a/conf/distro/include/jetson-tx1.conf +++ b/conf/distro/include/jetson-tx1.conf @@ -29,16 +29,4 @@ DEPLOY_CONF_NAME = "NVIDIA Jetson TX1" -# use mmc0 -ROOTFS_DEVICE = "mmcblk1p1" - -INITRAMFS_MAXSIZE = "165888" -IMAGE_CLASSES += "image_types_tegra" -IMAGE_FSTYPES += "tegraflash" -IMAGE_ROOTFS_ALIGNMENT = "1024" -UBOOT_SUFFIX = "bin" - -QBSP_IMAGE_CONTENT = "\ - ${IMAGE_LINK_NAME}.img \ - ${IMAGE_LINK_NAME}.conf \ - " +include conf/distro/include/jetson.inc diff --git a/conf/distro/include/jetson-tx2.conf b/conf/distro/include/jetson-tx2.conf new file mode 100644 index 0000000..7ab3fb0 --- /dev/null +++ b/conf/distro/include/jetson-tx2.conf @@ -0,0 +1,32 @@ +############################################################################ +## +## Copyright (C) 2017 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the Boot to Qt meta layer. +## +## $QT_BEGIN_LICENSE:GPL$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 or (at your option) any later version +## approved by the KDE Free Qt Foundation. The licenses are as published by +## the Free Software Foundation and appearing in the file LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################ + +DEPLOY_CONF_NAME = "NVIDIA Jetson TX2" + +include conf/distro/include/jetson.inc diff --git a/conf/distro/include/jetson.inc b/conf/distro/include/jetson.inc new file mode 100644 index 0000000..00a7bf8 --- /dev/null +++ b/conf/distro/include/jetson.inc @@ -0,0 +1,43 @@ +############################################################################ +## +## Copyright (C) 2016 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the Boot to Qt meta layer. +## +## $QT_BEGIN_LICENSE:GPL$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 or (at your option) any later version +## approved by the KDE Free Qt Foundation. The licenses are as published by +## the Free Software Foundation and appearing in the file LICENSE.GPL3 +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################ + +# use mmc0 + +ROOTFS_DEVICE = "mmcblk1p1" + +INITRAMFS_MAXSIZE = "165888" +IMAGE_CLASSES += "image_types_tegra" +IMAGE_FSTYPES += "tegraflash" +IMAGE_ROOTFS_ALIGNMENT = "1024" +UBOOT_SUFFIX = "bin" + +QBSP_IMAGE_CONTENT = "\ + ${IMAGE_LINK_NAME}.img \ + ${IMAGE_LINK_NAME}.conf \ + " diff --git a/meta-tegra-extras/recipes/linux/linux-tegra/jetson-tx2/0001-fbcon-Compare-variable-screen-info-instead-of-modes-.patch b/meta-tegra-extras/recipes/linux/linux-tegra/jetson-tx2/0001-fbcon-Compare-variable-screen-info-instead-of-modes-.patch new file mode 100644 index 0000000..1bce6d7 --- /dev/null +++ b/meta-tegra-extras/recipes/linux/linux-tegra/jetson-tx2/0001-fbcon-Compare-variable-screen-info-instead-of-modes-.patch @@ -0,0 +1,46 @@ +From 75a27373962e24424bcd2781568e6c6c5715ca92 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Ilari=20=C3=84ngeslev=C3=A4?= +Date: Tue, 17 Oct 2017 14:13:02 +0300 +Subject: [PATCH] fbcon: Compare variable screen info instead of modes (FIX) + +Previous commit changed behavior, so that when trying to match a mode to a +variable screen info structure, the mode was first converted to a variable +screen structure rather than the variable screen info structure to a mode. + +However, when new mode was being added to the modelist, matching was still +being done using mode structure. This could cause situation, where existing +mode would match when comparing with mode structure, but not when compared +using variable screen info structure. This would eventually result in a +NULL pointer dereference in fbcon_switch. + +Fix the issue by using the variable screen info structure also when adding +new mode to the modelist. +--- + drivers/video/fbdev/core/modedb.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/drivers/video/fbdev/core/modedb.c b/drivers/video/fbdev/core/modedb.c +index f5a53a6..a8fd871 100644 +--- a/drivers/video/fbdev/core/modedb.c ++++ b/drivers/video/fbdev/core/modedb.c +@@ -2187,13 +2187,14 @@ int fb_add_videomode(const struct fb_videomode *mode, struct list_head *head) + { + struct list_head *pos; + struct fb_modelist *modelist; +- struct fb_videomode *m; ++ struct fb_var_screeninfo v1, v2; + int found = 0; + ++ fb_videomode_to_var(&v1, mode); + list_for_each(pos, head) { + modelist = list_entry(pos, struct fb_modelist, list); +- m = &modelist->mode; +- if (fb_mode_is_equal(m, mode)) { ++ fb_videomode_to_var(&v2, &modelist->mode); ++ if (fb_var_is_equal(&v1, &v2)) { + found = 1; + break; + } +-- +2.7.4 + diff --git a/meta-tegra-extras/recipes/qt5/qtbase_git.bbappend b/meta-tegra-extras/recipes/qt5/qtbase_git.bbappend index ae323cf..5b9f84b 100644 --- a/meta-tegra-extras/recipes/qt5/qtbase_git.bbappend +++ b/meta-tegra-extras/recipes/qt5/qtbase_git.bbappend @@ -29,5 +29,7 @@ PACKAGECONFIG += "kms" -# Disable getentropy because of older than 3.17 kernel -QT_CONFIG_FLAGS += "--no-feature-getentropy" +# Disable getentropy for jetson-tx1 because of older than 3.17 kernel. +# The kernel version in jetson-tx2 is 4.4. + +QT_CONFIG_FLAGS_append_jetson-tx1 = " --no-feature-getentropy" diff --git a/recipes-qt/qt5/qtbase/jetson-tx2/oe-device-extra.pri b/recipes-qt/qt5/qtbase/jetson-tx2/oe-device-extra.pri new file mode 100644 index 0000000..d4c14ca --- /dev/null +++ b/recipes-qt/qt5/qtbase/jetson-tx2/oe-device-extra.pri @@ -0,0 +1,4 @@ +QMAKE_PLATFORM += boot2qt + +QT_QPA_DEFAULT_PLATFORM = eglfs +EGLFS_DEVICE_INTEGRATION = eglfs_kms_egldevice diff --git a/scripts/setup-environment.sh b/scripts/setup-environment.sh index fbe8672..204ded6 100755 --- a/scripts/setup-environment.sh +++ b/scripts/setup-environment.sh @@ -83,7 +83,7 @@ if [ ! -f ${PWD}/${BUILDDIRECTORY}/conf/bblayers.conf ]; then emulator) LAYERSCONF="bblayers.conf.emulator.sample" ;; - jetson-tx1|jetson-tk1) + jetson-tx1|jetson-tx2|jetson-tk1) LAYERSCONF="bblayers.conf.jetson.sample" ;; *) -- cgit v1.2.3-54-g00ecf