How to boot Linux kernel from tftp and filesystem from SDcard?

setenv bootargs_video video=displayfb:LCD@LQ070Y3DG3B video2=displayfb:disabledldb=single,di=0,ch0_map=SPWG fbprimary=video

setenv bootargs_flpart mtdparts=onboard_boot:0x100000(U-Boot),0x80000@0x100000(NVRAM),0x300000@0x180000(Kernel),0xc800000@0x480000(RootFS),0x13380000@0xcc80000(UserFS)

setenv bootargs_base'setenv bootargs ${bootargs} console=ttymxc0,115200 ${bootargs_video}${bootargs_flpart}'

setenv bootargs_mmc'setenv bootargs ${bootargs} root=/dev/mmcblk0p1 ip=dhcp rootfstype=ext3'

setenv bootcmd_tftp_mmc 'run bootargs_base bootargs_mmc;tftpboot ${loadaddr}${kimg};bootm'

setenv bootcmd 'runbootcmd_tftp_mmc'

saveenv

boot

We separate the different information that u-boot needs to pass to the kernel in different u-boot variables:

bootargs_video All the video variables.

bootargs_flpart The flash partition table.

bootargs_base The above two plus the console.

bootargs_mmc The above plus what’s needed to mount the rootfs from the first partition of the SD card (check =/dev/mmcblk0 is theSD card. Depending on the platform it could be the uSD card).

Then we load the kernel image from tftp into memory with:

tftpboot ${loadaddr}${kimg}

And we boot with bootm.

Last updated: Jan 01, 2024

Filed Under

Network

Recently Viewed

No recently viewed articles

Did you find this article helpful?