Boot using U-Boot
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:
- 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.
- In your console, set the boot delay time on the board:
setenv bootdelay 10 - 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;" - Save the environment variables and then reset the board:
saveenv reset - 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.
