USB Boot for LS1046A

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

USB Boot for LS1046A

1,484 Views
smiller2
Contributor IV

I am trying to boot the LS1046A from a USB drive.   I can do it with fatload and bootm from the U-Boot prompt.  However, now I want it to boot without user intervention .    I ran flex-installer but the resultant USB drive would not boot,  it just stopped a U-Boot prompt claiming it could not find a boot device. 

Questions:

1.  How many partitions are supposed to be on the USB Drive?

2. What file formats are these partitions?

3.  What files are supposed to be in each partition?    (The second parition that it created seemed to have the entire file system uncompressed.)

4.  Am I supposed to start with a blank USB drive or a preformatted one?  

5.   Is there a recommended utility for prepping the drive or giving it a default format?

6.   Do I need to change any U-Boot parameters to make this work?

Thanks.

 

0 Kudos
Reply
2 Replies

1,458 Views
smiller2
Contributor IV

Thank you.   I got it to create the USB stick.  However, it does not boot from it yet.   I only had 8 gig USB Sticks.  We got tftp booting to work, so I pulled off on other jobs.  I want to return to get the USB stick working later, as I think it will be helpful for troubleshooting in the field. 

0 Kudos
Reply

1,477 Views
yipingwang
NXP TechSupport
NXP TechSupport

Please execute the following command to deploy images to USB device.

$ flex-installer -b bootpartition_LS_arm64_lts_5.4.tgz -r rootfs_lsdk2012_ubuntu_main_arm64.tgz -d /dev/sdx

Note: /dev/sdx is USB device name.

1. There are 4 partitions on the USB Drive.

2. ext4

3. Partition1 and 3 are empty, partition 2 contains bootpartition images(Image, dtb, bootscripts,etc), partition4 contains rootfs filesystem.

4. Please use a blank USB drive.

5. No need to format the USB drive.

6. You need to use u-boot from LSDK, it should contains the following environment variables.

=> pri bootcmd
bootcmd=run distro_bootcmd; run qspi_bootcmd; env exists secureboot && esbc_halt;;
=> pri distro_bootcmd
distro_bootcmd=scsi_need_init=; setenv nvme_need_init; for target in ${boot_targets}; do run bootcmd_${target}; done
=> pri bootcmd_usb0
bootcmd_usb0=devnum=0; run usb_boot
=> pri usb_boot
usb_boot=usb start; if usb dev ${devnum}; then devtype=usb; run scan_dev_for_boot_part; fi
=> pri scan_dev_for_boot_part
scan_dev_for_boot_part=part list ${devtype} ${devnum} devplist; env exists devplist || setenv devplist 1; for distro_bootpart in ${devplist}; do if fstype ${devtype} ${devnum}:${distro_bootpart} bootfstype; then run scan_dev_for_boot; fi; done
=> pri scan_dev_for_boot
scan_dev_for_boot=echo Scanning ${devtype} ${devnum}:${distro_bootpart}...; for prefix in ${boot_prefixes}; do run scan_dev_for_extlinux; run scan_dev_for_scripts; done;run scan_dev_for_efi;
=> pri scan_dev_for_scripts
scan_dev_for_scripts=for script in ${boot_scripts}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${script}; then echo Found U-Boot script ${prefix}${script}; run boot_a_script; echo SCRIPT FAILED: continuing...; fi; done
=> pri boot_a_script
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; env exists secureboot && load ${devtype} ${devnum}:${distro_bootpart} ${scripthdraddr} ${prefix}${boot_script_hdr}; env exists secureboot && esbc_validate ${scripthdraddr};source ${scriptaddr}