Hi,

I am using an OLinuXino A20 LIME with arm. 
boot.scr used to have the following content (I removed the initial
non-readable characters) which let boot the device without issues:


> setenv mmcpart 1
> 
> setenv mmcroot /dev/mmcblk0p2 ro
> setenv mmcrootfstype btrfs rootwait fixrtc
> setenv mmcrootflags subvol=@
> 
> setenv console ttyS0,115200n8
> 
> setenv kernel_file vmlinuz-4.8.0-2-armmp-lpae
> setenv initrd_file initrd.img-4.8.0-2-armmp-lpae
> setenv fdtfile sun7i-a20-olinuxino-lime.dtb
> 
> setenv loadaddr 0x46000000
> setenv initrd_addr 0x48000000
> setenv fdtaddr 0x47000000
> 
> setenv initrd_high 0xffffffff
> setenv fdt_high 0xffffffff
> 
> setenv loadkernel load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${kernel_file}
> setenv loadinitrd load mmc ${mmcdev}:${mmcpart} ${initrd_addr} 
> ${initrd_file}\; setenv initrd_size \${filesize}
> setenv loadfdt load mmc ${mmcdev}:${mmcpart} ${fdtaddr} /dtbs/${fdtfile}
> 
> setenv loadfiles run loadkernel\; run loadinitrd\; run loadfdt
> setenv mmcargs setenv bootargs console=${console} root=${mmcroot} 
> rootfstype=${mmcrootfstype} rootflags=${mmcrootflags}
> 
> run loadfiles; run mmcargs; bootz ${loadaddr} ${initrd_addr}:${initrd_size} 
> ${fdtaddr}


The new content of that file is:


> # boot script for Allwinner SunXi-based devices
> 
> # Mainline u-boot v2014.10 introduces a new default environment and
> # a new common bootcmd handling for all platforms, which is not fully
> # compatible with the old-style environment used by u-boot-sunxi.
> # This script therefore needs to check in which environment it
> # is running and set some variables accordingly.
> 
> # On u-boot-sunxi, this script assumes that ${device} and ${partition}
> # are set.
> 
> # The new-style environment predefines ${boot_targets}, the old-style
> # environment does not.
> if test -n "${boot_targets}"
> then
>   echo "Mainline u-boot / new-style environment detected."
>   # Mainline u-boot v2014.10 uses ${devtype}, ${devnum} and
>   # ${bootpart} where u-boot-sunxi uses ${device} and ${partition}.
>   # ${distro_bootpart} replaced ${bootpart} in u-boot v2016.01.
>   if test -z "${device}"; then setenv device "${devtype}"; fi
>   if test -z "${partition}${distro_bootpart}"; then setenv partition 
> "${devnum}:${bootpart}"; fi
>   if test -z "${partition}"; then setenv partition 
> "${devnum}:${distro_bootpart}"; fi
> else
>   echo "U-boot-sunxi / old-style environment detected."
>   # U-boot-sunxi does not predefine kernel_addr_r, fdt_addr_r and
>   # ramdisk_addr_r, so they have to be manually set. Use the values
>   # from mainline u-boot v2014.10, except for ramdisk_addr_r,
>   # which is set to 0x44300000 to allow for initrds larger than
>   # 13MB on u-boot-sunxi.
>   setenv kernel_addr_r 0x42000000
>   setenv fdt_addr_r 0x43000000
>   setenv ramdisk_addr_r 0x44300000
> fi
> 
> if test -n "${console}"; then
>   setenv bootargs "${bootargs} console=${console}"
> fi
> 
> setenv bootargs  ${bootargs} quiet
> 
> 
> image_locations='/boot/ /'
> if test -z "${fk_kvers}"; then
>    setenv fk_kvers '4.8.0-2-armmp-lpae'
> fi
> 
> if test -n "${fdtfile}"; then
>    setenv fdtpath dtbs/${fk_kvers}/${fdtfile}
> else
>    setenv fdtpath dtb-${fk_kvers}
> fi
> 
> for pathprefix in ${image_locations}
> do
>   if test -e ${device} ${partition} ${pathprefix}vmlinuz-${fk_kvers}
>   then
>     load ${device} ${partition} ${kernel_addr_r} 
> ${pathprefix}vmlinuz-${fk_kvers} \
>     && load ${device} ${partition} ${fdt_addr_r} ${pathprefix}${fdtpath} \
>     && load ${device} ${partition} ${ramdisk_addr_r} 
> ${pathprefix}initrd.img-${fk_kvers} \
>     && echo "Booting Debian ${fk_kvers} from ${device} ${partition}..." \
>     && bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr_r}
>   fi
> done

Which does not allow the device to boot. 
None of the variables in that script is set in the current environment.
As work-around I am currently copying a saved version of the former file 
content to boot.scr.
How can I make the new file work?

Thanks
   Dietmar

Reply via email to