Sitara AM335x-evm, zImage not starting - linux-kernel

I have problem with starting kernel. I compiled my kernel with am335x-evm_defconfing. Before compilation I added initramfs, and I shown my own rootfs. When the compilations was end, I transfered my zImage to NFS folder. I restarted NFS demon, and turned on Sitara. In main menu u-Boot I executed this command.
setenv bootfile zImage
setenv fdtfile am335x.dtb
setenv serverip <serverip>
dhcp
After this command a whole image was transfered.
tftp ${fdtaddr} ${fdtfile};
bootz ${loadaddr} - ${fdtaddr};
After this command I saw this console lines
#### Flattened Device Tree blob at 80f80000
Booting using the fdt blob at 0x80f80000
Loading Device Tree to 8f321000, end 8f32c4e6 ... OK
Starting kernel ...
And in this stage process was hang. Any suggestion about it.? Maybe I do something wrong.
For append I paste my variables from u-Boot environment.
arch=arm
baudrate=115200
board=am335x
board_name=FLogicSi
board_rev=B.01
boot_fdt=try
boot_targets= mmc0 nand
bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
bootcmd_mmc0=setenv devnum 0; setenv rootpart 2; run mmc_boot;
bootcmd_nand=run nandboot;
bootcmd_usb=setenv devnum 0; run usb_boot;
bootdelay=3
bootdir=/boot
bootenv=uEnv.txt
bootfile=kernelDM
bootpart=0:2
console=ttyO0,115200n8
cpu=armv7
dfu_alt_info_emmc=rawemmc mmc 0 3751936
dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw mmc 100 100;u-boot.img.raw mmc 300 400;spl-os-args.raw mmc 80 80;spl-os-image.raw mmc 900 2000;spl-o1
dfu_alt_info_nand=NAND.SPL part 0 1;NAND.SPL.backup1 part 0 2;NAND.SPL.backup2 part 0 3;NAND.SPL.backup3 part 0 4;NAND.u-boot-spl-os part 0 5;NAND.u-boot part 0 6;NAND0
dfu_alt_info_ram=kernel ram 0x80200000 0xD80000;fdt ram 0x80F80000 0x80000;ramdisk ram 0x81000000 0x4000000
dnsip=10.0.0.1
eth1addr=d0:ff:50:b3:58:2e
ethact=cpsw
ethaddr=d0:ff:50:b3:58:2c
fdt_high=0xa0000000
fdtaddr=0x80F80000
fdtfile=am335x-flsi-usb.dtb
fileaddr=80f80000
filesize=84e7
findfdt=if test $board_name = A335BONE; then setenv fdtfile am335x-bone.dtb; fi; if test $board_name = A335BNLT; then setenv fdtfile am335x-boneblack.dtb; fi; if test
gatewayip=10.0.0.1
importbootenv=echo Importing environment from mmc ...; env import -t $loadaddr $filesize
ipaddr=10.0.0.32
loadaddr=0x80200000
loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}
loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz
mmc_boot=setenv devtype mmc; if mmc dev ${devnum}; then run mmcargs;run scan_boot; run mmcboot;setenv mmcdev 1; setenv bootpart 1:2; run mmcboot;fi
mmcargs=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=${mmcrootfstype}
mmcboot=mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootenv; then echo Loaded environment from ${bootenv};run importbootenv;
mmcdev=0
mmcloados=run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; t;
mmcroot=/dev/mmcblk0p2 ro
mmcrootfstype=ext4 rootwait
mtdids=nand0=nand.0
mtdparts=mtdparts=nand.0:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-)
nandargs=setenv bootargs console=${console} ${optargs} root=${nandroot} rootfstype=${nandrootfstype}
nandboot=echo Booting from nand ...; run nandargs; nand read ${fdtaddr} NAND.u-boot-spl-os; nand read ${loadaddr} NAND.kernel; bootz ${loadaddr} - ${fdtaddr}
nandroot=ubi0:rootfs rw ubi.mtd=NAND.file-system,2048
nandrootfstype=ubifs rootwait=1
netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs
nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
netboot=echo Booting from network ...; setenv autoload no; dhcp; tftp ${loadaddr} ${bootfile}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootz ${loadaddr} - ${fdtaddr}
netmask=255.0.0.0
nfsopts=nolock
partitions=uuid_disk=${uuid_gpt_disk};name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}
ramargs=setenv bootargs console=${console} ${optargs} root=${ramroot}
rootfstype=${ramrootfstype}
ramboot=echo Booting from ramdisk ...; run ramargs; bootz ${loadaddr} ${rdaddr} ${fdtaddr}
ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=${rdaddr},64M
ramrootfstype=ext2
rdaddr=0x81000000
rootpart=2
rootpath=/export/rootfs
scan_boot=echo Scanning ${devtype} ${devnum}...; for prefix in ${bootdir}; do for script in ${bootfile}; do run script_boot; done; done;
script_boot=if load ${devtype} ${devnum}:${rootpart} ${loadaddr} ${bootdir}/${bootfile}; then run findfdt; load ${devtype} ${devnum}:${rootpart} ${fdtaddr} ${bootdir}/;
serverip=10.0.0.10
soc=am33xx
spiargs=setenv bootargs console=${console} ${optargs} root=${spiroot} rootfstype=${spirootfstype}
spiboot=echo Booting from spi ...; run spiargs; sf probe ${spibusno}:0; sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; bootz ${loadaddr}
spibusno=0
spiimgsize=0x362000
spiroot=/dev/mtdblock4 rw
spirootfstype=jffs2
spisrcaddr=0xe0000
static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
stderr=serial
stdin=serial
stdout=serial
usb_boot=setenv devtype usb; run usb_init; if usb dev 0; then run usbargs;run scan_boot; bootz ${loadaddr} - ${fdtaddr}; fi
usb_init=usb start 0;
usbargs=setenv bootargs console=${console} ${optargs} root=${usbroot} rootfstype=${usbrootfstype}
usbnet_devaddr=d0:ff:50:b3:58:2e
usbroot=/dev/sda2 rw
usbrootfstype=ext4 rootwait
vendor=ti
ver=U-Boot 2013.10-00189-g78d8ebd-dirty (Oct 15 2014 - 17:35:33)
Environment size: 5565/131067 bytes
This is output of printenv. I think variable console is correct.
And in the menuconfig of the kernel i have this value:
root=/dev/mmcblk0p2 rootwait console=ttyO0,115200
BR
Daniel
ADDENDUM --
Console Log for transfer
U-Boot# setenv bootfile kernelDM
U-Boot# setenv fdtfile am335x-flsi-usb.dtb
U-Boot# setenv serverip 10.0.0.10
U-Boot# dhcp
link up on port 0, speed 1000, full duplex
BOOTP broadcast 1
DHCP client bound to address 10.0.0.32
Using cpsw device TFTP from server 10.0.0.10; our IP address is 10.0.0.32
Filename 'kernelDM'.
Load address: 0x80200000
Loading: ################# ... ### 2.4 MiB/s
done
Bytes transferred = 29544136 (1c2cec8 hex)

Related

Configure U-boot using Yocto

I am new to U-boot and trying to modify some configuration in the U-boot. I am using STM32MP1 based Avenger96 boiard with Yocto Project and U-boot bootloader. Now I want to modify some U-boot variables like bootcount and bootlimit. For example I want to set bootlimit variable to 4 and if limit is reached, u-boot should run the altbootcmd instead of usual bootcmd.
To make this work I need to edit CONFIG_EXTRA_ENV_SETTINGS statement in the u-boot sources.
But I am not sure how to find the location of this file to be modified.
After spending some time to know about boot process to bring up the board I got to know that it uses boot.cmd file. It contains:
if test -n "${distro_bootpart}"; then
setenv partition "${distro_bootpart}"
else
setenv partition "${bootpart}"
fi
if test ! -e ${devtype} ${devnum}:${partition} boot/fitImage; then
echo "This boot medium does not contain a suitable fitImage file for this system."
echo "devtype=${devtype} devnum=${devnum} partition=${partition} loadaddr=${loadaddr}"
echo "Aborting boot process."
exit 1
fi
part uuid ${devtype} ${devnum}:${partition} uuid
# Some STM32MP1-based systems do not encode the baudrate in the console variable
if test "${console}" = "ttySTM0" && test -n "${baudrate}"; then
setenv console "${console},${baudrate}"
fi
if test -n "${console}"; then
setenv bootargs "${bootargs} console=${console}"
fi
setenv bootargs "${bootargs} root=PARTUUID=${uuid} rw rootwait consoleblank=0"
load ${devtype} ${devnum}:${partition} ${loadaddr} boot/fitImage
if test $? != 0 ; then
echo "Failed to load fitImage file for this system from boot medium."
echo "devtype=${devtype} devnum=${devnum} partition=${partition} loadaddr=${loadaddr}"
echo "Aborting boot process."
exit 2
fi
# A custom script exists to load DTOs
if test -n "${loaddtoscustom}" ; then
# Pull DTOs from fitImage and manually apply them to base DT
if test -n "${loaddtos}" ; then
# Matches UBOOT_DTB_LOADADDRESS in OE layer machine config
setexpr loadaddrdtb 0xcff00000
# Matches UBOOT_DTBO_LOADADDRESS in OE layer machine config
setexpr loadaddrdtbo 0xcff80000
setexpr loaddtossep gsub '#conf' ' fdt' "${loaddtos}"
setexpr loaddtb 1
for i in ${loaddtossep} ; do
if test ${loaddtb} = 1 ; then
echo "Using base DT ${i}"
imxtract ${loadaddr} ${i} ${loadaddrdtb} ;
fdt addr ${loadaddrdtb}
fdt resize
setenv loaddtb 0
else
echo "Applying DTO ${i}"
imxtract ${loadaddr} ${i} ${loadaddrdtbo} ;
fdt apply ${loadaddrdtbo}
fi
done
setenv loaddtb
setenv loaddtossep
setenv loadaddrdtbo
setenv loadaddrdtb
fi
run loaddtoscustom
if test -z "${bootm_args}" ; then
setenv bootm_args "${loadaddr} - ${fdtaddr}"
fi
else
setenv bootm_args "${loadaddr}${loaddtos}"
fi
echo "Booting the Linux kernel..." \
&& bootm ${bootm_args}
Now I want to add something like
bootlimit=5\0" \
rootfspart=4\0" \
bootargs=root=/dev/mmcblk0p${rootfspart} rdinit=/bin/kinit rw single\0" \
altbootcmd=" \
echo Rollback to previous RootFs; "
if test ${rootfspart} = 4; " \
then setenv rootfspart 5; " \
else " \
setenv rootfspart 4; " \
fi; setenv bootcount 0; saveenv; " \
bootcmd\0" \
Can anyone please let me know how can I achieve this? Do I need to create a config fragment to the u-boot recipe or do I need to add patch file? Or is there a better way to implement?
Please let me know if further details are required.
Your help will be much appreciated.
Thanks in advance.

Cannot boot into kernel with FIT image on Rasbperry Pi 4

I am working with a Raspberry Pi 4, trying to add verified boot on it. I used Buildroot to build the basic SD card image, signed the image with mkimage.
I am first testing in u-boot console with two options:
Test 1:
I used "bootm 0x01000000" and let u-boot figure out the device tree in the FIT image.
In: serial
Out: vidconsole
Err: vidconsole
Net: eth0: ethernet#7d580000
Hit any key to stop autoboot: 0
U-Boot> setenv bootargs console=tty1 console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootwait
U-Boot> printenv bootargs
bootargs=console=tty1 console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootwait
U-Boot> fatload mmc 0:1 0x01000000 Image
15731478 bytes read in 700 ms (21.4 MiB/s)
U-Boot> bootm 0x01000000
## Loading kernel from FIT Image at 01000000 ...
Using 'config-1' configuration
Verifying Hash Integrity ... OK
Trying 'kernel-1' kernel subimage
Description: default kernel
Type: Kernel Image
Compression: uncompressed
Data Start: 0x010000dc
Data Size: 15682048 Bytes = 15 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x00080000
Entry Point: 0x00080000
Hash algo: sha1
Hash value: 1f7b5be7099568611cbc76c0b83202ae5829073a
Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 01000000 ...
Using 'config-1' configuration
Verifying Hash Integrity ... OK
Trying 'fdt-1' fdt subimage
Description: device tree
Type: Flat Device Tree
Compression: uncompressed
Data Start: 0x01ef4bc4
Data Size: 47437 Bytes = 46.3 KiB
Architecture: AArch64
Hash algo: sha1
Hash value: b0ba4b289dbcb0c1571103ca5a013aaddaebb03e
Verifying Hash Integrity ... sha1+ OK
Booting using the fdt blob at 0x1ef4bc4
Loading Kernel Image
Using Device Tree in place at 0000000001ef4bc4, end 0000000001f03510
Starting kernel ...
The boot process stuck at this "Starting kernel ..." message.
Test 2:
I used "bootm 0x01000000 - 0x2eff4000" and specify the device tree at the location of u-boot with ${fdt_addr}
In: serial
Out: vidconsole
Err: vidconsole
Net: eth0: ethernet#7d580000
Hit any key to stop autoboot: 2 0
U-Boot> setenv bootargs console=tty1 console=ttyAMA0,115200 root=/dev/mmcblk0p2 rootwait
U-Boot> fatload mmc 0:1 0x01000000 Image
15731478 bytes read in 700 ms (21.4 MiB/s)
U-Boot> bootm 0x01000000 - 0x2eff4000
## Loading kernel from FIT Image at 01000000 ...
Using 'config-1' configuration
Verifying Hash Integrity ... OK
Trying 'kernel-1' kernel subimage
Description: default kernel
Type: Kernel Image
Compression: uncompressed
Data Start: 0x010000dc
Data Size: 15682048 Bytes = 15 MiB
Architecture: AArch64
OS: Linux
Load Address: 0x00080000
Entry Point: 0x00080000
Hash algo: sha1
Hash value: 1f7b5be7099568611cbc76c0b83202ae5829073a
Verifying Hash Integrity ... sha1+ OK
## Flattened Device Tree blob at 2eff4000
Booting using the fdt blob at 0x2eff4000
Loading Kernel Image
Using Device Tree in place at 000000002eff4000, end 000000002f002f79
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd083]
[ 0.000000] Linux version 5.4.51-v8 (xiangrong.li#ubuntu) (gcc version 9.3.0 (Buildroot 2020.08)) #1 SMP PREEMPT Tue Nov 3 10:06:41 EST 2020
[ 0.000000] Machine model: Raspberry Pi 4 Model B Rev 1.2
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: UEFI not found.
And u-boot can boot into kernel normally.
Comments:
I extract the device tree from "Image" file, and compared with bcm2711-rpi-4-b.dtb. They are exactly the same.
Seems the device tree extracted from FIT "Image" cannot lead the boot process to kernel.
My FIT image its file:
/dts-v1/;
/ {
description = "RPi FIT Image";
#address-cells = <2>;
images {
kernel-1 {
description = "default kernel";
data = /incbin/("Image");
type = "kernel";
arch = "arm64";
os = "linux";
compression = "none";
load = <0x00080000>;
entry = <0x00080000>;
hash-1 {
algo = "sha1";
};
};
fdt-1 {
description = "device tree";
data = /incbin/("bcm2711-rpi-4-b.dtb");
type = "flat_dt";
arch = "arm64";
compression = "none";
hash-1 {
algo = "sha1";
};
};
};
configurations {
default = "config-1";
config-1 {
description = "default configuration";
kernel = "kernel-1";
fdt = "fdt-1";
signature-1 {
algo = "sha1,rsa2048";
key-name-hint = "dev";
sign-images = "fdt", "kernel";
};
};
};
};
u-boot environment
arch=arm
baudrate=115200
board=rpi
board_name=4 Model B
board_rev=0x11
board_rev_scheme=1
board_revision=0xB03112
boot_a_script=load ${devtype} ${devnum}:${distro_bootpart} ${scriptaddr} ${prefix}${script}; source ${scriptaddr}
boot_efi_binary=if fdt addr ${fdt_addr_r}; then bootefi bootmgr ${fdt_addr_r};else bootefi bootmgr ${fdtcontroladdr};fi;load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} efi/boot/bootaa64.efi; if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r};else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi
boot_extlinux=sysboot ${devtype} ${devnum}:${distro_bootpart} any ${scriptaddr} ${prefix}${boot_syslinux_conf}
boot_prefixes=/ /boot/
boot_script_dhcp=boot.scr.uimg
boot_scripts=boot.scr.uimg boot.scr
boot_syslinux_conf=extlinux/extlinux.conf
boot_targets=mmc0 mmc1 pxe dhcp
bootcmd=run distro_bootcmd
bootcmd_dhcp=if dhcp ${scriptaddr} ${boot_script_dhcp}; then source ${scriptaddr}; fi;setenv efi_fdtfile ${fdtfile}; setenv efi_old_vci ${bootp_vci};setenv efi_old_arch ${bootp_arch};setenv bootp_vci PXEClient:Arch:00011:UNDI:003000;setenv bootp_arch 0xb;if dhcp ${kernel_addr_r}; then tftpboot ${fdt_addr_r} dtb/${efi_fdtfile};if fdt addr ${fdt_addr_r}; then bootefi ${kernel_addr_r} ${fdt_addr_r}; else bootefi ${kernel_addr_r} ${fdtcontroladdr};fi;fi;setenv bootp_vci ${efi_old_vci};setenv bootp_arch ${efi_old_arch};setenv efi_fdtfile;setenv efi_old_arch;setenv efi_old_vci;
bootcmd_mmc0=devnum=0; run mmc_boot
bootcmd_mmc1=devnum=1; run mmc_boot
bootcmd_pxe=dhcp; if pxe get; then pxe boot; fi
bootdelay=2
cpu=armv8
dfu_alt_info=u-boot.bin fat 0 1;uboot.env fat 0 1;config.txt fat 0 1;Image fat 0 1
dhcpuboot=usb start; dhcp u-boot.uimg; bootm
distro_bootcmd=for target in ${boot_targets}; do run bootcmd_${target}; done
efi_dtb_prefixes=/ /dtb/ /dtb/current/
ethaddr=xxxxxxxxxxxxxxxxxxx
fdt_addr=2eff4000
fdt_addr_r=0x02600000
fdt_high=ffffffffffffffff
fdtcontroladdr=39730e00
fdtfile=broadcom/bcm2711-rpi-4-b.dtb
initrd_high=ffffffffffffffff
kernel_addr_r=0x00080000
load_efi_dtb=load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${efi_fdtfile}
loadaddr=0x00200000
mmc_boot=if mmc dev ${devnum}; then devtype=mmc; run scan_dev_for_boot_part; fi
pxefile_addr_r=0x02500000
ramdisk_addr_r=0x02700000
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;
scan_dev_for_boot_part=part list ${devtype} ${devnum} -bootable 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; setenv devplist
scan_dev_for_efi=setenv efi_fdtfile ${fdtfile}; for prefix in ${efi_dtb_prefixes}; do if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${efi_fdtfile}; then run load_efi_dtb; fi;done;if test -e ${devtype} ${devnum}:${distro_bootpart} efi/boot/bootaa64.efi; then echo Found EFI removable media binary efi/boot/bootaa64.efi; run boot_efi_binary; echo EFI LOAD FAILED: continuing...; fi; setenv efi_fdtfile
scan_dev_for_extlinux=if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}${boot_syslinux_conf}; then echo Found ${prefix}${boot_syslinux_conf}; run boot_extlinux; echo SCRIPT FAILED: continuing...; fi
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
scriptaddr=0x02400000
serial#=10000000exxxxxxx
soc=bcm283x
stderr=serial,vidconsole
stdin=serial,usbkbd
stdout=serial,vidconsole
usbethaddr=xxxxxxxxxxxxxxx
vendor=raspberrypi
Any idea on where I go wrong? Thanks.

imx6ul - how to select the right dts for sdcard image?

I'm building my first yocto release.
All packages build well and I can build my dts. In fact I have a lot of dtb in my images folder.
This is my build configuration.
Build Configuration:
BB_VERSION = "1.36.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "ubuntu-18.04"
TARGET_SYS = "arm-poky-linux-gnueabi"
MACHINE = "pico-imx6ul-itl"
DISTRO = "fsl-imx-fb"
DISTRO_VERSION = "4.9.88-2.0.0"
TUNE_FEATURES = "arm armv7ve vfp neon callconvention-hard cortexa7"
TARGET_FPU = "hard"
meta
meta-poky = "HEAD:0ec241873367e18f5371a3ad9aca1e2801dcd4ee"
meta-oe
meta-multimedia = "HEAD:dacfa2b1920e285531bec55cd2f08743390aaf57"
meta-freescale = "HEAD:49ac225a38f6d84519798e3264f2e4d19b84f70a"
meta-freescale-3rdparty = "HEAD:1d6d5961dbf82624b28bb318b4950a64abc31d12"
meta-freescale-distro = "HEAD:0ec6d7e206705702b5b534611754de0787f92b72"
meta-bsp
meta-sdk = "HEAD:d65692ecb3a4136fc1cc137152634e8633ddb3c6"
meta-browser = "HEAD:d6f9aed41c73b75a97d71bff060b03a66ee087b1"
meta-gnome
meta-networking
meta-python
meta-filesystems = "HEAD:dacfa2b1920e285531bec55cd2f08743390aaf57"
meta-qt5 = "HEAD:32bb7d18a08d1c48873d7ab6332d4cc3815a4dff"
meta-edm-bsp-release = "added-wifi-drivers:10f5373fedd09c19ffb1a393272e3f3ed83b643a"
This is my machine configuration
##TYPE: Machine
##NAME: pico-imx6ul-itl
##SOC: i.MX6UL
##DESCRIPTION: Machine configuration for PICO-IMX6UL/ULL with QCA(Qualcomm)/BRCM(Broadcom) WLAN module
include conf/machine/include/imx-base.inc
include conf/machine/include/tune-cortexa7.inc
include conf/machine/include/imx6ul-common.inc
MACHINEOVERRIDES = "mx6:mx6ul:"
SOC_FAMILY = "mx6ul"
PREFERRED_PROVIDER_u-boot = "u-boot-edm"
PREFERRED_PROVIDER_u-boot_mx6ul = "u-boot-edm"
PREFERRED_PROVIDER_virtual/bootloader = "u-boot-edm"
PREFERRED_PROVIDER_virtual/bootloader_mx6ul = "u-boot-edm"
UBOOT_MAKE_TARGET = ""
UBOOT_SUFFIX = "img"
SPL_BINARY = "SPL"
UBOOT_MACHINE = "pico-imx6ul_spl_defconfig"
#UBOOT_MACHINE = "./pico-imx6ul_defconfig"
# Ensure uEnv.txt will be available at rootfs time
do_rootfs[depends] += "u-boot-uenv:do_deploy"
UENV_FILENAME = "uEnv.txt"
BOOT_SCRIPTS = "${UENV_FILENAME}:uEnv.txt"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-tn-imx"
PREFERRED_PROVIDER_virtual/kernel_mx6ul = "linux-tn-imx"
# Add kernel modules
MACHINE_EXTRA_RRECOMMENDS += "\
kernel-module-qcacld-tn \
"
KERNEL_DEVICETREE = "imx6ul-pico-qca_dwarf.dtb imx6ul-pico-qca_hobbit.dtb \
imx6ul-pico-qca_nymph.dtb imx6ul-pico-qca_pi.dtb \
imx6ul-pico_dwarf.dtb imx6ul-pico_hobbit.dtb \
imx6ul-pico_nymph.dtb imx6ul-pico_pi.dtb \
imx6ull-pico-qca_dwarf.dtb imx6ull-pico-qca_hobbit.dtb \
imx6ull-pico-qca_nymph.dtb imx6ull-pico-qca_pi.dtb \
imx6ull-pico_dwarf.dtb imx6ull-pico_hobbit.dtb \
imx6ull-pico_nymph.dtb imx6ull-pico_pi.dtb"
KERNEL_IMAGETYPE = "zImage"
MACHINE_FEATURES += "bluetooth pci wifi touchscreen"
MACHINE_EXTRA_RRECOMMENDS += " \
broadcom-bluetooth \
openssh-sftp-server \
libsocketcan \
bash hostapd dnsmasq haveged create-ap iptables \
"
MACHINE_FIRMWARE_remove = "firmware-imx-brcm"
SERIAL_CONSOLE = "115200 ttymxc5"
MACHINE_FEATURES += " usbgadget usbhost "
At the moment I use dd to flash the content of this archive:
core-image-base-pico-imx6ul-itl.sdcard.bz2
u-boot is using this device tree:
imx6ul-pico-qca_pi.dts
But I want this one:
imx6ul-pico_pi.dtb
Can you help me to fix the dts? I can't find a tutorial/documentation for this scenario.
UPDATE
printenv from uboot shell on the board
U-Boot SPL 2017.03-tn-imx_v2017.03_4.9.88_2.0.0_ga-test+g2fb0ee6322 (Apr 09 2019 - 20:13:49)
Boot Device: MMC
Trying to boot from MMC1
Boot Device: MMC
reading u-boot.img
reading u-boot.img
U-Boot 2017.03-tn-imx_v2017.03_4.9.88_2.0.0_ga-test+g2fb0ee6322 (Apr 09 2019 - 20:13:49 +0200)
CPU: Freescale i.MX6UL rev1.0 528 MHz (running at 396 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 24C
Reset cause: POR
Board: PICO-IMX6UL
Compatible baseboard: dwarf, hobbit, nymph, pi
I2C: ready
DRAM: 512 MiB
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
MMC: FSL_SDHC: 0
*** Warning - bad CRC, using default environment
No panel detected: default to AT070TN94
Display: AT070TN94 (800x480)
Video: 800x480x24
In: serial
Out: serial
Err: serial
switch to partitions #0, OK
mmc0(part 0) is current device
Net: , FEC1
Normal Boot
Hit any key to stop autoboot: 0
=> printenv
baseboard=pi
baudrate=115200
boot_fdt=try
bootcmd=mmc dev ${mmcdev}; if mmc rescan; then if run loadbootenv; then echo Loaded environment from ${bootenv};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;if run loadbootscript; then run bootscript; fi;if run loadfit; then run fitboot; fi; if run loadimage; then run mmcboot; else echo WARN: Cannot load kernel from boot media; fi; else run netboot; fi
bootdelay=1
bootenv=uEnv.txt
bootscript=echo Running bootscript from mmc ...; source
console=ttymxc5
default_baseboard=pi
detectmem=if test ${memdet} = 512MB; then setenv memsize cma=128M; else setenv memsize cma=96M; fi
eth1addr=00:1f:7b:11:07:27
ethact=FEC1
fdt_addr=0x83000000
fdt_high=0xffffffff
fdtfile=undefined
fit_args=setenv bootargs console=${console},${baudrate} root=/dev/ram0 rootwait rw
fitboot=run fit_args; echo ${bootargs}; bootm 87880000#config#${som}-${form}_${baseboard};
form=pico
image=zImage
importbootenv=echo Importing environment from mmc ...; env import -t -r $loadaddr $filesize
initrd_high=0xffffffff
ip_dyn=no
loadaddr=0x80800000
loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdtfile}
loadfit=fatload mmc ${mmcdev}:${mmcpart} 0x87880000 tnrescue.itb
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
mmcargs=setenv bootargs console=${console},${baudrate} ${memsize} root=${mmcroot}
mmcautodetect=yes
mmcboot=echo Booting from mmc ...; run detectmem; run mmcargs; echo baseboard is ${baseboard}; run setfdt; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then echo WARN: Cannot load the DT; echo fall back to load the default DT; setenv baseboard ${default_baseboard}; run setfdt; run loadfdt; bootz ${loadaddr} - ${fdt_addr}; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
mmcdev=0
mmcpart=1
mmcroot=/dev/mmcblk0p2 rootwait rw
netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...; if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; run loadbootenv; run importbootenv; run setfdt; run netargs; ${get_cmd} ${loadaddr} ${image}; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if ${get_cmd} ${fdt_addr} ${fdtfile}; then bootz ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
script=boot.scr
setfdt=if test ${wifi_module} = qca; then setenv fdtfile ${som}-${form}-${wifi_module}_${baseboard}.dtb; else setenv fdtfile ${som}-${form}_${baseboard}.dtb;fi
som=imx6ul
splashpos=m,m
wifi_module=qca
Environment size: 2920/8188 bytes
You need to modify the wifi_module field of your uboot.
At this time, when you boot, the command setfdtsets the device tree to ${som}-${form}-${wifi_module}_${baseboard}.dtb if ${wifi_module} = qca.
To remove this line type:
setenv wifi_module
After that type
run bootcmd
This will allow you to test the modification. After a reboot it will come back to wifi_module = qca so you can save the environment to make it persistent:
setenv wifi_module
saveenv
See Section 4.12.4 of the Yocto Reference Manual.
To reiterate here, "Functionality is automatically enabled for any recipe that inherits the kernel class and sets the KERNEL_DEVICETREE variable".
For example, in my machine config for ZynqMP which is ARM64 based, I set
KERNEL_DEVICETREE = "xilinx/zynqmp-zcu102-ged.dtb"
For your example, I believe specifying the below should suffice in your machine configuration.
KERNEL_DEVICETREE = "imx6ul-pico_pi.dtb"

U-Boot Config Parameter not used

Blockquote
I am using u-boot as an bootloader for an embedded device. Since i want it to boot very fast i wanted to do some modifications on the configuration (defconfig) and rebuild it. I set the CONFIG_BOOTDELAY paramter to zero and it also appeared in the .config configuration file =0.
The problem is that when i try to boot the device that the bootdelay is always set to 1. I don't know where the bootloader is getting this paramter.
I am using a BeagleBoneBlack Rev. C with a Debian Distribution. C
Does anyone know where the value is coming from? I also checked all the uEnv.txt...
Booting:
U-Boot SPL 2014.04-00014-g47880f5 (Apr 22 2014 - 13:23:54)
reading args
spl_load_image_fat_os: error reading image args, err - -1
reading u-boot.img
reading u-boot.img
U-Boot 2014.04-00014-g47880f5 (Apr 22 2014 - 13:23:54)
I2C: ready
DRAM: 512 MiB
NAND: 0 MiB
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
*** Warning - readenv() failed, using default environment
Net: not set. Validating first E-fuse MAC
cpsw, usb_ether
Hit any key to stop autoboot: 0
gpio: pin 53 (gpio 53) value is 1
mmc0 is current device
gpio: pin 54 (gpio 54) value is 1
SD/MMC found on device 0
798 bytes read in 17 ms (44.9 KiB/s)
gpio: pin 55 (gpio 55) value is 1
Loaded environment from uEnv.txt
Importing environment from mmc ...
Checking if uenvcmd is set ...
gpio: pin 56 (gpio 56) value is 1
Running uenvcmd ...
22 bytes read in 30 ms (0 Bytes/s)
7349664 bytes read in 433 ms (16.2 MiB/s)
55834 bytes read in 72 ms (756.8 KiB/s)
Kernel image # 0x82000000 [ 0x000000 - 0x7025a0 ]
Flattened Device Tree blob at 88000000
Booting using the fdt blob at 0x88000000
Using Device Tree in place at 88000000, end 88010a19
Pri Output:
U-Boot# pri
arch=arm
baudrate=115200
board=am335x
board_name=A335BNLT
board_rev=00C0
boot_fdt=try
bootcmd=gpio set 53; i2c mw 0x24 1 0x3e; run findfdt; run mmcboot;gpio clear 56; gpio clear 55; gpio clear 54; setenv mmcdev 1; setenv bootpart 1:1; run mmcboot;run nandboot;
bootcount=1
bootdelay=1
bootenv=uEnv.txt
bootfile=zImage
bootpart=0:1
console=ttyO0,115200n8
cpu=armv7
dfu_alt_info_emmc=rawemmc mmc 0 3751936
dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw mmc 100 100;u-boot.img.raw mmc 300 400;spl-os-args.raw mmc 80 80;spl-os-image.raw mmc 900 2000;spl-os-args fat 0 1;spl-os-image fat 0 1;u-boot.img fat 0 1;uEnv.txt fat 0 1
dfu_alt_info_nand=SPL part 0 1;SPL.backup1 part 0 2;SPL.backup2 part 0 3;SPL.backup3 part 0 4;u-boot part 0 5;u-boot-spl-os part 0 6;kernel part 0 8;rootfs part 0 9
dfu_alt_info_ram=kernel ram 0x80200000 0xD80000;fdt ram 0x80F80000 0x80000;ramdisk ram 0x81000000 0x4000000
eth1addr=04:a3:16:ac:0a:3f
ethact=cpsw
ethaddr=04:a3:16:ac:0a:3d
fdt_high=0xffffffff
fdtaddr=0x88000000
fdtdir=/dtbs
fdtfile=undefined
findfdt=if test $board_name = A335BONE; then setenv fdtfile am335x-bone.dtb; setenv fdtbase am335x-bone; fi; if test $board_name = A335BNLT; then setenv fdtfile am335x-boneblack.dtb; setenv fdtbase am335x-boneblack; fi; if test $board_name = A33515BB; then setenv fdtfile am335x-evm.dtb; fi; if test $board_name = A335X_SK; then setenv fdtfile am335x-evmsk.dtb; fi; if test $fdtfile = undefined; then echo WARNING: Could not determine device tree to use; fi;
importbootenv=echo Importing environment from mmc ...; env import -t
$loadaddr $filesize
loadaddr=0x82000000
loadbootenv=load mmc ${bootpart} ${loadaddr} ${bootenv}
loadfdt=load mmc ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}
loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz
mmcargs=setenv bootargs console=${console} ${optargs} root=${mmcroot}
rootfstype=${mmcrootfstype}
mmcboot=mmc dev ${mmcdev}; if mmc rescan; then gpio set 54;echo SD/MMC found on device ${mmcdev};if run loadbootenv; then gpio set 55;echo Loaded environment from ${bootenv};run importbootenv;fi;if test -n $cape; then if test -e mmc ${bootpart} ${fdtdir}/$fdtbase-$cape.dtb; then setenv fdtfile $fdtbase-$cape.dtb; fi; echo using: $fdtfile...; fi; echo Checking if uenvcmd is set ...;if test -n $uenvcmd; then gpio set 56; echo Running uenvcmd ...;run uenvcmd;fi;echo; echo uenvcmd was not defined in uEnv.txt ...;fi;
mmcdev=0
mmcloados=run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;
mmcpart=1
mmcroot=/dev/mmcblk0p2 ro fixrtc
mmcrootfstype=ext4 rootwait
mtdids=nand0=omap2-nand.0
mtdparts=mtdparts=omap2-nand.0:128k(SPL),128k(SPL.backup1),128k(SPL.backup2),128k(SPL.backup3),1792k(u-boot),128k(u-boot-spl-os),128k(u-boot-env),5m(kernel),-(rootfs)
nandargs=setenv bootargs console=${console} ${optargs} root=${nandroot}
rootfstype=${nandrootfstype}
nandboot=echo Booting from nand ...; run nandargs; nand read ${fdtaddr}
u-boot-spl-os; nand read ${loadaddr} kernel; bootz ${loadaddr} - ${fdtaddr}
nandroot=ubi0:rootfs rw ubi.mtd=7,2048
nandrootfstype=ubifs rootwait=1
netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs
nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
netboot=echo Booting from network ...; setenv autoload no; dhcp; tftp ${loadaddr} ${bootfile}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootz ${loadaddr} - ${fdtaddr}
nfsopts=nolock
partitions=uuid_disk=${uuid_gpt_disk};
name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}
ramargs=setenv bootargs console=${console} ${optargs} root=${ramroot}
rootfstype=${ramrootfstype}
ramboot=echo Booting from ramdisk ...; run ramargs; bootz ${loadaddr} ${rdaddr} ${fdtaddr}
ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=${rdaddr},64M
ramrootfstype=ext2
rdaddr=0x88080000
rootpath=/export/rootfs
soc=am33xx
spiargs=setenv bootargs console=${console} ${optargs} root=${spiroot} rootfstype=${spirootfstype}
spiboot=echo Booting from spi ...; run spiargs; sf probe ${spibusno}:0; sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; bootz ${loadaddr}
spibusno=0
spiimgsize=0x362000
spiroot=/dev/mtdblock4 rw
spirootfstype=jffs2
spisrcaddr=0xe0000
static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
stderr=serial
stdin=serial
stdout=serial
usbnet_devaddr=04:a3:16:ac:0a:3f
vendor=ti
ver=U-Boot 2014.04-00014-g47880f5 (Apr 22 2014 - 13:23:54)
Try to set a bootdelay enviroment variable with this command
setenv bootdelay '0'
saveenv
in your current env is set to 1

Bootloader Set Up for TFTP and NFS; Diskless Boot Up from Amazon EC2

Currently, I have successfully boot up my wandboard with TFTP for kernel and NFS for rootfs locally.
Still, I want to achieve on booting it over the cloud set up in Amazon EC2. The machine could get the kernel files and boot up fine. However, it still could not mount the NFS rootfs.
Since TFTP is extremely slow, I have moved the files down to local and it worked. The rootfs is still in the cloud, and I have trouble connect to it. I could mount nfs to the Ubuntu machine and access the files without problem.
I have also open all the TCP and UDP ports in EC2, which is not good. what specific ports need to open for NFS? I believe TFTP uses UDP:69.
Please advice.
Kernel command line: console=ttymxc1,115200 root=/dev/nfs ip=192.168.0.154:192.168.0.227:192.168.0.1:255.255.255.0::eth0:off nfsroot=52.22.87.79:/nfsroot,v3,tcp video=mxcfb0:dev=hdmi,1280x720M#60,if=RGB24
IP-Config: Complete:
device=eth0, hwaddr=10:07:23:60:22:6c, ipaddr=192.168.0.154, mask=255.255.255.0, gw=192.168.0.1
host=192.168.0.154, domain=, nis-domain=(none)
bootserver=192.168.0.227, rootserver=52.22.87.79, rootpath=
Q=1==SD2_DAT0 reg:3
MQ=1==SD2_DAT0 conf reg:130b0
MQ=1==SD2_DAT1 reg:3
MQ=1==SD2_DAT1 conf reg:130b0
MQ=1==SD2_DAT2 reg:3
MQ=1==SD2_DAT2 conf reg:110b0
MQ=1==SD2_DAT3 reg:3
MQ=1==SD2_DAT3 conf reg:130b0
ALSA device list:
MQ=1==GPIO_0 reg:0
MQ=1==CCOSR reg2:e017b
MQ=1==GPIO_0 config reg3:1f0b0
MQ=2==GPIO_0 reg:0
MQ=2==CCOSR reg2:10e0180
MQ=2==GPIO_0 config reg3:1f0b0
#0: imx6dl-rt5631 #1: imx-hdmi-soc
VFS: Cannot open root device "nfs" or unknown-block(2,0): error -6
Please append a correct "root=" boot option; here are the available
partitions:
b300 7634944 mmcblk0 driver: mmcblk
b301 7840 mmcblk0p1 00000000-01
b302 7840 mmcblk0p2 00000000-02
b303 1 mmcblk0p3
b304 5842080 mmcblk0p4 00000000-04
b305 500024 mmcblk0p5 00000000-05
b306 250040 mmcblk0p6 00000000-06
b307 1000024 mmcblk0p7 00000000-07
b318 2048 mmcblk0rpmb (driver?)
b310 2048 mmcblk0boot1 (driver?)
b308 2048 mmcblk0boot0 (driver?)
b320 7814144 mmcblk1 driver: mmcblk
b321 7711744 mmcblk1p1 000b6489-01
Kernel panic - not syncing: VFS: Unable to mount root fs on
unknown-block(2,0)
CPU1: stopping
CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.10.17-1.0.0_ga+yocto #2
[<800138c0>] (unwind_backtrace+0x0/0xf4) from [<800114f8>]
(show_stack+0x10/0x14)
[<800114f8>] (show_stack+0x10/0x14) from [<80012ae8>]
(handle_IPI+0x108/0x118)
[<80012ae8>] (handle_IPI+0x108/0x118) from [<80008584>]
(gic_handle_irq+0x58/0x5c)
[<80008584>] (gic_handle_irq+0x58/0x5c) from [<8000dc80>]
(__irq_svc+0x40/0x70)
Exception stack(0xa8095f50 to 0xa8095f98)
5f40: a8095f98 0000007a bfcb6973
0000001c
5f60: bf633310 0000001c 815b1130 80cc8508 00000000 00000000 a8094000
a8094000
5f80: 00000017 a8095f98 80059784 8047c5d8 60000113 ffffffff
[<8000dc80>] (__irq_svc+0x40/0x70) from [<8047c5d8>]
(cpuidle_enter_state+0x50/0xe0)
[<8047c5d8>] (cpuidle_enter_state+0x50/0xe0) from [<8047c718>]
(cpuidle_idle_call+0xb0/0x148)
[<8047c718>] (cpuidle_idle_call+0xb0/0x148) from [<8000ec5c>]
(arch_cpu_idle+0x10/0x54)
[<8000ec5c>] (arch_cpu_idle+0x10/0x54) from [<80059058>]
(cpu_startup_entry+0x104/0x150)
[<80059058>] (cpu_startup_entry+0x104/0x150) from [<1067a604>]
(0x1067a604)
(Re)start USB...
USB0: lowlevel init failed
USB1: USB EHCI 1.00
scanning bus 1 for devices... 3 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
scanning usb for ethernet devices... 0 Ethernet Device(s) found
No storage devices, perhaps not 'usb start'ed..?
no usb storege founded!
EHCI failed to shut down host controller.
(Re)start USB...
USB0: lowlevel init failed
USB1: USB EHCI 1.00
scanning bus 1 for devices... 3 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
scanning usb for ethernet devices... 0 Ethernet Device(s) found
No storage devices, perhaps not 'usb start'ed..?
not detect usb storage
Hit any key to stop autoboot: 0
=> printenv
baudrate=115200
boot_fdt=try
bootargs=console=ttymxc1,115200 root=/dev/nfs ip=192.168.0.154:52.22.87.79:192.168.0.1:255.255.255.0::eth0:off nfsroot=52.11.87.79:/nfsroot,v3,tcp video=mxcfb0:dev=hdmi,1280x720M#60,if=RGB24
bootcmd=hdcp;run netboot
bootdelay=1
bootscript=echo Running bootscript from mmc ...; source
box_console_conf=console=ttymxc1,115200
box_recovery=console=tty0 console=ttymxc1,115200 root=/dev/mmcblk0p6 init=/linuxrc rootwait
boxargs=setenv bootargs ${box_console_conf} root=${boxroot} ${hdmi} splash vt.handoff=7 ubootver=${ubootver}
boxcmd=run boxargs;tftp ${loadaddr_box} ${uimage_box};bootm
boxroot=/dev/mmcblk0p3 rootwait rw
checkimg=fatload usb 0:1 0x84000000 dtbcheckupdate= echo start checking update...;usb start;if test run checkimg; thensetenv mmcroot=/dev/mmcblk1p2 rootwait rw;fi;
console=ttymxc1
emmcdev=2
ethact=FEC
ethprime=FEC
fdt_addr=0x18000000
fdt_file=hio-imx6dl-board.dtb
fdt_high=0xffffffff
gatewayip=192.168.0.250
get_cmd=tftp
hdmi=video=mxcfb0:dev=hdmi,1280x720M#60,if=RGB24
initrd_high=0xffffffff
ip_dyn=no
ipaddr=192.168.0.154
load_box=mmc read ${loadaddr} 0x800 0x2800
loadaddr=0x12000000
loadaddr_box=0x10800000
loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}
mmcargs=setenv bootargs console=${console},${baudrate} root=${mmcroot} ${hdmi}
mmcboot=echo Booting from mmc ...; run mmcargs; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootm ${loadaddr} - ${fdt_addr}; else if test ${boot_fdt} = try; then bootm; el
se echo WARN: Cannot load the DT; fi; fi; else bootm; fi;
mmcdev=2
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw
netargs=setenv bootargs console=${console},${baudrate} root=/dev/nfs ip=${nfs_ip} nfsroot=${rootpathip}:${nfsroot},v3,tcp ${hdmi}
netboot=run netargs;${get_cmd} ${loadaddr} ${uimage};${get_cmd} ${fdt_addr} ${fdt_file};bootm ${loadaddr} - ${fdt_addr}
netmask=255.255.255.0
nfs_ip=192.168.0.154:192.168.0.227:192.168.0.1:255.255.255.0::eth0:off
nfsroot=/nfsroot
rootpathip=52.22.87.79
script=boot.scr
serverip=192.168.0.227
ubootver=U-Boot 2014.01 (Aug 24 2015 - 22:25:05)
uimage=uImage
uimage_box=uImage_box
update_emmc_firmware=if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; if ${get_cmd} ${update_sd_firmware_filename}; then if mmc dev ${emmcdev} && mmc open ${emmcdev} 1; then
setexpr fw_sz ${filesize} / 0x200; setexpr fw_sz ${fw_sz} + 1; mmc write ${loadaddr} 0x2 ${fw_sz}; mmc close ${emmcdev} 1; fi; fi
update_sd_firmware=if test ${ip_dyn} = yes; then setenv get_cmd dhcp; else setenv get_cmd tftp; fi; if mmc dev ${mmcdev}; then if ${get_cmd} ${update_sd_firmware_filename}; then setexpr fw_sz ${filesize} /
0x200; setexpr fw_sz ${fw_sz} + 1; mmc write ${loadaddr} 0x2 ${fw_sz}; fi; fi
Environment size: 2985/8188 bytes

Resources