summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTatiana Borisova <tatiana.borisova@qt.io>2021-08-03 18:08:01 +0300
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-08-25 06:33:54 +0000
commit2c60bfa80fbaf8b64cdc318f0b5989195214d167 (patch)
tree13009050410ba5532081310aded98a91e623b7dd
parent9ca70bcceaa9b3b931539a38cfc8f5a14bbf8185 (diff)
Create Integrity specific documentation for Qt6.2
-Add integrity as a supported platform in the supported platform page Task-number: QTBUG-95422 Change-Id: I45c1cf06847ca9aaf85cb7621fd53767cdf37ee8 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> (cherry picked from commit be4dc615ea3f8ace045d9b543da0f54c0075a36c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--doc/snippets/platforms/cmake/toolchain_integrity.cmake69
-rw-r--r--doc/src/images/fastboot-mode.pngbin0 -> 14923 bytes
-rw-r--r--doc/src/images/open-project.pngbin31906 -> 13275 bytes
-rw-r--r--doc/src/images/project-structure.pngbin0 -> 38866 bytes
-rw-r--r--doc/src/images/qml-application.pngbin0 -> 140868 bytes
-rw-r--r--doc/src/images/sa8155p.pngbin0 -> 159215 bytes
-rw-r--r--doc/src/images/wiring1.pngbin0 -> 143532 bytes
-rw-r--r--doc/src/images/wiring2.pngbin0 -> 222607 bytes
-rw-r--r--doc/src/platforms/installing-platform-dependencies.qdocinc75
-rw-r--r--doc/src/platforms/integrity-build-monolith-app-tutorial.qdoc91
-rw-r--r--doc/src/platforms/integrity-building-monolith.qdocinc112
-rw-r--r--doc/src/platforms/integrity-building-qt-8155P.qdocinc187
-rw-r--r--doc/src/platforms/integrity-flash-and-run.qdocinc140
-rw-r--r--doc/src/platforms/integrity.qdoc88
-rw-r--r--doc/src/platforms/supported-platforms.qdocinc10
15 files changed, 772 insertions, 0 deletions
diff --git a/doc/snippets/platforms/cmake/toolchain_integrity.cmake b/doc/snippets/platforms/cmake/toolchain_integrity.cmake
new file mode 100644
index 000000000..4f4ed6a5b
--- /dev/null
+++ b/doc/snippets/platforms/cmake/toolchain_integrity.cmake
@@ -0,0 +1,69 @@
+set(TARGET_ROOT_PATH "/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot")
+set(CMAKE_BUILD_TYPE "Release")
+
+set(CMAKE_C_COMPILER cxintarm64)
+set(CMAKE_CXX_COMPILER cxintarm64)
+set(CMAKE_ASM_COMPILER cxintarm64)
+
+#generic
+set(CMAKE_SYSTEM_NAME Integrity)
+set(CMAKE_SYSTEM_PROCESSOR arm)
+set(CMAKE_CROSSCOMPILING True)
+
+set(EGL_FOUND True)
+set(UNIX True)
+
+set (CMAKE_C_COMPILE_FEATURES c_std_99)
+set (CMAKE_CXX_COMPILE_FEATURES
+cxx_alias_templates
+cxx_alignas
+cxx_alignof
+cxx_attributes
+cxx_auto_type
+cxx_constexp
+cxx_decltype
+cxx_delegating_constructors
+cxx_explicit_conversions
+cxx_extern_templates
+cxx_inheriting_constructors
+cxx_lambdas
+cxx_noexcept
+cxx_nonstatic_member_init
+cxx_nullptr
+cxx_override
+cxx_range_for
+cxx_raw_string_literals
+cxx_reference_qualified_functions
+cxx_rvalue_references
+cxx_static_assert
+cxx_std_17
+cxx_thread_local
+cxx_unicode_literals
+cxx_uniform_initialization
+cxx_unrestricted_unions
+cxx_variadic_macros
+cxx_variadic_templates)
+
+#base
+set(CMAKE_C_FLAGS "-bsp $ENV{INTEGRITY_BSP} -os_dir $ENV{INTEGRITY_DIR} -non_shared -startfile_dir=$ENV{INTEGRITY_DIR}/libs/$ENV{INTEGRITY_BSP}/$ENV{INTEGRITY_BUILD_TARGET} --rtos_library_directory=libs/$ENV{INTEGRITY_BSP}/$ENV{INTEGRITY_BUILD_TARGET} --rtos_library_directory=libs/arm64/$ENV{INTEGRITY_BUILD_TARGET} -bigswitch -DINTEGRITY -llibivfs.a -llibposix.a -llibpaged_alloc.a -llibnet.a -llibsocket.a")
+set(CMAKE_C_FLAGS_DEBUG "-g -Omaxdebug")
+set(CMAKE_C_FLAGS_RELEASE "-Ospeed -Olink -Omax")
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --signed_fields --diag_suppress=1,82,228,236,381,611,961,997,1795,1931,1974,3148 --c++17 --thread_local_storage --exceptions --defer_parse_function_templates")
+set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} --signed_fields --no_implicit_include --link_once_templates -non_shared --new_outside_of_constructor -I $ENV{QC_MULTIMEDIA_INC_DIR}")
+set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
+set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${TARGET_ROOT_PATH} -L${TARGET_ROOT_PATH}/apps/ghs_apps_proc/qc_bsp/out/rel/libs/multimedia/graphics -L${TARGET_ROOT_PATH}/apps/ghs_apps_proc/qc_bsp/out/rel/libs/base -L${TARGET_ROOT_PATH}/apps/ghs_apps_proc/qc_bsp/AMSS/multimedia/graphics/opengl/esx/build/integrity/prebuilt -L${TARGET_ROOT_PATH}/apps/ghs_apps_proc/qc_bsp/out/rel/libs/platform -L${TARGET_ROOT_PATH}/apps/ghs_apps_proc/qc_bsp/out/rel/libs/multimedia/display/ --commons")
+set(CMAKE_FIND_LIBRARY_PREFIXES "lib")
+set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
+set(BUILD_SHARED_LIBS OFF)
+set(CMAKE_EXE_LINKER_FLAGS "")
+set(QT_CFLAGS_OPTIMIZE_FULL "-Ospeed -Olink -Omax")
+set(GLSLANG_OSDEP_PATH ../3rdparty/glslang/glslang/OSDependent/Unix)
+set(GL_INC_DIR ${TARGET_ROOT_PATH}/apps/ghs_apps_proc/qc_bsp/AMSS/multimedia/graphics/include/public)
+set(EGL_INCLUDE_DIR ${TARGET_ROOT_PATH}/apps/ghs_apps_proc/qc_bsp/AMSS/multimedia/graphics/include/public)
+set(PKG_EGL_LIBRARY_DIRS ${TARGET_ROOT_PATH})
+set(EGL_LIBRARY ${TARGET_ROOT_PATH}/libeglmegapack.a)
+set(GLESv2_LIBRARY ${TARGET_ROOT_PATH}/libeglmegapack.a)
+set(GLESv2_INCLUDE_DIR ${TARGET_ROOT_PATH}/apps/ghs_apps_proc/qc_bsp/AMSS/multimedia/graphics/include/public)
+set(OPENGL_INCLUDE_DIR ${TARGET_ROOT_PATH}/apps/ghs_apps_proc/qc_bsp/AMSS/multimedia/graphics/include/public)
+set(OPENGL_opengl_LIBRARY ${TARGET_ROOT_PATH}/libeglmegapack.a)
diff --git a/doc/src/images/fastboot-mode.png b/doc/src/images/fastboot-mode.png
new file mode 100644
index 000000000..c65a3eec8
--- /dev/null
+++ b/doc/src/images/fastboot-mode.png
Binary files differ
diff --git a/doc/src/images/open-project.png b/doc/src/images/open-project.png
index 18a1af52b..e246122ee 100644
--- a/doc/src/images/open-project.png
+++ b/doc/src/images/open-project.png
Binary files differ
diff --git a/doc/src/images/project-structure.png b/doc/src/images/project-structure.png
new file mode 100644
index 000000000..2eb8b2b3b
--- /dev/null
+++ b/doc/src/images/project-structure.png
Binary files differ
diff --git a/doc/src/images/qml-application.png b/doc/src/images/qml-application.png
new file mode 100644
index 000000000..b07e39ffe
--- /dev/null
+++ b/doc/src/images/qml-application.png
Binary files differ
diff --git a/doc/src/images/sa8155p.png b/doc/src/images/sa8155p.png
new file mode 100644
index 000000000..494fa91ff
--- /dev/null
+++ b/doc/src/images/sa8155p.png
Binary files differ
diff --git a/doc/src/images/wiring1.png b/doc/src/images/wiring1.png
new file mode 100644
index 000000000..7dc43ef71
--- /dev/null
+++ b/doc/src/images/wiring1.png
Binary files differ
diff --git a/doc/src/images/wiring2.png b/doc/src/images/wiring2.png
new file mode 100644
index 000000000..4386850a7
--- /dev/null
+++ b/doc/src/images/wiring2.png
Binary files differ
diff --git a/doc/src/platforms/installing-platform-dependencies.qdocinc b/doc/src/platforms/installing-platform-dependencies.qdocinc
new file mode 100644
index 000000000..929f428e0
--- /dev/null
+++ b/doc/src/platforms/installing-platform-dependencies.qdocinc
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+//! [installing platform dependencies]
+
+Before building applications with Qt for INTEGRITY,
+install the correct build tools and other dependencies required
+in the 64-bit Linux development host:
+
+\table 80%
+\header \li Requirement \li Description
+\row \li INTEGRITY 19.0.13 installation
+ \li The installation must contain the patches for C++17 support.
+ Contact \l {https://support.ghs.com/contact/request-support/}
+ {Green Hills Software}.
+ \note GHS patches \e 14695, \e 16456, \e 16761, \e 16762 and \e 16917.
+
+\row \li MULTI IDE and Green Hills Software Compiler (version 2020.1.4 or newer)
+ \li The Green Hills Software development tools. See
+ \l {http://www.ghs.com/products/MULTI_IDE.html} {MULTI IDE}.
+ For licenses, contact \l {https://support.ghs.com/licensing/request-license/}
+ {Green Hills Software}.
+ \note GHS patches \e 16398 and \e 17423.
+
+\row \li QC BSP [ES7] for GHS Integrity 19.0.13-QC
+ \li The development Qualcomm Board Support Package for Integrity and Snapdragon 8155P Board.
+ Contact \l {https://support.ghs.com/contact/request-support/}
+ {Green Hills Software}.
+
+\row \li QC [ES7] Customer package
+ \li Additional patches and instructions from Qualcomm.
+ Contact \l {https://www.qualcomm.com/support} {Qualcomm Support}.
+\row
+ \li CMake 3.18.4 or higher
+ \li CMake build system is now the default one for Qt 6 building.
+ See \l {https://cmake.org/documentation/} {CMake Documentation}.
+\row
+ \li Ninja
+ \li Ninja is a build system with a focus on speed. It is used to build Google
+ Chrome, parts of Android, LLVM, and can be used in many other projects due to CMake's Ninja backend.
+ See \l {https://cmake.org/cmake/help/latest/generator/Ninja.html} {Ninja}.
+\row
+ \li Other extra packages (perl, python, etc) required to be installed Host OS
+ \li See \l {https://wiki.qt.io/Building_Qt_5_from_Git} {Building Requirements}.
+ \note Perl is not required if you download the Qt sources via
+ your Qt Account.
+\endtable
+
+//! [installing platform dependencies]
+*/
diff --git a/doc/src/platforms/integrity-build-monolith-app-tutorial.qdoc b/doc/src/platforms/integrity-build-monolith-app-tutorial.qdoc
new file mode 100644
index 000000000..b3b9d7128
--- /dev/null
+++ b/doc/src/platforms/integrity-build-monolith-app-tutorial.qdoc
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page integrity-monolith-project-tutorial.html
+ \title Monolith Project Tutorial
+ \previouspage integrity.html
+ \nextpage integrity-installing-dependencies.html
+
+ The INTEGRITY applications can be monolith application projects,
+ dynamic download application projects, or kernelspace projects. The monolith
+ application is a stand-alone executable that you can run directly on a
+ target device.
+
+ In this tutorial, we build an INTEGRITY monolith project for
+ a Qt application. After following the steps in this
+ tutorial, you will have the Qt for INTEGRITY development environment up and running.
+
+ The tutorial assumes you have the
+ \l {https://www.lantronix.com/products/sa8155p-automotive-development-platform}
+ {Qualcomm Snapdragon 8155P}.
+
+ Tutorial content:
+ \list 1
+ \li \l {Installing Platform Dependencies}
+ \li \l {Building Qt for Qualcomm Snapdragon 8155P Board}
+ \li \l {Building a monolith project}
+ \li \l {Flashing a monolith image and running Qt application on the board}
+ \endlist
+
+*/
+
+/*!
+ \page integrity-installing-dependencies.html
+ \title Installing Platform Dependencies
+ \previouspage integrity-monolith-project-tutorial.html
+ \nextpage integrity-building-qt-for-8155P-board.html
+
+ \include installing-platform-dependencies.qdocinc installing platform dependencies
+*/
+
+/*!
+ \page integrity-building-qt-for-8155P-board.html
+ \title Building Qt for Qualcomm Snapdragon 8155P Board
+ \previouspage integrity-installing-dependencies.html
+ \nextpage integrity-building-monolith.html
+
+ \include integrity-building-qt-8155P.qdocinc building qt for Qualcomm Snapdragon 8155P
+*/
+
+/*!
+ \page integrity-building-monolith.html
+ \title Building a monolith project
+ \previouspage integrity-building-qt-for-8155P-board.html
+ \nextpage integrity-flash-image-and-run.html
+
+ \include integrity-building-monolith.qdocinc building monolith
+*/
+
+/*!
+ \page integrity-flash-image-and-run.html
+ \title Flashing a monolith image and running Qt application on the board
+ \previouspage integrity-building-monolith.html
+ \nextpage integrity-monolith-project-tutorial.html
+
+ \include integrity-flash-and-run.qdocinc flash and run application
+*/
diff --git a/doc/src/platforms/integrity-building-monolith.qdocinc b/doc/src/platforms/integrity-building-monolith.qdocinc
new file mode 100644
index 000000000..f1f3314c8
--- /dev/null
+++ b/doc/src/platforms/integrity-building-monolith.qdocinc
@@ -0,0 +1,112 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+//! [building monolith]
+
+This tutorial will guide you through building a monolith INTEGRITY project for a Qt example
+application. You can select any Qt example application that uses the
+\l {Supported Qt Modules} {Supported Qt modules}.
+
+Before building the monolith INTEGRITY project, prepare your build environment
+by running the \c setEnvironment.sh script. For more information about the script, see
+\l {Creating Script for Running Exports}.
+
+\badcode
+ source ~/setEnvironment.sh
+\endcode
+
+\section1 Building the Qt application
+For building a Qt6 based application using the CMake tool, run the following commands in a terminal:
+
+\badcode
+ <Qt installation path>/qtbase/bin/qt-cmake <Qt example application path>/CMakeLists.txt
+ cmake --build .
+\endcode
+
+Where, \c qt-cmake is the wrapper script that calls CMake to configure your project with appropriate include paths.
+
+\section1 Building a monolith project
+
+The board support package (BSP) for the Qualcomm Snapdragon 8155P board provides
+a build script to create a set of images for board partitions:
+\badcode
+ /work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/build_ghs.sh
+\endcode
+
+Add a Qt application to a build by adding it into the \e {monolith-service.int} file:
+
+\list 1
+ \li Start MULTI Launcher.
+ \li Select \uicontrol {Components} > \uicontrol {Open Project Manager}.
+ \li Select the project file \e {default.gpj}
+ under the \e {/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp} directory:
+ \image open-project "Select a project"
+ MULTI application shows a window with a list of project files from the chosen folder.
+ \li Select \uicontrol {Open}.
+\endlist
+
+In the MULTI Project Manager view, you should see a tree structure of the opened
+project.
+
+Go through the \c default.gpj sub projects:
+\list 1
+ \li Select \e {target.auto} \e {vmm-adp-no-gvm-sa8155.gpj} > \e {vvm-adp-gvm-ref.gpj} > \e {monolith-service.gpj}.
+ You can observe the project structure and edit a project's files.
+
+ \li Select \e {monolith-service.int}
+ \image project-structure "Project tree"
+ Selected \e {monolith-service.int} file is highlited in the project tree.
+
+ \li Right-click on the file, then select \uicontrol {Edit} from the context menu.
+ \li Add the following lines at the end of the file.
+ \badcode
+ AddressSpace
+ Name myappname
+ Filename /path/to/your/app/executable
+ MemoryPoolSize 0x2700000
+ Language C++
+ HeapSize 0x90000
+
+ Task Initial
+ StackSize 0x80000
+ StartIt false
+ EndTask
+ Extendedmemorypoolsize 0x300000
+ EndAddressSpace
+ \endcode
+ \note Replace </path/to/your/app/executable> with a path to your application executable.
+
+ \li Run the build script.
+ \badcode
+ bash /work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/build_ghs.sh
+ \endcode
+\endlist
+
+Your monolith project is now ready to be flashed on to the board.
+//! [building monolith]
+*/
diff --git a/doc/src/platforms/integrity-building-qt-8155P.qdocinc b/doc/src/platforms/integrity-building-qt-8155P.qdocinc
new file mode 100644
index 000000000..2a257f507
--- /dev/null
+++ b/doc/src/platforms/integrity-building-qt-8155P.qdocinc
@@ -0,0 +1,187 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+//! [building qt for Qualcomm Snapdragon 8155P]
+ Install INTEGRITY and Qualcomm environment according to the provided
+ instructions from Green Hills and Qualcomm.
+
+ To set up the development environment for Qt for INTEGRITY,
+ build Qt from the sources for the Qualcomm Snapdragon 8155P board. Before building Qt,
+ create a shell script that will set up the build environment.
+
+ \section1 Creating a shell script
+
+ Create a new shell script \e{setEnvironment.sh}, and save it under
+ your home folder. Add the following export commands to the script:
+
+ \badcode
+ export PATH=$PATH:/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/comp
+ export INTEGRITY_DIR=/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/integrity
+ export INTEGRITY_BSP=platform-sa8155
+ export INTEGRITY_BUILD_TARGET=chk
+ export QC_MULTIMEDIA_INC_DIR=/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/include/amss/multimedia
+ export GL_INC_DIR=/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/AMSS/multimedia/graphics/include/public
+ export GL_LIB_DIR=/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/rel/libs/base:/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/rel/libs/multimedia/display:/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/rel/libs/multimedia/graphics:/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/rel/libs/platform/:/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/AMSS/multimedia/graphics/opengl/esx/build/integrity/prebuilt/
+ \endcode
+
+ These exports assume you have used the \c /work/ghs/* installation directories
+ while installing MULTI IDE and INTEGRITY (see
+ \l {Installing Platform Dependencies}). If you have not used the default
+ directories, adjust the exported paths accordingly.
+
+ To initialize your build environment, run the following command in a terminal:
+
+ \badcode
+ source ~/setEnvironment.sh
+ \endcode
+
+ \note Run this command in your terminal every time you build Qt,
+ or use the \c qmake or CMake build systems.
+
+ \section1 Getting Qt sources
+
+ You can download the Qt source code from your
+ \l {https://login.qt.io/login} {Qt Account}.
+
+ You can also get the Qt sources from the Git repo. Qt Wiki has
+ instructions for getting Qt sources from Git, see
+ \l {https://wiki.qt.io/Building_Qt_5_from_Git#Getting_the_source_code} {Getting source code}.
+
+ \note Qt sources version must be 6.2 or laler.
+ \note The init-repository script initializes the Qt 6 repository
+ and clones various Qt 6 sub-modules (see
+ \l {https://wiki.qt.io/Building_Qt_5_from_Git#Getting_the_submodule_source_code}
+ {Getting the submodule source code}).
+ Qt modules supported by Qt for INTEGRITY are listed in \l {Supported Qt Modules}.
+
+ \section1 Building Qt Desktop for cross-compiling tools usage
+
+ The cross-compiling Qt requires a host build of Qt being available.
+ During the build, tools such as moc, rcc, qmlcachegen, qsb,
+ and others, are invoked from there.
+ For more detailed information please read
+ \l {https://www.qt.io/blog/qt-6-build-system} {Cross-compiling Qt}.
+
+ Run the following commands for Linux Host build:
+ \badcode
+ mkdir hostbuild
+ cd hostbuild/
+ ../qt5/configure -nomake tests -nomake examples -release -developer-build
+ cmake --build . --parallel 6
+ \endcode
+
+ \section1 Creating a toolchain file for INTEGRITY
+
+ To cross-compile a project with CMake, one must specify a toolchain file.
+ This CMake-language file sets the right values for the platform name,
+ used compiler/linker, and a whole bunch of other toolchain-specific things.
+ For Integrity build create toolchain.cmake with follow content:
+
+ \quotefromfile platforms/cmake/toolchain_integrity.cmake
+
+ \printuntil set(OPENGL_opengl_LIBRARY ${TARGET_ROOT_PATH}/libeglmegapack.a)
+
+ \section1 Creating EGL pack
+
+ For CMake find EGL module to properly detect EGL, repack the needed egl libraries into one archive called libeglmegapack:
+
+ \badcode
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/multimedia/graphics/libESXEGL_Adreno.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/multimedia/graphics/libadreno_utils.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/multimedia/graphics/libESXGLESv2_Adreno.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/multimedia/graphics/libadreno_utils.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/multimedia/graphics/libGSLUser.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/multimedia/graphics/libOSUser.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/multimedia/graphics/libpanel.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/integrity/libs/arm64/chk/libivfs.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/platform/libpmem.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/platform/libtzbsp.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/integrity/libs/arm64/chk/libpaged_alloc.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/AMSS/multimedia/graphics/opengl/esx/build/integrity/prebuilt/libglnext-llvm.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/multimedia/display/libopenwfd.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/base/libplanedef.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/platform/liblogger.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/base/librfs_client.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/integrity/libs/arm64/chk/libshm_client.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/base/libmmosalrfs.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/base/libmmosalfile.a
+ ar -x ../hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/libs/base/libOSAbstraction.a
+ ar r libeglmegapack.a *.o
+ rm *.o
+ \endcode
+
+ Copy the resulting \c libeglmegapack.a to your installation directory \c hlos_dev_boot.
+
+ \section1 Configuring Qt for INTEGRITY
+
+ Configure Qt for the Qualcomm Snapdragon 8155P board using these following commands:
+
+ \badcode
+ cd <Qt installation directory>
+ cmake ../qt5/ -DQT_HOST_PATH=/work/ghs/hostbuild/qtbase
+ -DCMAKE_TOOLCHAIN_FILE=/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/toolchain_integrity.cmake
+ -DQT_QMAKE_TARGET_MKSPEC=devices/integrity-armv8-SA8155P -DBUILD_qtdoc=OFF
+ -DBUILD_qttranslations=OFF -DFEATURE_printdialog=OFF --debug-trycompile -DFEATURE_dbus=OFF
+ -GNinja -DUNIX=ON
+ -DEGL_LIBRARY=/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/libeglmegapack.a
+ -DEGL_INCLUDE_DIR=/work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/AMSS/multimedia/graphics/include/public
+ -DFEATURE_dnslookup=OFF -DFEATURE_glib=OFF -DFEATURE_libudev=OFF -DFEATURE_system_pcre2=OFF -DFEATURE_sql_mysql=OFF
+ \endcode
+
+ \note INTEGRITY supports only static Qt builds.
+ \note \c QT_HOST_PATH variable introduced in Qt 6.
+ When cross-compiling, this must be set to the install location of Qt for the host platform.
+ It is used to locate tools to be run on the host (moc, rcc, androiddeployqt, and so on).
+
+ \section1 Building Qt for INTEGRITY
+
+ Build Qt by calling \c cmake in the terminal. You can run \c cmake with as
+ many cores on your host machine as you desire. In our example we use six cores:
+
+ \badcode
+ cmake --build . --parallel 6
+ \endcode
+
+ \target installing-qt-for-sa8155
+ \section1 Installing Qt
+
+ If you have not used the configure option \c {-prefix $PWD/qtbase} in \l {Configuring Qt},
+ run the following commands in a terminal:
+
+ \badcode
+ cd <Qt installation directory>
+ cmake --install .
+ \endcode
+
+ If you have used the configure option \c {-prefix $PWD/qtbase},
+ you can use Qt from the build directory, without running the
+ \c {cmake install} command.
+
+ Qt is now configured and built for the sa8155 board.
+//! [building qt for Qualcomm Snapdragon 8155P]
+*/
diff --git a/doc/src/platforms/integrity-flash-and-run.qdocinc b/doc/src/platforms/integrity-flash-and-run.qdocinc
new file mode 100644
index 000000000..775312354
--- /dev/null
+++ b/doc/src/platforms/integrity-flash-and-run.qdocinc
@@ -0,0 +1,140 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+//! [flash and run application]
+\section1 Qualcomm Snapdragon 8155P Board
+ There is Qualcomm Snapdragon 8155P Board top view.
+\image sa8155p
+
+\section1 Setup the wiring
+ There are several connectors are needed to be connected to the PC
+ for flashing and running applications on the board:
+
+ \list 1
+ \li Power connector
+ \li Micro USB is the FT serial console output
+ \li Normal (male male USB-A - USB A/USB C cable) USB is the QFIL/Fastboot port
+ \li DisplayPort cable is for Graphical output
+ \endlist
+ \image wiring1
+ \caption There is a wiring configuration example: power is ON,
+ normal male USB-A is connected for flashing images,
+ DisplayPort cable is conected for Graphical output.
+ \image wiring2
+ \caption Micro USB is connected for using the FT serial console.
+
+\section1 Switch to Fastboot Mode
+ To flash images on Qualcomm Snapdragon 8155P board install
+ Fastboot Tool on Host OS.
+ See, \l {https://developer.android.com/studio/releases/platform-tools} {Fastboot Tool}
+
+ Before flashing switch the board to the Fastboot Mode:
+ \list 1
+ \li Open serial connection with the board:
+ \badcode
+ putty /dev/ttyUSB0 -serial -sercfg 115200,8,1
+ \endcode
+ \li There are 2 options:
+
+ - On the device, hold the volume key and power cycle the device.
+
+ - Or press down arrow on the UART shell and power cycle the device.
+
+ \li If the board switches to Fastboot Mode successfully,
+ it prints following console output:
+ \image fastboot-mode
+
+ Another way to check the board is in Fastboot Mode is to run the command:
+ \badcode
+ fastboot devices
+ \endcode
+
+ \endlist
+
+\section1 Flash images
+ The build script produces set of images for board partitions.
+ \badcode
+ boot.img, perf_dyn.img, misc_dyn.img, abl.elf, etc
+ \endcode
+
+ After switching to Fastboot Mode images can be flashed to the board.
+
+ \list 1
+ \li When setting up for the first time, follow the images flashing procedure from GHS
+ \e ES7_FinalCopy/ES7_customer_package_readme.docx:
+
+ \badcode
+ cd /work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/bin/target
+ fastboot flash abl abl.elf
+ fastboot flash boot vmm-adp-gvm-sa8155/boot.img
+ fastboot flash perf_dyn_a vmm-adp-gvm-sa8155/perf_dyn.img
+ fastboot flash misc_dyn_a vmm-adp-gvm-sa8155/misc_dyn.img
+
+ cd /work/ghs/sa8155/es7/es7_dev_env/ES7_FinalCopy/Images/sa8155_hyp
+ fastboot flash hyp_a hyp.mbn
+ fastboot flash tz tz.mbn
+ fastboot flash apdp apdp.mbn
+
+ cd /work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/bin/target/fs
+ fastboot flash gh_sys sys.img
+ fastboot flash gh_persist ghs_persist.img
+ fastboot flash gh_test ghs_test.img.sparse
+
+ cd /work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/prebuilt_NHLOS/adsp/asic_8150
+ fastboot flash adsp adsp.img
+
+ cd /work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/lagvm/LINUX/android/out/target/product/msmnile_gvmgh
+ fastboot flash vendor vendor.img
+ \endcode
+ \note \e ES7_FinalCopy/ES7_customer_package_readme.docx is a part of QC [ES7] Customer package.
+ Contact \l {https://www.qualcomm.com/support} {Qualcomm Support} for more information.
+
+ \li If this is not the first time flashing, then the monolith part should be flashed:
+ \badcode
+ cd /work/ghs/sa8155/es7/es7_dev_env/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/chk/bin/target
+ fastboot flash boot vmm-adp-gvm-sa8155/boot.img
+ \endcode
+ \li Restart the board.
+ \endlist
+
+\section1 Run Qt application on the board
+ \list 1
+ \li Open serial console:
+ \badcode
+ putty /dev/ttyUSB0 -serial -sercfg 115200,8,1
+ \endcode
+ \li Execute the command:
+ \badcode
+ rt <application name> Initial
+ \endcode
+ \li Run Qt application example:
+ \image qml-application "QML application"
+ Qt application is running on Qualcomm Snapdragon 8155P Board and displayed on the connected screen.
+ \endlist
+//! [flash and run application]
+*/
diff --git a/doc/src/platforms/integrity.qdoc b/doc/src/platforms/integrity.qdoc
new file mode 100644
index 000000000..e08344850
--- /dev/null
+++ b/doc/src/platforms/integrity.qdoc
@@ -0,0 +1,88 @@
+/****************************************************************************
+**
+** Copyright (C) 2021 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** 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 Free Documentation License Usage
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file. Please review the following information to ensure
+** the GNU Free Documentation License version 1.3 requirements
+** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page integrity.html
+ \title Qt for INTEGRITY
+ \keyword INTEGRITY
+ \ingroup supportedplatform
+ \brief Platform support for INTEGRITY.
+
+ From Qt 5.9 onwards, the Green Hills Software
+ \l {http://www.ghs.com/products/rtos/integrity.html} {INTEGRITY}
+ Real-Time Operating System (RTOS) is a supported platform.
+
+ The INTEGRITY RTOS is widely used in systems where safety and security are critical.
+ Especially in the automotive industry, both Qt and the INTEGRITY RTOS can be
+ used in conjunction with the instrument clusters and infotainment systems.
+
+ With Qt for INTEGRITY you can build and develop applications for the
+ INTEGRITY RTOS. The development environment includes your target device and Qt sources
+ that you need to build for your target device.
+ See \l {Supported Development Hosts and Boards} for detailed information
+ about the supported development environment.
+
+ Qt for INTEGRITY has a tutorial that helps you learn how to:
+ \list
+ \li Set up a development environment for the Qualcomm Snapdragon 8155P board
+ \li Build an application
+ \li Prepare the Qualcomm Snapdragon 8155P board to run your application
+ \endlist
+
+ See \l {Monolith Project Tutorial}.
+
+ \section1 Supported Qt Modules
+
+ Qt for INTEGRITY has been tested to support the following Qt modules:
+ \list
+ \li Qt Core
+ \li Qt Network
+ \li Qt GUI
+ \li Qt Quick
+ \li Qt QML
+ \li Qt Image Formats
+ \li Qt Widgets
+ \li Qt SVG
+ \li Qt Remote Objects
+ \endlist
+
+ \note Other Qt modules may work with Qt for INTEGRITY, but we cannot guarantee that.
+
+ \section1 Supported Development Hosts and Boards
+
+ Qt for INTEGRITY can be built on the following hosts:
+ \list
+ \li 64-bit Linux distributions
+ \endlist
+
+ Qt 6 for INTEGRITY supports building and developing applications for the
+ following development board:
+ \list
+ \li \l {https://www.lantronix.com/products/sa8155p-automotive-development-platform}
+ {Qualcomm Snapdragon 8155P}
+ \endlist
+*/
diff --git a/doc/src/platforms/supported-platforms.qdocinc b/doc/src/platforms/supported-platforms.qdocinc
index dc8fa23a6..a89761527 100644
--- a/doc/src/platforms/supported-platforms.qdocinc
+++ b/doc/src/platforms/supported-platforms.qdocinc
@@ -121,6 +121,16 @@ cross-compilation of Qt for Embedded Linux devices.
For further embedded platform support, please consult the
\l{http://doc.qt.io/QtForDeviceCreation}{Qt for Device Creation} documentation.
+\section2 \l{Qt for Integrity}{RTOS}
+
+\table 80%
+ \header \li Operating System \li Architecture \li Compiler \li Notes
+ \row \li INTEGRITY 19.0.13
+ \li \c arm64
+ \li GHS compiler version 2020.1.4 or newer
+ \li
+\endtable
+
//! [embedded]
//! [all]