Posts by fs-support_PH


    I don't know how your logic works or how you have organized the exercises whith the threads.

    As far as I know (what Qt sais..) the GUI should only run in the main thread (the first started one) and should only be manipulated from this thread.

    Maybe that could be an issue in your case?

    Yes Signals and Slots should be independent but I'm not sure what the intention of Qt is within multithreading context.

    In a small project I did, I connected via signal from another thread to a slot in the main thread. This slot was then updating the GUI.

    In this case I had no problems.

    Best Regards


    How is the touch input behavor before calibration?
    In some cases xiniputcalibrator is not calculating correctly. I have mentioned that this is e.g. the case when the axes are swapped.
    As a quick solution try the following:
    If the axes are not behaving correctly add a line to your 99-calibration.conf to address this issue.
    The entry should be something like this: Option "SwapAxes" "1"
    Save the file. Until now we haven't used the xinputcalibrator tool.
    Reboot and see if swap axes /rotation issues are solved.
    Use the xinputcalibrator tool now to get a calibration.
    Because xinputcalibrator is not getting confused about swapped axes etc. it should calculate correctly.

    Your F&S Support Team

    The timeconst issue is one we had some time ago, as you can read here:
    Problem compiling Linux Kernel linux-3.0.35-fsimx6-V2.0

    The currently provided development machine is setup for the newer architectures imx6, imx6sx and imx6ul.
    The problem is that vybrid needs host software in older versions.
    So I assume it will run if a GCC version <5.0 is available on the system, newer ones may be removed.
    On the other hand setting up a 21 with toolchain installation might be faster and more save to get the result.

    Best Regards
    Your F&S Support Team

    You're welcome :)

    How to setup:
    This configuration is all done in the devicetree (arch/arm/boot/dts/armstonea9qdl.dtsi) in the node called &iomuxc and the subnodes there.
    Have a look there to understand how it works.

    To get UART4 you have to:
    - create a new &uart4 node. See how it is done with the other uart nodes.
    - create the &pinctrl_uart4_1 node with the 4 lines you have chosen above.

    If there are other pinmux configurations for the pads you want to use you have to disable/uncomment these functions. This means there can't be a pinmux setting e.G. that is called: MX6QDL_PAD_CSI0_DAT12__GPIO5_IO30
    Because we want to use the CSI0_DAT12 pad for the UART signal e.G. like this: MX6QDL_PAD_CSI0_DAT12__UART4_TX_DATA

    For the pinctrl node you need 4 lines. These are the possibilities for the pins:





    So you can decide if RX or TX should be on pin 19 or 20.
    And on which of the pins 23, 24 RTS or CTS should be.

    Best Regards
    Your F&S Support Team


    A non-standard solution would be possible.
    You could have an additional full UART with RTS/CTS on pins 19, 20, 23, 24 and a restricted one with only TXD/RXD on pins 21, 22. But this is currently not supported in our device tree. So in fact up to five different UARTs are possible on the regular armStoneA9.

    To clarify the non standard solutions for an additional UART are just possible using the pins described above. 19,29,23,24 for a full UART or 21,22 for just RX/TX.
    This is interesting if you want to have an additional UART besides or instead of the default UART interfaces

    But your desired (very specific) configuration getting an additional RTS/CTS signal exactly on pins 19/21 is not possible. Even if we look for an RTS/CTS signal of any UART.
    There is simply no multiplex option on the pads. The multiplex options for pin 19 are:
    ALT5 GPIO5_IO30

    and for pin 21
    ALT5 GPIO6_IO00

    Best Regards
    Your FS Support Team

    Why does it makes sense to downgrade U-Boot?

    F&S modules that are not customized are shipped only with U-Boot installed. This is done because most of our customers install their own kernel, root file system etc..
    But U-Boot versions differ too and can have an impact to your kernel.
    For example fsimx6v2.x release is a version that doesn't use devicetrees. With the newer kernel provided with version 3.0 this has changed. Now U-Boot provides an additional partition for the device tree and wants to use it when starting the kernel.
    If you are developing on a fsimx6v2.x release without devicetrees (and you want to stay with it) you have to downgrade the U-Boot bootloader to be compatible.
    So be aware that modules equipped with a new bootloader do not have to be compatible with your older version. In this case it is recommended to replace your U-Boot bootloader.

    How to downgrade U-Boot?

    F&S provides a script that downgrades your bootloader and restore your network address(es) afterwards. You can adjust it to your needs. The script runs in two iterations. First it exports the network address(es) and an additional variable in RAM and replaces the bootloader. Then it performs a reboot. In the second step the script checks if the additional variable is available. If so it knows that the first step has already been processed and won't repeat it. Now it sets the network adress(es) back as it had been before.
    You can add more variables that you want to keep save during the downgrade. The text file of the script needs to be compiled with the mkimage tool. The result is an image with a checksum. To compile tpye:

    1. mkimage -A arm -O u-boot -T script -C none -n "Update script" -d update.txt update.scr

    This is how the script looks like:

    Best Regards
    Your F&S Support Team

    The pins 16/17 are available on the connector. They can be used as GPIO etc. or as (bitbangig/SW)i2c too. This makes no difference as the i2c bitbangig driver uses these pins just as simple GPIOS.
    So in both cases there are no changes on the hardware it's just a software feature. This will be set in the device tree.
    For example on armstonea9 we are using a software i2c for the audio chip. The device tree nodes looks like this:

    i2c node:

    iomux controller:

    1. pinctrl_i2c5_gpio: i2c5_gpio_grp {
    2. fsl,pins = <
    3. MX6QDL_PAD_SD2_CMD__GPIO1_IO11 0x4001b0b0
    4. MX6QDL_PAD_SD2_CLK__GPIO1_IO10 0x4001b0b0
    5. >;
    6. };

    Best Regards
    Your F&S Support Team

    The Timings must be set in drivers/video/mvf_dcu.c. in static struct fb_videomode __devinitdata mvf_dcu_mode_db[]
    The .mode_str must be set in arch/arm/mach-mvf/mach-netdcua5.c in static struct mvf_dcu_platform_data mvf_dcu_pdata
    Why do you think the M will forward the driver to fbcvt.c?
    Have you tried a string without a character like @?


    That's maybe a bit confusing, the mode string is not the timing itself. It's just a name that refers to timing settings that are deposited in the kernel.
    Have a look at the file 'drivers/video/mvf_dcu.c'. There you find different display timings that can be referenced with a mode string. These settings are for a few default displays.
    But of course we cannot have every display here. So in the common case that your display differs from the existing settings you have to add your own timing settings according to the display datasheet or change an existing setting.
    Then you can refer to it with the mode string.
    In conclusion if you have not defined a timing setting with the name '800x480M-16@60' your mode string initialisation will have no impact.

    Best Regards
    Your F&S Support Team

    For a bitwise copy in linux use the 'dd' tool.
    If you have established serial connection e.g. with one of the applications mentioned above and pressed 'd' for download simply one command is needed to get the stuff done.
    For example let's get a file uboot.nb0 that's located in your home folder to your board and let's assume your terminal is on /dev/ttyS1 type:

    1. sudo dd if=~/uboot.nb0 of=/dev/ttyS1

    Now you should see the download progress.

    Best Regards
    Your F&S Support Team

    We've tested a PCI-Serial Card on ArmstoneA9.
    This node was available in arch/arm/boot/dts/armstonea9qdl.dtsi

    1. &pcie {
    2. pinctrl-names = "default";
    3. pinctrl-0 = <&pinctrl_pcie>;
    4. disable-gpio = <&gpio5 15 GPIO_ACTIVE_LOW>;
    5. power-on-gpio = <&gpio6 16 GPIO_ACTIVE_LOW>;
    6. reset-gpio = <&gpio5 17 GPIO_ACTIVE_LOW>;
    7. status = "okay";
    8. };

    and of course the pincontrol settings:

    1. pinctrl_pcie: pciegrp {
    2. fsl,pins = <
    3. /* PCIe-DIS */
    4. MX6QDL_PAD_DISP0_DAT21__GPIO5_IO15 0x1b0b0
    5. /* PCIe-RST */
    6. MX6QDL_PAD_DISP0_DAT23__GPIO5_IO17 0x1b0b0
    7. /* PCIe-WAKE */
    8. MX6QDL_PAD_NANDF_CS3__GPIO6_IO16 0x1b0b0
    9. >;
    10. };

    In make menuconfig I mainly activated PCI infrastructure, which resulted in this config:

    lspci found the card and showed desired entries:

    1. # lspci
    2. 00:00.0 PCI bridge: Synopsys, Inc. Device abcd (rev 01)
    3. 01:00.0 Serial controller: Exar Corp. Device 0352 (rev 03)
    4. #

    Best Regards,
    Your F&S Support Team


    The migration to Kconfig in U-Boot is done in two steps.
    First the Makefilestructure has changed. It is now (will say in current F&S U-Boot) more efficient than before. Here the Makefiles know the dependencies, the Build-Process is considerably shorter.
    But the second step, the movement to a complete KConfig system with defconfigs etc. will be implemented with U-Boot 2014.10.

    Best Regards
    Your F&S Support Team


    PCI Express is used very rarely in the embedded field. Most interfaces are directly available by the SOC.
    For which field of application do you need it?
    We gonna test PCI Express interface - Linux 4.1 combination and give a feedback.

    Best Regards
    Your F&S Support Team

    You can add strace easily to your rootfilesystem.

    (If you haven't ran a config before type 'make fsimx6ul_std_defconfig' first)

    Type 'make menuconfig' in your buildroot source folder strace is located here:
    'Target packages -> Debugging, profiling and benchmark –> strace'
    Then type 'make' to rebuild.

    On the system call strace as you have described above.

    Best Regards,
    Your F&S Support Team


    Using Fedora 23 is no problem. Fedora 21 is just our recommendation (as we are using it right now) and in Fedora 24+ the (host-)compiler is in a version that's too new. But 23 is fine too.
    Of course you can also use other distributions like Mint, Ubuntu etc. but in our documentation we had to choose one Distri to explane and so this is Fedora now.
    In propably all distributions you'll have to install additional packages. What you need for Fedora is explained in our documentation.

    Have you tried other exmples too, as questioned in a post before? What is the behavior?

    Best Regards
    Your F&S Support Team

    Have you tried other examples as well?
    There are lots of examples that comes with the QT Example Package. Of course we couldn't test every example, so it might be that some are not working but others do.
    For example I checked some widget examples in /usr/lib/qt/examples/ that worked fine:

    - widgets/animation/animatedtiled
    - widgets/painting/composition
    - widgets/painting/deform
    - widgets/painting/pathstroke

    Are they working in your configuration or is the result the same?

    Best Regards
    Your F&S Support Team.