Linux BSP customization for DEV-Qseven-i.MX

Aus BECOM Systems Support
Version vom 22. August 2023, 20:35 Uhr von en>Peter (1 Version importiert)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

This document describes various specifics of the DEV-Qseven-i.MX development board (100-1510-X) as far as the Bluetechnix i.MX53 Linux Board Support Package is concerned.

Quick start

Here is how to start with your Qseven-i.MX537 module and your development board DEV-Qseven-i.MX.

  • Insert the Qseven module into the development board.
  • Set the S3 DIP switches on the development board to {{#if: 0 | | }}{{#if: 0 | | }}{{#if: 0 | | }}{{#if: 1 | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: 0 | {{#ifeq: 0 | 1 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 1 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 1 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 1 | {{#ifeq: 1 | 1 | | {{#ifeq: 1 | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 1 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 1 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 1 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 1 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 1 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 1 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 0 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 0 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 0 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 1 | {{#ifeq: 1 | 0 | | {{#ifeq: 1 | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 0 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 0 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 0 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 0 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 0 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 0 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: 0 | | }}{{#if: 0 | | }}{{#if: 0 | | }}{{#if: 1 | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}
    1234567890
  • Connect 12V DC to power connector X16.
  • Hold down S2 (PON) for 1 second.
  • Press button S4 shortly.
  • Connect a monitor via HDMI (X3) and/or a USB cable to the Debug UART port (X10) to see the board's boot messages.

Boot modes

The DEV-Qseven-i.MX carrier board allows to configure the module's boot mode via a DIP switch (S3).

  • S3-1: Qseven BIOS_DISABLE#/BOOT_ALT# pin
  • S3-2: Qseven MFG_NC3 pin: JTAG_TMS (S3-4 OFF) or additional boot mode pin (S3-4 ON)
  • S3-3: JTAG reference voltage selection; fixed to OFF for Qseven-i.MX537
  • S3-4: Qseven MFG_NC4=JTAG_TRST pin: Multiplex JTAG signals (OFF) or Debug UART signals (ON) onto MFG_NC[0..4] pins

SPI NOR flash

{{#if: Qseven-i.MX537 ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}
Qseven-i.MX537   ≥V1.1
{{{3}}}   {{{4}}}
{{{5}}}   {{{6}}}
{{{7}}}   {{{8}}}
{{{9}}}   {{{10}}}
{{{11}}}   {{{12}}}
{{{13}}}   {{{14}}}
{{{15}}}   {{{16}}}
{{{17}}}   {{{18}}}
{{{19}}}   {{{20}}}
| }}{{#if: 0 | | }}{{#if: 0 | | }}{{#if: X | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: 0 | {{#ifeq: 0 | 1 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 1 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 1 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: X | {{#ifeq: X | 1 | | {{#ifeq: X | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 1 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 1 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 1 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 1 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 1 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 1 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 0 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 0 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 0 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: X | {{#ifeq: X | 0 | | {{#ifeq: X | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 0 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 0 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 0 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 0 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 0 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 0 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: 0 | | }}{{#if: 0 | | }}{{#if: 0 | | }}{{#if: X | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}
S3
1234567890

If S3-4 is switched ON, press button S4 shortly after power-on to continue boot.

SD (Secure Digital) card

The boot device is the SD card on the DEV-Qseven-i.MX, not the one on the Qseven-i.MX537.

{{#if: Qseven-i.MX537 ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}
Qseven-i.MX537   ≥V1.2
{{{3}}}   {{{4}}}
{{{5}}}   {{{6}}}
{{{7}}}   {{{8}}}
{{{9}}}   {{{10}}}
{{{11}}}   {{{12}}}
{{{13}}}   {{{14}}}
{{{15}}}   {{{16}}}
{{{17}}}   {{{18}}}
{{{19}}}   {{{20}}}
| }}{{#if: 0 | | }}{{#if: 0 | | }}{{#if: X | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: 1 | {{#ifeq: 1 | 1 | | {{#ifeq: 1 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 1 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 1 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: X | {{#ifeq: X | 1 | | {{#ifeq: X | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 1 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 1 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 1 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 1 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 1 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 1 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: 1 | {{#ifeq: 1 | 0 | | {{#ifeq: 1 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 0 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 0 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: X | {{#ifeq: X | 0 | | {{#ifeq: X | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 0 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 0 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 0 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 0 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 0 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 0 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: 1 | | }}{{#if: 0 | | }}{{#if: 0 | | }}{{#if: X | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}
S3
1234567890

If S3-4 is switched ON, press button S4 shortly after power-on to continue boot.

USB

{{#if: Qseven-i.MX537 ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}{{#if: ||}}
Qseven-i.MX537   ≥V1.1
{{{3}}}   {{{4}}}
{{{5}}}   {{{6}}}
{{{7}}}   {{{8}}}
{{{9}}}   {{{10}}}
{{{11}}}   {{{12}}}
{{{13}}}   {{{14}}}
{{{15}}}   {{{16}}}
{{{17}}}   {{{18}}}
{{{19}}}   {{{20}}}

Boot from USB-OTG (X11).

NOTE: The mfgtool requires this boot mode to be set.

| }}{{#if: 1 | | }}{{#if: 0 | | }}{{#if: 1 | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: X | {{#ifeq: X | 1 | | {{#ifeq: X | X | | }} }} | }}{{#if: 1 | {{#ifeq: 1 | 1 | | {{#ifeq: 1 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 1 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 1 | {{#ifeq: 1 | 1 | | {{#ifeq: 1 | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 1 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 1 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 1 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 1 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 1 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 1 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: X | {{#ifeq: X | 0 | | {{#ifeq: X | X | | }} }} | }}{{#if: 1 | {{#ifeq: 1 | 0 | | {{#ifeq: 1 | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 0 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: 1 | {{#ifeq: 1 | 0 | | {{#ifeq: 1 | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 0 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 0 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 0 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 0 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 0 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 0 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: X | | }}{{#if: 1 | | }}{{#if: 0 | | }}{{#if: 1 | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}
S3
1234567890

Press button S4 shortly after power-on to continue boot.

Power-On/Reset

  • Press button S2 for 500ms to power up the module. (If S3-4 is ON, press button S4 shortly after power-on to continue boot.)
  • Press button S2 for min. 1s to induce a Linux shutdown on the module.
  • Press button S1 to reset the module.

Debug UART

The debug UART (UART1 of i.MX53) is multiplexed with the JTAG signal lines onto the MFG_NC[0..4] pins of the Qseven module. Switch S3 allows for selection of those signals.

| }}{{#if: X | | }}{{#if: X | | }}{{#if: 0 | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: X | {{#ifeq: X | 1 | | {{#ifeq: X | X | | }} }} | }}{{#if: X | {{#ifeq: X | 1 | | {{#ifeq: X | X | | }} }} | }}{{#if: X | {{#ifeq: X | 1 | | {{#ifeq: X | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 1 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 1 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 1 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 1 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 1 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 1 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 1 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: X | {{#ifeq: X | 0 | | {{#ifeq: X | X | | }} }} | }}{{#if: X | {{#ifeq: X | 0 | | {{#ifeq: X | X | | }} }} | }}{{#if: X | {{#ifeq: X | 0 | | {{#ifeq: X | X | | }} }} | }}{{#if: 0 | {{#ifeq: 0 | 0 | | {{#ifeq: 0 | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 0 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 0 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 0 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 0 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 0 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 0 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: X | | }}{{#if: X | | }}{{#if: X | | }}{{#if: 0 | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}
JTAG signals connected S3
1234567890

Debug UART connected S3 | }}{{#if: X | | }}{{#if: X | | }}{{#if: 1 | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: | | }}{{#if: X | {{#ifeq: X | 1 | | {{#ifeq: X | X | | }} }} | }}{{#if: X | {{#ifeq: X | 1 | | {{#ifeq: X | X | | }} }} | }}{{#if: X | {{#ifeq: X | 1 | | {{#ifeq: X | X | | }} }} | }}{{#if: 1 | {{#ifeq: 1 | 1 | | {{#ifeq: 1 | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 1 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 1 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 1 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 1 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 1 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 1 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: X | {{#ifeq: X | 0 | | {{#ifeq: X | X | | }} }} | }}{{#if: X | {{#ifeq: X | 0 | | {{#ifeq: X | X | | }} }} | }}{{#if: X | {{#ifeq: X | 0 | | {{#ifeq: X | X | | }} }} | }}{{#if: 1 | {{#ifeq: 1 | 0 | | {{#ifeq: 1 | X | | }} }} | }}{{#if: | {{#ifeq: {{{5}}} | 0 | | {{#ifeq: {{{5}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{6}}} | 0 | | {{#ifeq: {{{6}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{7}}} | 0 | | {{#ifeq: {{{7}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{8}}} | 0 | | {{#ifeq: {{{8}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{9}}} | 0 | | {{#ifeq: {{{9}}} | X | | }} }} | }}{{#if: | {{#ifeq: {{{10}}} | 0 | | {{#ifeq: {{{10}}} | X | | }} }} | }}{{#if: X | 1 | }}{{#if: X | 2 | }}{{#if: X | 3 | }}{{#if: 1 | 4 | }}{{#if: | 5 | }}{{#if: | 6 | }}{{#if: | 7 | }}{{#if: | 8 | }}{{#if: | 9 | }}{{#if: | 0 | }}

IMPORTANT!
If you select Debug UART mode, you have to press button S4 each time you power on or reboot the Qseven module.
(This is because the multiplex line is the JTAG_TRST line which halts the processor initially if it is low.)

JTAG connector

IMPORTANT!
If your JTAG device/connector shortens pins #1 and #2 of the 20-pin JTAG-ARM connector (X15), you must not connect this device to DEV-Qseven-i.MX.

CAN bus termination

Termination can be enabled by setting jumper JP1 to position 2-3.

Mini-PCI-Express connector

Available interfaces on this connector, which are usable with the i.MX53, are

  • USB
  • I2C

There are a lot of modules on the market that share the same connector, but do not share the same pin assignment. Nevertheless, many of those modules can be inserted into the DEV-Qseven-i.MX, but be sure to check and compare the pin assignment before.

I/O Expander

The DEV-Qseven-i.MX features 2 16-bit I/O expander chips. These are registered in Linux as GPIOs number #224 to #255.


To handle these GPIOs in Linux userspace, we use the popular sysfs-gpio driver. See the following examples or rpm/BUILD/linux/Documentation/gpio.txt for more information.

  • Set GPIO no. 228 as output with value low
echo 228 > /sys/class/gpio/export
echo low > /sys/class/gpio/gpio228/direction
  • Set GPIO no. 228 as output with value high
echo 228 > /sys/class/gpio/export
echo high > /sys/class/gpio/gpio228/direction
  • Set GPIO no. 228 as input and read its value
echo 228 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio228/direction
cat /sys/class/gpio/gpio228/value


Here is the table of important GPIOs and their function.

GPIO no. Direction Function
224 in RTC interrupt
234 in Mini PCI-E WAKE# pin
236 out Mini PCI-E PERST# pin
237 out Mini PCI-E W_DISABLE# pin

Linux kernel configuration

There is a Linux kernel parameter for the DEV-Qseven-i.MX base board which enables some specific features at boot time. Add this to your bootargs_base variable in U-Boot.

  • Boot U-Boot
  • Press any key to stop Linux kernel boot, you will get to U-Boot's prompt.
  • Add the Linux kernel parameter:
Qseven-i.MX537 U-Boot> setenv bootargs_base $(bootargs_base) devq7imx

If you want to make this change permanent (usually you will) also do:

Qseven-i.MX537 U-Boot> saveenv

This will write the environment to permanent storage.