...
If you do not specify a load address, then the value will be taken from the loadaddr
environment variable. On the NXP i.MX RT1050 EVK RT10XX EVKB board, loadaddr is set as follows, placing the download buffer into the on-module SDRAM:
...
Let's use netboot
to boot Linux via TFTP from the sample Linux image (rootfs.uImage
) included in the Emcraft software distribution. Copy rootfs.uImage
to the appropriate (tftpdir
) TFTP directory on the host and then from U-Boot on the target set the image environment variable to point to the image:
Code Block |
---|
=> setenv image imxrt1050/rootfs.uImage => saveenv Saving Environment to MMC... Writing to MMC(0)... OK => run netboot Using ethernet@402D8000ethernet@402d8000 device TFTP from server 192.168.1.96; our IP address is 192.168.1.86 Filename 'imxrt1050/rootfs.uImage'. Load address: 0x80007fc0 ... ######################################################### 109.4 KiB/s done Bytes transferred = 82774628661287 (7e4dd6842927 hex) ## Booting kernel from Legacy Image at 80007fc0 ... Image Name: Linux-56.156.7136 Image Type: ARM Linux Multi-File Image (uncompressed) Data Size: 82773988661223 Bytes = 78.93 MiB Load Address: 80008000 Entry Point: 80008001 Contents: Image 0: 82698568649380 Bytes = 78.92 MiB Image 1: 753011831 Bytes = 711.46 KiB Verifying Checksum ... OK ## Flattened Device Tree from multi component Image at 80007FC0 Booting using the fdt at 0x807eb02c0x80847ab0 Working FDT set to 80847ab0 Loading Multi-File Image to 80008000 Loading Device Tree to 81e8100081dfa000, end 81e85d6981dffe36 ... OK Working FDT set to 81dfa000 Starting kernel ... Booting Linux on physical CPU 0x0 Linux version 5.15.71 (sasha@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 Mon Sep 25 08:03:11 UTC 2023 CPU: ARMv7-M [411fc271] revision 1 (ARMv7M), cr=00000000 CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache OF: fdt: Machine model: NXP IMXRT1050-evk board ... This architecture does not have kernel memory protection. Run /init as init process [7151] Jan 01 0004:0019:0158 Running in background / # mmc0: new high speed SDHC card at address 0007 mmcblk0: mmc0:0007 SD8GB 7.42 GiB mmcblk0: p1 Micrel KSZ8081 or KSZ8091 402d8000.ethernet-1:02: attached PHY driver (mii_bus:phy_addr=402d8000.ethernet-1:02, irq=POLL) fec 402d8000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off random: crng init done / # ps PID USER VSZ STAT COMMAND 1 root 872876 S init 2 root 0 SW [kthreadd] 3 root 0 SW [pool_workqueue_] 4 root 0 IW< [kworker/0:0H-kbR-rcu_g] 5 root 0 IWIW< [kworker/u2:0-evR-rcu_p] 6 root 0 IW< [mm_percpu_wqkworker/R-slub_] 7 root 0 SW IW< [ksoftirqdkworker/0R-netns] 8 root 0 SWIW [kdevtmpfskworker/0:0-eve] 9 root 0 IW< [inet_frag_wqkworker/0:0H-ev] 10 root 0 IW<IW [writebackkworker/0:1-dev] 3411 root 0 IW IW< [kblockdkworker/u2:0-ev] 3512 root 0 IWIW< [kworker/0:1-pmR-mm_pe] 3613 root 0 IW<SW [rpciodksoftirqd/0] 3714 root 0 IW IW< [kworker/u3:0rcu_preempt] 3815 root 0 SW IW< [xprtiodkdevtmpfs] 3916 root 0 IW< [cfg80211kworker/R-inet_] 4017 root 0 SWIW [kswapd0kworker/u2:1-ev] 4118 root 0 IW IW< [kworker/R-write] 19 root 0 IW< [kworker/u2:1R-evkbloc] 4220 root 0 IW< [nfsiodkworker/0:1H-kb] 4621 root 0 IW< [uaskworker/R-rpcio] 4722 root 0 SW<IW< [krfcommdkworker/R-xprti] 4823 root 0 IW< [sdhcikworker/R-cfg80] 4924 root 0 SW [irq/37-mmc0kswapd0] 5125 root 0 IW< [ci_otgkworker/R-nfsio] 5227 root 0 IW< [ci_power_lostkworker/R-uas] 5428 root 0 IW< [ci_power_lostkworker/u3:0] 5629 root 0 IWIW< [kworker/0:3R-evesdhci] 7130 root 728 S 0 SW dropbear -R[irq/190-mmc0] 7331 root 884 S 0 SW< -/bin/hush[krfcommd] 8032 root 0 IW< [mmc_completekworker/R-mmc_c] 33 root 0 IW [kworker/u2:2] 8234 root 0 IW< [kworker/0:1HR-evft5x0] 9635 root 0 IW [kworker/0:2-pm] 36 root 0-eve] 97 IW< [kworker/R-ci_ot] 51 root 728 S dropbear -R 53 root 888 S -/bin/hush 74 root 880884 R ps / # |
Here are some troubleshooting tips, in case tftpboot
does not work for you from U-Boot:
...