Daniel, hello. You can look to my message: https://groups.google.com/d/msg/beagleboard/zvzjtzLGOcc/3oOIx2ecCQAJ I'm using factory bbb, but my goal was Qt5 + QtQuick2. And I solve this problem. May be you can extract some useful information from my work. Good luck.
вторник, 11 октября 2016 г., 16:36:20 UTC+5 пользователь Daniel Gorsulowski написал: > > Hello! > Im working on custom Hardware, related to Beaglebone black. The main part > is equal to this board, so I hope you can help me. > The major hardware difference is, there is a LVDS transmitter in place of > the HDMI transmitter. > The major software difference is: I'm using an old ELDK 5.3 toolchain and > RootFS - details follow. > > My problem is: > I build the kernel and the SGX modules, everything seems fine, including > the installation on target. But executing tests, i.e. pvr2d_test, > sgx_init_test, sgx_*_test causes segmentation faults. > (And I dont't know if this correlates with my other issue: Qt5 EGLFS apps > show nothing but a black screen without error messages) > > My steps are: > I'm following > http://elinux.org/BeagleBoardDebian#SGX_BeagleBone.2FBeagleBone_Black > git clone https://github.com/RobertCNelson/bb-kernel.git > cd bb-kernel > git checkout origin/am33x-v4.1 -b bb300 > git am ../0001-add-bb300-board-support.patch > ./build_kernel.sh > ./sgx_build_modules.sh > > sudo tar xf deploy/GFX_5.01.01.02_es8.x.tar.gz -C /tftpboot/bb300/linux/ > rootfs/ > sed -i -e 's\distro=$(lsb_release -si)\distro=Ubuntu\' > /tftpboot/bb300/linux/rootfs/opt/gfxinstall/sgx-install.sh > sudo tar xf deploy/4.1.3324-modules.tar.gz -C > /tftpboot/bb300/linux/rootfs/ --exclude=lib/modules/4.1.3324/kernel/crypto > --exclude=lib/modules/4.1.3324/kernel/drivers/bluetooth > --exclude=lib/modules/4.1.3324/kernel/net/bluetooth > > > 0001-add-bb300-board-support.patch: > diff --git a/.gitignore b/.gitignore > index c16aff6..7cfbbe2 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -1,6 +1,6 @@ > .CC > recipe.sh > -system.sh > +#system.sh > KERNEL > dl > deploy > @@ -12,3 +12,4 @@ patches/previous_defconfig > patches/bisect_defconfig > patches/HEAD_omap2plus_defconfig > patches/MOD_omap2plus_defconfig > +patches/ref_bb300_defconfig > diff --git a/build_kernel.sh b/build_kernel.sh > index 10a58b1..0fd4cb8 100755 > --- a/build_kernel.sh > +++ b/build_kernel.sh > @@ -71,10 +71,10 @@ make_kernel () { > > unset address > > - ##uImage, if you really really want a uImage, zreladdr needs to be > defined on the build line going forward... > - ##make sure to install your distro's version of mkimage > - #image="uImage" > - #address="LOADADDR=${ZRELADDR}" > + #uImage, if you really really want a uImage, zreladdr needs to be > defined on the build line going forward... > + #make sure to install your distro's version of mkimage > + image="uImage" > + address="LOADADDR=${ZRELADDR}" > > cd "${DIR}/KERNEL" || exit > echo "-----------------------------" > diff --git a/patch.sh b/patch.sh > index 4e9a8b5..7634dd4 100644 > --- a/patch.sh > +++ b/patch.sh > @@ -612,6 +612,23 @@ sgx () { > fi > } > > +bb300 () { > + echo "dir: bb300" > + #regenerate="enable" > + if [ "x${regenerate}" = "xenable" ] ; then > + start_cleanup > + fi > + > + ${git} > "${DIR}/patches/bb300/0001-reset-is_reset-and-clear_reset-api-s.patch" > + ${git} "${DIR}/patches/bb300/0003-arm-add-bb300-board-support.patch" > + > + if [ "x${regenerate}" = "xenable" ] ; then > + number=2 > + cleanup > + fi > +} > + > ### > reverts > backports > @@ -622,6 +639,7 @@ bbb_overlays > beaglebone > quieter > sgx > +bb300 > > packaging () { > echo "dir: packaging" > diff --git a/patches/defconfig b/patches/defconfig > index 4688ec4..a96e82b 100644 > --- a/patches/defconfig > +++ b/patches/defconfig > @@ -1,17 +1,13 @@ > # > # Automatically generated file; DO NOT EDIT. > -# Linux/arm 4.1.22 Kernel Configuration > +# Linux/arm 4.1.33 Kernel Configuration > # > CONFIG_ARM=y > CONFIG_ARM_HAS_SG_CHAIN=y > ... > >>> cut, let me know if you need it <<< > ... > diff --git a/patches/bb300/0001-reset-is_reset-and-clear_reset-api-s.patch > b/patches/bb300/0001-reset-is_reset-and-clear_reset-api-s.patch > new file mode 100644 > index 0000000..9fd5977 > --- /dev/null > +++ b/patches/bb300/0001-reset-is_reset-and-clear_reset-api-s.patch > @@ -0,0 +1,94 @@ > +From c2fcba10eac12885dbe50c8fd5ce5d0653e92cf3 Mon Sep 17 00:00:00 2001 > +From: Daniel G <[email protected]> > +Date: Fri, 7 Oct 2016 09:10:33 +0200 > +Subject: [PATCH 1/3] reset: is_reset and clear_reset api's > + > +Enhance reset framework with "is_reset" and "clear_reset" api's. > +is_reset - used by client driver to know reset status > +clear_reset - used by client driver to clear reset status > + > +These functionalities may sometimes be achieved by using existing api > +like deassert. But in some scenarios, steps to achieve reset requires > +clearing reset, deassert reset, enabling clock to module and then > +checking reset status. Here enabling clock module is coming in between > +reset procedure, hence enhance framework with additional api's. > + > +Signed-off-by: Afzal Mohammed <[email protected] <javascript:>> > +--- > + drivers/reset/core.c | 32 ++++++++++++++++++++++++++++++++ > + include/linux/reset-controller.h | 2 ++ > + include/linux/reset.h | 2 ++ > + 3 files changed, 36 insertions(+) > + > +diff --git a/drivers/reset/core.c b/drivers/reset/core.c > +index 7955e00..e72c530 100644 > +--- a/drivers/reset/core.c > ++++ b/drivers/reset/core.c > +@@ -126,6 +126,38 @@ int reset_control_deassert(struct reset_control > *rstc) > + EXPORT_SYMBOL_GPL(reset_control_deassert); > + > + /** > ++ * reset_control_is_reset - check reset status > ++ * @rstc: reset controller > ++ * > ++ * Returns a boolean or negative error code > ++ * > ++ */ > ++int reset_control_is_reset(struct reset_control *rstc) > ++{ > ++ if (rstc->rcdev->ops->is_reset) > ++ return rstc->rcdev->ops->is_reset(rstc->rcdev, rstc->id); > ++ > ++ return -ENOSYS; > ++} > ++EXPORT_SYMBOL_GPL(reset_control_is_reset); > ++ > ++/** > ++ * reset_control_clear_reset - clear the reset > ++ * @rstc: reset controller > ++ * > ++ * Returns zero on success or negative error code > ++ * > ++ */ > ++int reset_control_clear_reset(struct reset_control *rstc) > ++{ > ++ if (rstc->rcdev->ops->clear_reset) > ++ return rstc->rcdev->ops->clear_reset(rstc->rcdev, rstc->id); > ++ > ++ return -ENOSYS; > ++} > ++EXPORT_SYMBOL_GPL(reset_control_clear_reset); > ++ > ++/** > + * reset_control_status - returns a negative errno if not supported, a > + * positive value if the reset line is asserted, or zero if the reset > + * line is not asserted. > +diff --git a/include/linux/reset-controller.h > b/include/linux/reset-controller.h > +index ce6b962..a10b855 100644 > +--- a/include/linux/reset-controller.h > ++++ b/include/linux/reset-controller.h > +@@ -18,6 +18,8 @@ struct reset_control_ops { > + int (*reset)(struct reset_controller_dev *rcdev, unsigned long id); > + int (*assert)(struct reset_controller_dev *rcdev, unsigned long id); > + int (*deassert)(struct reset_controller_dev *rcdev, unsigned long > id); > ++ int (*is_reset)(struct reset_controller_dev *rcdev, unsigned long > id); > ++ int (*clear_reset)(struct reset_controller_dev *rcdev, unsigned long > i); > + int (*status)(struct reset_controller_dev *rcdev, unsigned long id); > + }; > + > +diff --git a/include/linux/reset.h b/include/linux/reset.h > +index da5602b..f6c8bea 100644 > +--- a/include/linux/reset.h > ++++ b/include/linux/reset.h > +@@ -10,6 +10,8 @@ struct reset_control; > + int reset_control_reset(struct reset_control *rstc); > + int reset_control_assert(struct reset_control *rstc); > + int reset_control_deassert(struct reset_control *rstc); > ++int reset_control_is_reset(struct reset_control *rstc); > ++int reset_control_clear_reset(struct reset_control *rstc); > + int reset_control_status(struct reset_control *rstc); > + > + struct reset_control *reset_control_get(struct device *dev, const char > *id); > +-- > +2.10.1 > + > diff --git a/patches/bb300/0003-arm-add-bb300-board-support.patch > b/patches/bb300/0003-arm-add-bb300-board-support.patch > new file mode 100644 > index 0000000..8549f15 > --- /dev/null > +++ b/patches/bb300/0003-arm-add-bb300-board-support.patch > @@ -0,0 +1,7176 @@ > +From 37a2a4b149ddf7b2ec651c064a685230a913a867 Mon Sep 17 00:00:00 2001 > +From: Daniel G <[email protected] <javascript:>> > +Date: Mon, 10 Oct 2016 11:46:30 +0200 > +Subject: [PATCH 3/3] arm: add bb300 board support > + > +Signed-off-by: Daniel G <[email protected] <javascript:>> > +--- > + arch/arm/boot/dts/Makefile | 3 +- > + arch/arm/boot/dts/bb300.dts | 787 +++++++++ > + arch/arm/configs/bb300_defconfig | 3180 > +++++++++++++++++++++++++++++++++++ > + 4 files changed, 7127 insertions(+), 1 deletion(-) > + create mode 100644 arch/arm/boot/dts/bb300.dts > + create mode 100644 arch/arm/configs/bb300_defconfig > + > +diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile > +index dad450c..69960a7 100644 > +--- a/arch/arm/boot/dts/Makefile > ++++ b/arch/arm/boot/dts/Makefile > +@@ -435,7 +435,8 @@ dtb-$(CONFIG_SOC_AM33XX) += \ > + am335x-nano.dtb \ > + am335x-pepper.dtb \ > + am335x-lxm.dtb \ > +- am335x-chiliboard.dtb > ++ am335x-chiliboard.dtb \ > ++ bb300.dtb > + dtb-$(CONFIG_ARCH_OMAP4) += \ > + omap4-duovero-parlor.dtb \ > + omap4-panda.dtb \ > +diff --git a/arch/arm/boot/dts/bb300.dts b/arch/arm/boot/dts/bb300.dts > +new file mode 100644 > +index 0000000..3de4d74 > +--- /dev/null > ++++ b/arch/arm/boot/dts/bb300.dts > +@@ -0,0 +1,787 @@ > ++/* > ++ * Copyright (C) 2016 esd GmbH - http://www.esd.eu > ++ * Copyright (C) 2012 Texas Instruments Incorporated - > http://www.ti.com/ > ++ * > ++ * This program is free software; you can redistribute it and/or modify > ++ * it under the terms of the GNU General Public License version 2 as > ++ * published by the Free Software Foundation. > ++ */ > ++ > ++/* > ++ * BB300 device-tree > ++ * for kernel 4.4 > ++ */ > ++ > ++/dts-v1/; > ++ > ++#include "am33xx.dtsi" > ++ > ++/ { > ++ model = "esd BB300"; > ++ compatible = "esd,bb300", "ti,am33xx"; > ... > >>> cut, let me know if you need it <<< > ... > +diff --git a/arch/arm/configs/bb300_defconfig > b/arch/arm/configs/bb300_defconfig > +new file mode 100644 > +index 0000000..a96e82b > +--- /dev/null > ++++ b/arch/arm/configs/bb300_defconfig > +@@ -0,0 +1,3180 @@ > ++# > ++# Automatically generated file; DO NOT EDIT. > ++# Linux/arm 4.1.33 Kernel Configuration > ++# > ... > >>> cut, let me know if you need it <<< > ... > diff --git a/system.sh b/system.sh > new file mode 100644 > index 0000000..c88364b > --- /dev/null > +++ b/system.sh > @@ -0,0 +1,46 @@ > +#!/bin/sh > +#copy as "system.sh" and tweak for your system > + > +ARCH=$(uname -m) > + > +#ARM Native gcc compiler (running gcc on arm target) > +if [ "x${ARCH}" = "xarmv7l" ] ; then > + #Native arm gcc compiler > + CC= > +fi > + > +###REQUIRED: > + > +#ARM GCC CROSS Compiler: > +#if CC is not set, a known working linaro based gcc compiler will be > downloaded and utilized. > +#CC=<enter full path>/bin/arm-none-eabi- > +#CC=<enter full path>/bin/arm-linux-gnueabi- > +#CC=<enter full path>/bin/arm-linux-gnueabihf- > > +CC=/opt/eldk_530/armv7a/sysroots/i686-eldk-linux/usr/bin/armv7a-vfp-neon-linux-gnueabi/arm-linux-gnueabi- > + > +ZRELADDR=0x80008000 > + > +###OPTIONAL: > + > +###OPTIONAL: LINUX_GIT: specify location of locally cloned git tree. > +# > +#LINUX_GIT=/home/user/linux-stable/ > + > +###OPTIONAL: MMC: (REQUIRED FOR RUNNING: tools/install_kernel.sh) > +#Note: This operates on raw disks, NOT PARTITIONS.. > +# > +#WRONG: MMC=/dev/mmcblk0p1 > +#CORRECT: MMC=/dev/mmcblk0 > +# > +#WRONG: MMC=/dev/sde1 > +#CORRECT: MMC=/dev/sde > +# > +#MMC=/dev/sde > + > +###ADVANCED: RUN_BISECT: used with ./scripts/bisect.sh > +# > +#RUN_BISECT=1 > + > +###ADVANCED: AUTO_BUILD: Easier integration with Jenkins/Buildbot/etc.. > +# > +AUTO_BUILD=1 > diff --git a/version.sh b/version.sh > index 6d015d7..ad1e02d 100644 > --- a/version.sh > +++ b/version.sh > @@ -2,10 +2,13 @@ > # > ARCH=$(uname -m) > > -config="omap2plus_defconfig" > +#config="omap2plus_defconfig" > +config="bb300_defconfig" > > -build_prefix="-bone" > -branch_prefix="am33x-v" > +#build_prefix="-bone" > +#branch_prefix="am33x-v" > +build_prefix="" > +branch_prefix="" > branch_postfix="" > > #arm > @@ -16,7 +19,7 @@ KERNEL_ARCH=arm > #toolchain="gcc_linaro_gnueabi_4_6" > #toolchain="gcc_linaro_gnueabihf_4_7" > #toolchain="gcc_linaro_gnueabihf_4_8" > -toolchain="gcc_linaro_gnueabihf_4_9" > +#toolchain="gcc_linaro_gnueabihf_4_9" > #toolchain="gcc_linaro_gnueabihf_5" > #arm64 > #KERNEL_ARCH=arm64 > -- > 2.10.1 > > > On target I execute: > cd /opt/gfxinstall > ./sgx-install.sh > > > After rebooting, the gfx_check.sh output is: > WSEGL settings > [default] > WindowSystem=libpvrPVR2D_FRONTWSEGL.so > #WindowSystem=libpvrPVR2D_FLIPWSEGL.so > > ------ > ARM CPU information > processor : 0 > model name : ARMv7 Processor rev 2 (v7l) > BogoMIPS : 548.86 > Features : half thumb fastmult vfp edsp thumbee neon vfpv3 tls > vfpd32 > CPU implementer : 0x41 > CPU architecture: 7 > CPU variant : 0x3 > CPU part : 0xc08 > CPU revision : 2 > > Hardware : Generic AM33XX (Flattened Device Tree) > Revision : 0000 > Serial : 0000000000000000 > ------ > SGX driver information > Version SGX_DDK_Linux_CustomerTI sgxddk 1.10@2359475 (release) /data/home/ > danielg/opt/prj/svn/holzher/hh300/trunk/qt/qt5/OpenGL/bb-kernel/ignore/ti- > sdk-pvr/Graphics_SDK/GFX_Linux_KM > System Version String: SGX revision = 125 > ------ > Framebuffer settings > ------ > Rotation settings > 0 > ------ > Kernel Module information > Module Size Used by > omaplfb 11378 1 > pvrsrvkm 174115 5 omaplfb > ------ > Boot settings > ip=10.0.18.160:10.0.0.190:10.0.0.79:255.255.0.0:bb3xx-GA000011::off panic= > 1 root=/dev/nfs rw nfsroot=10.0.0.190:/tftpboot/hh300/linux/rootfs console > =ttyO0,115200 quiet video=1024x768@60 bd_type=ppc315 > ------ > Linux Kernel version > Linux bb3xx 4.1.3324 #1 SMP Mon Oct 10 12:58:52 CEST 2016 armv7l GNU/Linux > > > stracing sgx_init_test gives: > root@bb3xx:~# strace sgx_init_test > execve("/usr/local/bin/sgx_init_test", ["sgx_init_test"], [/* 27 vars */]) > = 0 > brk(0) = 0x17c6000 > uname({sys="Linux", node="bb3xx", ...}) = 0 > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) > = 0xb6fbe000 > ... > >>> cut, let me know if you need it <<< > ... > open("/lib/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3 > read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\200Q\231K4\0\0\0" > ..., 512) = 512 > fstat64(3, {st_mode=S_IFREG|0644, st_size=1488554, ...}) = 0 > mmap2(0x4b988000, 153752, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, > 3, 0) = 0x4b988000 > mprotect(0x4b9a6000, 28672, PROT_NONE) = 0 > mmap2(0x4b9ad000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED| > MAP_DENYWRITE, 3, 0x1d) = 0x4b9ad000 > close(3) = 0 > mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) > = 0xb6f58000 > set_tls(0xb6f58800, 0xb6f58ed8, 0x4b837058, 0xb6f58800, 0x4b837058) = 0 > mprotect(0x4b97d000, 8192, PROT_READ) = 0 > mprotect(0x4b9cb000, 4096, PROT_READ) = 0 > mprotect(0x4b9e5000, 4096, PROT_READ) = 0 > mprotect(0x4b849000, 4096, PROT_READ) = 0 > mprotect(0xb6f80000, 4096, PROT_READ) = 0 > mprotect(0xb6fb1000, 8192, PROT_READ) = 0 > mprotect(0x12000, 4096, PROT_READ) = 0 > mprotect(0x4b836000, 4096, PROT_READ) = 0 > munmap(0xb6fb4000, 38807) = 0 > set_tid_address(0xb6f583a8) = 1483 > set_robust_list(0xb6f583b0, 12) = 0 > futex(0xbef97558, FUTEX_WAKE_PRIVATE, 1) = 0 > futex(0xbef97558, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, > 4b9cc000) = -1 EAGAIN (Resource temporarily unavailable) > rt_sigaction(SIGRTMIN, {0x4b9b539c, [], SA_SIGINFO|0x4000000}, NULL, 8) = > 0 > rt_sigaction(SIGRT_1, {0x4b9b5240, [], SA_RESTART|SA_SIGINFO|0x4000000}, > NULL, 8) = 0 > rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 > getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 > --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} --- > +++ killed by SIGSEGV +++ > Segmentation fault > > > > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beagleboard/ac41bde0-c7b5-48a2-8ffe-765b5eecb6ef%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
