Boot using U-Boot

QNX Board Support Packages8.0BSP User's GuideNXP S32G399 RDB3NXPNXPARM

After you transfer the image to an microSD card, you can use it to boot your board. But first, you must configure U-Boot to boot QNX OS; this is done by defining a few environment variables. After you reset the board, it should boot QNX OS.

Configure U-Boot to boot QNX OS

After you insert your microSD card, U-Boot displays prompts in serial connection. Perform the following steps to configure the board to boot QNX OS:

  1. Insert the microSD card into your board (J3 slot marked SD Card) and then power up the board. U-Boot should start and then display a prompt.
  2. In your console, set the boot delay time on the board:
    setenv bootdelay 10
  3. For S32G-VNP-RDB3, U-Boot from NXP SW32G3 Linux BSP38.0.0 version can be used. Set the commands to boot QNX OS in the boot_qnx environment variable as follows:
    setenv boot_qnx "mmc dev 0;fatload mmc 0:1 0x83000000 s32g399a-rdb3.dtb;
                        setenv ethact eth_eqos gatewayip;
                        fatload mmc 0:1 0x8007ffc0 ifs-s32g399a-rdb3.ui;
                        bootm 0x8007ffc0 - 0x83000000;"
                      
  4. Save the environment variables and then reset the board:
    saveenv
    reset
  5. Load and boot the board with the QNX OS.
    run boot_qnx

Boot the board using U-Boot

With U-Boot configured to boot QNX OS, after the board resets, you should see something like the following in your console connection to the board S32G-VNP-RDB3:

  NOTICE:  Reset status: Power-On Reset
  NOTICE:  BL2: v2.5(release):bsp38.0_rc9-2.5
  NOTICE:  BL2: Built : 17:13:42, Sep 15 2023
  NOTICE:  BL2: Booting BL31


  U-Boot 2020.04+g57741dd80e (Sep 15 2023 - 15:06:56 +0000)

  SoC:   NXP S32G399A rev. 1.1
  CPU:   ARM Cortex-A53 r0p4 @ max 1300 MHz
  Model: NXP S32G399A-RDB3
  DRAM:  3.5 GiB
  MMC:   FSL_SDHC: 0
  Loading Environment from MMC... OK
  Configuring PCIe0 as RootComplex
  PCIe0: Failed to get link up
  PCI: Failed autoconfig bar 20
  In:    serial@401c8000
  Out:   serial@401c8000
  Err:   serial@401c8000
  Board revision: RDB3 Revision F
  Net:   EQOS phy: rgmii @ 1

  Warning: eth_eqos (eth0) using random MAC address - 8a:7d:b4:13:03:b6
  eth0: eth_eqosFailed to get speed of XPCS for emac1_xpcs PFE: emac0: sgmii emac1: sgmii emac2: rgmii
  PFEng firmware file 'mmc@0:1:s32g_pfe_class.fw' loading failed: -2

  Hit any key to stop autoboot:  0 
  => run boot_qnx
  switch to partitions #0, OK
  mmc0 is current device
  54165 bytes read in 19 ms (2.7 MiB/s)
  14124820 bytes read in 624 ms (21.6 MiB/s)
  ## Booting kernel from Legacy Image at 8007ffc0 ...
     Image Name:   
     Image Type:   AArch64 Linux Kernel Image (uncompressed)
     Data Size:    14124756 Bytes = 13.5 MiB
     Load Address: 80080000
     Entry Point:  80080000
     Verifying Checksum ... OK
  ## Flattened Device Tree blob at 83000000
     Booting using the fdt blob at 0x83000000
     XIP Kernel Image
     Using Device Tree in place at 0000000083000000, end 0000000083010394
     fixup: pfe0 set to 00:01:be:be:ef:11
     fixup: pfe1 set to 00:01:be:be:ef:22
     fixup: pfe1: update phy addr to 0x8
     fixup: pfe2 set to 00:01:be:be:ef:33

  Starting kernel ...

  fdt at 0x83000000 was already processed.
  syspage::hypinfo::flags=0x00000000
   
  Welcome to QNX 8.0.0 on NXP_S32G399A_VNP_RDB3 !
   
  Starting Watchdog driver...
  Starting I2C driver ...
  Starting SPI master driver ...
  Starting USDHC0 memory card driver...
  [Starting flash driver ...
  00]     SIM="SDMMC" HBA="imx"
  [00,0,0] type=00 ver=05 resp=00                       SDMMC:
   Starting USB host driver (/dev/usb/*)
  Starting devf-ram filesystem ...
  Starting networking ...
  Starting DHCP client ...
  Starting SSH daemon ...
  Starting devc-pty manager ...
  Starting qconn daemon ...
  Starting shell ...

QNX OS should now be running on your target. You can test it by executing any shell command, or any command residing within the OS image (ls, pidin, etc.). You can also type uname and it should return QNX.

Page updated: