Linux BSP customization for DEV-Qseven-i.MX

From BlueWiki

Jump to: navigation, search

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.


1 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
  • 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.

2 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

2.1 SPI NOR flash

Qseven-i.MX537   ≥V1.1

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

2.2 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.

Qseven-i.MX537   ≥V1.2

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

2.3 USB

Qseven-i.MX537   ≥V1.1

Boot from USB-OTG (X11).

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


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

3 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.

4 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.

JTAG signals connected S3
Debug UART connected S3
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.)

5 JTAG connector

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.

6 CAN bus termination

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

7 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.

8 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

9 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.

Personal tools