Getting Started with FRDM-IMX91 Development Board | NXP Semiconductors

Getting Started with FRDM-IMX91 Development Board

Last Modified: 2025-02-13 14:52:00Supports FRDM i.MX 91

Contents of this document

  • 1

    Out of the Box
  • 2

    Get Software
  • 3

    Build and Run
  • 4

    Developer Experience

1. Out of the Box

The following section describes the steps to boot the FRDM-IMX91.

Development kit contains:

  • FRDM-IMX91 board with on-board u-blox module MAYA-W476 with NXP’s Wi-Fi 6 Tri-radio IW610
  • Cable: Assembly, USB 2.0, Type-C male to Type-A male
  • Software: Linux BSP image Programmed in eMMC
  • Quick Start Guide

Get started developing your application on the FRDM-IMX91 with the out-of-the-box video. For more information please visit the i.MX 91 Applications Processor documentation.

Video Player is loading.
Current Time 0:00
Duration 0:00
Loaded: 0%
Stream Type LIVE
Remaining Time 0:00
 
1x
  • Chapters
  • descriptions off, selected
  • captions off, selected
  • en (Main), selected

    1.1 Get Familiar with the Board

    1.2 Boot from eMMC

    The FRDM-IMX91 comes with a pre-built NXP Linux binary demo image flashed on the eMMC. Without modifying the binary inside, booting from the eMMC provides a default system with certain features for building other applications on top of Linux.

    To understand more about NXP’s Embedded Linux®, continue reading the next sections.

    1.3 Connect USB Debug Cable

    Connect the supplied USB Type-C cable to the debug UART port P16, then connect the other end of the cable to a host computer.

    Two UART connections will appear on the host computer. The first port is for A55 core system debugging.

    If you are unfamiliar with terminal applications, please view one of the following tutorials before continuing to step 1.4: Minicom Tutorial, Tera Term Tutorial, PuTTY Tutorial.

    To debug under Linux, make sure CH342F Linux driver is installed.

    1.4 Boot Switch Setup

    SW1 [4-1] is the boot configuration switch. By default, the boot device is eMMC/uSDHC1.

    BOOT MODE SW1-4 SW1-3 SW1-2 SW1-1
    Serial Downloader 0 0 0 1
    USDHC1 8-bit eMMC 5.1 0 0 1 0
    USDHC2 4-bit SD3.0 0 0 1 1

    1.5 Connect LCD Panel (Optional)

    Plug the parallel LCD panel (TM050RDH03-41) into P11 2x20 Pin EXPI. Connect the power supply cable to the power connector (P1). Switch DTB to “imx91-11x11-frdm-tianma-wvga-panel.dtb” in u-boot phase.

    1.6 Board Boot Up

    Connect the power supply cable to the power connector (P1).

    The board has been set up to boot from eMMC by default. The processor starts executing the bootable image from eMMC. Information is printed in the serial console for the Arm® Cortex®-A55. As the board boots up, you will see 1 penguin appear in the upper left-hand corner of the LCD panel, and then you will see the Linux terminal Icon on the top left and timer on right top corner. Congratulations, you are up and running.

    1.7 Load Wi-Fi, Bluetooth and 802.15.4 Driver Modules

    To login into the Linux running on the FRDM-IMX91, use “root” as the default login username for the i.MX Linux OS. There is no password. Use below command to load Wi-Fi and Bluetooth modules in the kernel.

    1234root@imx91frdm:~# modprobe moal mod_para=nxp/wifi_mod_para.conf
    root@imx91frdm:~# ifconfig mlan0 up
    root@imx91frdm:~# modprobe btnxpuart
    root@imx91frdm:~# hciconfig hci0 reset

    For more information on please visit : FRDM-IMX91 Connectivity training - NXP Community

    2. Get Software

    The i.MX Linux board support package (BSP) is a collection of binary files, source code and support files that are used to boot an Embedded Linux image on a specific i.MX development platform.

    Current releases of Linux binary demo files can be found on Linux download page. Additional documentation is available in the i.MX Linux documentation bundle under the Linux sections of the i.MX Software and Development Tools.

    2.1 Overview

    FRDM-IMX91 support booting from eMMC and SD card.

    This Getting Started guide only outlines a few methods of flashing the Linux BSP image to an SD card. Experienced Linux developers can explore other options if desired.

    2.2 Download an NXP Linux BSP Pre-Built Image

    The latest pre-built images for the FRDM-IMX91 are available on the FRDM i.MX 91 Development Board.

    The pre-built NXP Linux binary demo image provides a typical system and basic set of features for using and evaluating the processor. Without modifying the system, the users can evaluate hardware interfaces, test SoC features and run user space applications.

    2.3 Burn NXP Linux BSP Image Using Universal Update Utility (UUU)

    In addition to the connections from "Out of the Box" section, connect the USB1 to the host machine using the proper USB cable.

    Turn off the board. Refer to the "1.5 Boot Switch Setup" section and configure the board to boot on serial download protocol (SDP) mode.

    Depending on the OS used in the host machine, the way to transfer the Linux BSP image onto an SD card can vary. Choose an option below for detailed instructions:

    3. Build and Run

    In the section, a brief guide of how to build Yocto BSP image for FRDM-IMX91 is introduced, along with how to add Matter support and how to build Debian release image

    3.1 FRDM-IMX91 Yocto BSP

    The FRDM-IMX91 BSP release is based on i.MX SW 2024 Q3 release with Yocto Project 5.0 (Scarthgap). To build FRDM-IMX91 image from source code, please first check i.MX Yocto Project User's Guide to get familiar with Yocto project and Yocto build. Then please follow below steps to build image for FRDM-IMX91.

    1. Download i.MX SW 2024 Q3 BSP Release:
    2. 12$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.36-2.1.0.xml 
      $ repo sync 
    3. Integrate meta-imx-frdm layer into Yocto code base:
      12$ cd ${MY_YOCTO}/sources
      $ git clone https://github.com/nxp-imx-support/meta-imx-frdm.git
    4. Yocto Project Setup:
      12$ cd ${MY_YOCTO}
      $ MACHINE=imx91frdm DISTRO=fsl-imx-xwayland source sources/meta-imx-frdm/tools/imx-frdm-setup.sh -b frdm-imx91
    5. Build images:
      1$ bitbake imx-image-full
    6. Flashing SD card image:
      1$ zstdcat imx-image-full-imx91frdm.rootfs.wic.zst | sudo dd of=/dev/sdx bs=1M && sync

      Or using uuu to burn image into SD card:

      1$ uuu -b sd_all imx-image-full-imx91frdm.rootfs.wic.zst
    7. Change boot switch SW1[1:4] to "1100" to select SD card boot, insert the SD card and power up the FRDM-IMX91 board.

    3.2 FRDM-IMX91 Matter Support

    FRDM-IMX91 has support for Matter. To include Matter support, please follow below steps to include Matter layer into Yocto build.

    1. Download i.MX SW 2024 Q3 BSP Release:
    2. 12$ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.36-2.1.0.xml
      $ repo sync 
    3. Download i.MX Matter Yocto layer:
      123$ cd ${MY_YOCTO}/sources/meta-nxp-connectivity
      $ git remote update
      $ git checkout imx_matter_2024_q3
    4. Integrate meta-imx-frdm layer into Yocto code base:
      12$ cd ${MY_YOCTO}/sources
      $ git clone https://github.com/nxp-imx-support/meta-imx-frdm.git
    5. Yocto Project Setup:
      12$ cd ${MY_YOCTO}
      $ MACHINE=imx91frdm-iwxxx-matter DISTRO=fsl-imx-xwayland source sources/meta-imx-frdm/tools/imx-frdm-matter-setup.sh bld-xwayland-imx91
    6. Build images:
    7. 1$ bitbake imx-image-multimedia

    3.3 FRDM-IMX91 Debian

    FRDM-IMX91 has support for Debian 12 OS. i.MX Debian Linux SDK distribution is a combination of NXP-provided kernel and boot loaders with a Debian distro user-space image, which includes:

    • Debian-based rootfs
      1. Debian Base (basic packages)
      2. Debian Server (more packages without GUI Desktop)
      3. Debian Desktop (with GNOME GUI Desktop)
    • Linux kernel
    • BSP components
    • various applications (graphics, multimedia, networking, connectivity, security, and AI/ML)

    For more details of NXP Debian Linux SDK Distribution, please check NXP Debian Linux SDK Distribution for i.MX and Layerscape

    Quick Start with Debian

    To create an SD card with Debian for FRDM-IMX91, please follow below steps.

    1. Download flex-installer on the Linux host
    2. 123$ wget http://www.nxp.com/lgfiles/sdk/lsdk2412/flex-installer
      $ chmod +x flex-installer
      $ sudo mv flex-installer /usr/bin
    3. Plug the SD card into the Linux host and install the images as below
    4. 1234# format SD card
      $ flex-installer -i pf -d /dev/sdb
      # automatically download and install images into SD card
      $ flex-installer -i auto -d /dev/mmcblk1 -m imx91frdm
    5. Plug the SD card into the FRDM-IMX91 board and install the extra packages as below
      1. setup Ethernet network interface by DHCP or setting it manually
      2. 1$ dhclient -i end0
      3. Set correct system time, for example
      4. 1$ date -s "22 Nov 2024 09:00:00"
      5. Install extra packages for GNOME GUI Desktop version
      6. 1$ debian-post-install-pkg desktop
      7. Or install extra packages for Server version without GUI Desktop
      8. 1$ debian-post-install-pkg server
      9. After finishing the installation, run the reboot command to boot up the Debian Desktop/Server system

    Building Debian Images with Flexbuild

    To build Debian image with Flexbuild for FRDM-IMX91, please follow below steps.

    1. Set up the build environment
      12345$ git clone https://github.com/nxp/flexbuild
      $ cd flexbuild && source setup.env
      #Continue to run commands below in case you need to build in Docker due to lack of Ubuntu 22.04 or Debian 12 host
      $ bld docker
      $ source setup.env
    2. Build image with Flexbuild
      1$ bld -m imx91frdm
    3. Flexbuild usage:

      To build individual part of the image, please check below command list for Flexbuild usage

      123456789$ bld uboot -m imx91frdm (compile u-boot image for imx91frdm)
      $ bld linux (compile linux kernel for all arm64 i.MX machines)
      $ bld bsp -m imx91frdm (generate BSP firmware)
      $ bld boot (generate boot partition tarball including kernel, dtb, modules, distro bootscript for iMX machines)
      $ bld multimedia (build multimedia components for i.MX platforms)
      $ bld rfs -r debian:server (generate Debian server rootfs)
      $ bld apps -r debian:server (compile apps against runtime dependencies of Debian server RootFS)
      $ bld merge-apps -r debian:server (merge iMX-specific apps into target Debian server RootFS)
      $ bld packrfs -r debian:server (pack and compress target debian server rootfs)

    4. Developer Experience

    To enable faster development for users of all skill levels, NXP provides extensive example applications to showcase various features and capabilities of the platform.

    4.1 Application Code Hub

    The Application Code Hub (ACH) repository enables engineers to easily find microcontroller and processor software examples, code snippets, application software packs and demos developed by NXP in-house experts. This space provides a quick, easy and consistent way to find microcontroller and processor applications.

    ACH provides filter and search options to quickly find specific applications. With the support of Git capabilities, there is an easy way to import and use applications within user’s development environments.

    To learn more details of Application Code Hub (ACH), please visit this link.

    4.2 GoPoint for i.MX Applications Processors

    The GoPoint for i.MX Application Processors is a user-friendly application launches pre-built applications packed with the Linux BSP, giving users an excellent out-of-the-box experience and hands-on experience with i.MX SoC's capabilities. GoPoint highlights advanced features while providing practical solutions for implementation, with source code and build recipes for the applications provided in GitHub.

    To learn more details of GoPoint, please visit this link .