...
Set up the Boot switch on the
IMXRT1170-EVK
board forSDP
: setSW1
as0001
and re-enable the power supply.On the development host run the
Secure Provisioning Tool
. In the New Workspace window, select the MIMXRT1176 processor and click Create:Run the
Flash Programmer
tool: click Tools->Flash Programmer menu or press Ctrl+R. Answer Yes in the pooped up window:Click the Load button, select the
imxrt1170_demo.img
from the file system and confirm Load:Make sure the Auto erase and Auto verify check-buttons are set and the click the Write button:
Wait until the write operation is completed:
When the writing is completed, close the
MCUXpresso Secure Provisioning Tool
. Then set up boot jumpers on the target board to boot from QSPI Flash: setSW1
as0010
, SW2 as0000000000
.Use your preferable serial communication tool to connect to the target serial console (we use
picocom
in this demo):Code Block $ picocom -l -b 115200 /dev/ttyACM0 picocom v3.1 port is : /dev/ttyACM0 flowcontrol : none baudrate is : 115200 parity is : none databits are : 8 stopbits are : 1 escape is : C-a local echo is : no noinit is : no noreset is : no hangup is : no nolock is : yes send_cmd is : sz -vv receive_cmd is : rz -vv -E imap is : omap is : emap is : crcrlf,delbs, logfile is : none initstring : none exit_after is : not set exit is : no Type [C-a] [C-h] to see available commands Terminal ready
Power cycle the board. U-Boot and then Linux should start automatically on the serial console:
Code Block U-Boot SPL 2023.04 (Mar 1424 2025 - 1511:5407:3241 +0000) Trying to boot from NOR U-Boot 2023.04 (Mar 1424 2025 - 1511:5407:3241 +0000) Model: NXP imxrt1170-evk board DRAM: 960 KiB (effective 64.9 MiB) Core: 72 devices, 15 uclasses, devicetree: separate MMC: FSL_SDHC: 0 Loading Environment from nowhere... OK In: serial@4007c000 Out: serial@4007c000 Err: serial@4007c000 Net: eth0: ethernet@40424000 Hit any key to stop autoboot: 0 ## Booting kernel from Legacy Image at 30080000 ... Image Name: Linux-6.1.22 Image Type: ARM Linux Multi-File Image (uncompressed) Data Size: 8315694 Bytes = 7.9 MiB Load Address: 80008000 Entry Point: 80008001 Contents: Image 0: 8301696 Bytes = 7.9 MiB Image 1: 13986 Bytes = 13.7 KiB Verifying Checksum ... OK ## Flattened Device Tree from multi component Image at 30080000 Booting using the fdt at 0x3086accc Working FDT set to 3086accc Loading Multi-File Image Loading Device Tree to 2032900083982000, end 2032f6a1839886a1 ... OK Working FDT set to 2032900083982000 Starting kernel ... Booting Linux on physical CPU 0x0 Linux version 6.1.22 (vskvortsov@workbench.emcraft.com) (arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824 (release), GNU ld (GNU Arm Embedded Toolchain 10.3-2021.10) 2.36.1.20210621) #2 PREEMPT FriMon Mar 1424 1511:2920:4709 UTC 2025 CPU: ARMv7-M [411fc272] revision 2 (ARMv7M), cr=00000000 CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache OF: fdt: Machine model: NXP IMXRT1170 EVK board earlycon: lpuart32_imxrt0 at MMIO32 0x4007c000 (options '') printk: bootconsole [lpuart32_imxrt0] enabled Reserved memory: created DMA memory pool at 0x83b00000, size 1 MiB OF: reserved mem: initialized node dmapool@83b00000, compatible id shared-dma-pool Zone ranges: Normal [mem 0x0000000080000000-0x0000000083ffffff] Movable zone start for each node Early memory node ranges node 0: [mem 0x0000000080000000-0x0000000083afffff] node 0: [mem 0x0000000083b00000-0x0000000083ffffff] Initmem setup node 0 [mem 0x0000000080000000-0x0000000083ffffff] Built 1 zonelists, mobility grouping on. Total pages: 16256 Kernel command line: earlycon=lpuart32_imxrt,0x4007c000 Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear) mem auto-init: stack:off, heap alloc:off, heap free:off Memory: 51572K51556K/65536K available (3663K kernel code, 195K rwdata, 960K rodata, 3072K init, 93K bss, 13964K13980K reserved, 0K cma-reserved) rcu: Preemptible hierarchical RCU implementation. rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies. NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 rcu: srcu_init: Setting srcu_struct sizes based on contention. Switching to timer-based delay loop, resolution 41ns sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns clocksource: mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=24000) pid_max: default: 4096 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear) rcu: Hierarchical SRCU implementation. rcu: Max phase no-delay instances is 400. devtmpfs: initialized DMA: default coherent area is set clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns futex hash table entries: 16 (order: -5, 192 bytes, linear) pinctrl core: initialized pinctrl subsystem NET: Registered PF_NETLINK/PF_ROUTE protocol family imxrt1170-pinctrl 400e8000.iomuxc: initialized IMX pinctrl driver imxrt1170-pinctrl 40c08000.iomuxc_lpsr: initialized IMX pinctrl driver imxrt1170-pinctrl 40c94000.iomuxc_snvs: initialized IMX pinctrl driver mxs_phy 40434000.usbphy1: supply phy-3p0 not found, using dummy regulator mxs_phy 40438000.usbphy2: supply phy-3p0 not found, using dummy regulator SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb imx-lpi2c 40c34000.lpci2c: use pio mode i2c i2c-0: LPI2C adapter registered pps_core: LinuxPPS API ver. 1 registered pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> PTP clock support registered Bluetooth: Core ver 2.22 NET: Registered PF_BLUETOOTH protocol family Bluetooth: HCI device and connection manager initialized Bluetooth: HCI socket layer initialized Bluetooth: L2CAP socket layer initialized Bluetooth: SCO socket layer initialized clocksource: Switched to clocksource mxc_timer1 NET: Registered PF_INET protocol family IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear) tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear) Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear) TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear) TCP: Hash tables configured (established 1024 bind 1024) UDP hash table entries: 256 (order: 0, 4096 bytes, linear) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear) NET: Registered PF_UNIX/PF_LOCAL protocol family RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. Bus freq driver module loaded Initialise system trusted keyrings workingset: timestamp_bits=30 max_order=14 bucket_order=0 fuse: init (API version 7.37) Key type asymmetric registered Asymmetric key parser 'x509' registered Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250) io scheduler mq-deadline registered io scheduler kyber registered OF: graph: no port node found in /soc/mipi_dsi@4080c000 mipi_dsi_northwest 4080c000.mipi_dsi: i.MX MIPI DSI driver probed mxsfb 40804000.lcdif: Defer fb probe due to dispdrv not ready 4007c000.serial: ttyLP0 at MMIO 0x4007c010 (irq = 467, base_baud = 1500000) is a FSL_LPUART fsl-lpuart 4007c000.serial: Serial: Console lpuart rounded baud ratefrom 187500 to 115200 printk: console [ttyLP0] enabled printk: console [ttyLP0] enabled printk: bootconsole [lpuart32_imxrt0] disabled printk: bootconsole [lpuart32_imxrt0] disabled PPP generic driver version 2.4.2 PPP BSD Compression module registered PPP Deflate Compression module registered usbcore: registered new interface driver rt2800usb usbcore: registered new interface driver cdc_acm cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters usbcore: registered new interface driver uas usbcore: registered new interface driver usb-storage Goodix-TS 0-0014: supply AVDD28 not found, using dummy regulator Goodix-TS 0-0014: ID 911, version: 1060 input: Goodix Capacitive TouchScreen as /devices/platform/soc/40c34000.lpci2c/i2c-0/0-0014/input/input0 i2c_dev: i2c /dev entries driver usbcore: registered new interface driver btusb sdhci: Secure Digital Host Controller Interface driver sdhci: Copyright(c) Pierre Ossman sdhci-pltfm: SDHCI platform and OF driver helper mmc0 bounce up to 128 segments into one, max segment size 65536 bytes usbcore: registered new interface driver usbhid usbhid: USB HID core driver NET: Registered PF_PACKET protocol family Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM ver 1.11 ARMv7-M VFP coprocessor found VFP: Double precision floating points are supported Loading compiled-in X.509 certificates mmc0: SDHCI controller on 40418000.usdhc [40418000.usdhc] using DMA mipi_dsi_northwest 4080c000.mipi_dsi: MIPI DSI dispdv inited mxsfb 40804000.lcdif: registered mxc display driver mipi_dsi_northwest mmc0: host does not support reading read-only switch, assuming write-enable mmc0: new high speed SDHC card at address 0001 mmcblk0: mmc0:0001 EB1QT 29.8 GiB mmcblk0: p1 mxsfb 40804000.lcdif: initialized input: gpio-keys as /devices/platform/gpio-keys/input/input2 cfg80211: Loading compiled-in X.509 certificates for regulatory database cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 cfg80211: failed to load regulatory.db Freeing unused kernel image (initmem) memory: 3072K This architecture does not have kernel memory protection. Run /init as init process [79] Jan 01 00:00:0102 Running in background / # random: crng init done
...