@@ -25,9 +25,15 @@ setenv align_to "0x00001000"
2525setenv align_overlap_oboe_avoidance " on" 
2626setenv align_addr_next 'if test " ${align_overlap_oboe_avoidance}"   = " on"   ; then setexpr addr_next ${addr_next} + 1  ; fi ; setexpr modulo ${addr_next} % ${align_to} ; if  itest ${modulo} -gt 0  ; then setexpr addr_next ${addr_next} / ${align_to} ; setexpr addr_next ${addr_next} + 1  ; setexpr addr_next ${addr_next} * ${align_to} ; fi'
2727
28+ if  setexpr setexpr 1  + 1  ; then
29+ 	setenv setexpr " available" 
30+ else 
31+ 	echo  " ** Command `setexpr` not available - using configured load addresses" 
32+ fi
33+ 
2834echo  " Boot script loaded from ${devtype}" 
2935
30- setenv something " environment from ${devtype} to ${load_addr}" 
36+ setenv something " environment ${prefix}armbianEnv.txt  from ${devtype} to ${load_addr}" 
3137echo  " Loading ${something} ..." 
3238if  load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt; then
3339	env import -t ${load_addr} ${filesize}
3743
3844setenv bootargs " console=ttyS0,115200 root=${rootdev} rootwait rootfstype=${rootfstype} ubootdev=${devtype} scandelay loglevel=${verbosity} usb-storage.quirks=${usbstoragequirks} ${extraargs}" 
3945
40- setenv something " DT from ${devtype} to ${fdt_addr_r}" 
46+ setenv something " DT ${prefix}dtb/${fdtfile}  from ${devtype} to ${fdt_addr_r}" 
4147echo  " Loading ${something} ..." 
4248if  load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile} ; then
4349else 
4753	fi
4854fi
4955
56+ setenv fdt_filesize ${filesize}
5057fdt addr ${fdt_addr_r}
5158fdt resize ${fdt_extrasize}
5259
53- if  setexpr setexpr 1  + 1  ; then
54- 	setenv setexpr " available" 
55- else 
56- 	echo  " ** Command `setexpr` not available - using configured load addresses" 
57- fi
58- 
59- if  test " ${setexpr}"   = " available"   ; then
60- 	fdt header get fdt_totalsize totalsize
61- 	if  test " ${fdt_totalsize}"   = " "   ; then
62- 		echo  " ** Command `fdt header` does not support `get <var> <member>` - calculating DT size" 
63- 
64- 		# 'fdt resize' will align upwards to 4k address boundary
65- 		setexpr fdt_totalsize ${filesize} / 0x1000 
66- 		setexpr fdt_totalsize ${fdt_totalsize} + 1 
67- 		setexpr fdt_totalsize ${fdt_totalsize} * 0x1000 
68- 		if  test " ${fdt_extrasize}"   != " "   ; then
69- 			# add 'extrasize' before aligning
70- 			setexpr fdt_totalsize ${fdt_totalsize} + ${fdt_extrasize}
71- 		fi
72- 	fi
73- 	setexpr addr_next ${fdt_addr_r} + ${fdt_totalsize}
74- 	run align_addr_next
75- 	setenv kernel_addr_r ${addr_next}
76- fi
77- 
7860for  overlay_file in  ${overlays}; do 
7961	setenv something " kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo from ${devtype} to ${load_addr}" 
8062	echo  " Loading ${something} ..." 
@@ -145,7 +127,29 @@ if test "${spi_workaround}" = "on"; then
145127	fdt set  /soc/spi@10680/spi-flash@0 status " okay" 
146128fi
147129
148- setenv something " kernel from ${devtype} to ${kernel_addr_r}" 
130+ echo  " Trimming DT ..." 
131+ fdt resize
132+ 
133+ if  test " ${setexpr}"   = " available"   ; then
134+ 	fdt header get fdt_totalsize totalsize
135+ 	if  test " ${fdt_totalsize}"   = " "   ; then
136+ 		echo  " ** Command `fdt header` does not support `get <var> <member>` - calculating DT size" 
137+ 
138+ 		# 'fdt resize' will align upwards to 4k address boundary
139+ 		setexpr fdt_totalsize ${fdt_filesize} / 0x1000 
140+ 		setexpr fdt_totalsize ${fdt_totalsize} + 1 
141+ 		setexpr fdt_totalsize ${fdt_totalsize} * 0x1000 
142+ 		if  test " ${fdt_extrasize}"   != " "   ; then
143+ 			# add 'extrasize' before aligning
144+ 			setexpr fdt_totalsize ${fdt_totalsize} + ${fdt_extrasize}
145+ 		fi
146+ 	fi
147+ 	setexpr addr_next ${fdt_addr_r} + ${fdt_totalsize}
148+ 	run align_addr_next
149+ 	setenv kernel_addr_r ${addr_next}
150+ fi
151+ 
152+ setenv something " kernel ${prefix}zImage from ${devtype} to ${kernel_addr_r}" 
149153echo  " Loading ${something} ..." 
150154if  load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}zImage ; then
151155else 
@@ -161,7 +165,7 @@ if test "${setexpr}" = "available" ; then
161165	setenv ramdisk_addr_r ${addr_next}
162166fi
163167
164- setenv something " initial ramdisk from ${devtype} to ${ramdisk_addr_r}" 
168+ setenv something " initial ramdisk ${prefix}uInitrd  from ${devtype} to ${ramdisk_addr_r}" 
165169echo  " Loading ${something} ..." 
166170if  load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd ; then
167171else 
171175	fi
172176fi
173177
174- setenv something " kernel" 
178+ setenv something " kernel from ${kernel_addr_r} " 
175179echo  " Booting ${something} ..." 
176180if  bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} ; then
177181else 
0 commit comments