@@ -15,41 +15,44 @@ archiver_create_makefile_for_sdk() {
1515SRC_PATH ?= \$(PWD )
1616BLD_PATH ?= \$(SRC_PATH )/.. /build
1717DEPLOYDIR ?= \$(SRC_PATH )/.. /deploy
18+ FIPTOOLDIR ?= \$(SRC_PATH )/..
1819
1920# Default U-Boot overall settings to null
2021UBOOT_CONFIG ?=
2122UBOOT_DEFCONFIG ?=
2223UBOOT_BINARY ?=
2324UBOOT_DEVICETREE ?=
2425
26+ # Set default FIP config
27+ FIP_CONFIG ?= ${@ ' ' . join (d for d in '${FIP_CONFIG} ' . split () if not 'fastboot-' in d )}
28+
2529EOF
2630 if [ -n "${UBOOT_CONFIG} " ]; then
31+ # Initialize type suffix list
32+ type_suffix_list = ""
2733 unset i j k
2834 for config in ${UBOOT_MACHINE} ; do
2935 i = $(expr $i + 1 );
36+ # Initialize devicetree list
37+ devicetree_internal = $(echo ${UBOOT_DEVICETREE_INTERNAL} | cut -d ',' -f${i} )
38+ devicetree_external = $(echo ${UBOOT_DEVICETREE_EXTERNAL} | cut -d ',' -f${i} )
3039 for type in ${UBOOT_CONFIG} ; do
3140 j = $(expr $j + 1 );
3241 if [ $j -eq $i ]; then
3342 for binary in ${UBOOT_BINARIES} ; do
3443 k = $(expr $k + 1 );
3544 if [ $k -eq $i ]; then
45+ # Skip any fastboot config
46+ echo ${type} | grep '^fastboot-' && continue
3647 type_suffix = $(echo ${type} | cut -d '_' -f1 )
37- type_filter = $(echo ${type} | cut -d '_' -f2 )
38- [ "${type_suffix} " = "${type_filter} " ] && type_filter = ""
39- if [ -z "${type_filter} " ]; then
40- devicetree = "${UBOOT_DEVICETREE} "
41- else
42- devicetree = ""
43- for dt in ${UBOOT_DEVICETREE} ; do
44- [ -z "$(echo ${dt} | grep ${type_filter} )" ] || devicetree = "${devicetree} ${dt} "
45- done
46- fi
48+ type_suffix_list = "${type_suffix_list} ${type_suffix} "
4749 cat << EOF >> ${ARCHIVER_OUTDIR} /Makefile . sdk
4850# Init default config settings
49- UBOOT_CONFIGS += ${type_suffix}
50- UBOOT_DEFCONFIG_ $type_suffix += ${config}
51- UBOOT_BINARY_ $config ?= ${binary}
52- UBOOT_DEVICETREE_ $config ?= ${devicetree}
51+ UBOOT_BINARY_${config} ?= ${binary}
52+ UBOOT_DEVICETREE_INTERNAL_${config} ?= ${devicetree_internal}
53+ UBOOT_DEVICETREE_EXTERNAL_${config} ?= ${devicetree_external}
54+ UBOOT_DEVICETREE_${config} = \$(UBOOT_DEVICETREE_INTERNAL_${config} ) \$(if \$(EXTDT_DIR ), \$(UBOOT_DEVICETREE_EXTERNAL_${config} ))
55+ UBOOT_DEFCONFIG_${type_suffix} += ${config}
5356EOF
5457 fi
5558 done
5962 unset j
6063 done
6164 unset i
65+ cat << EOF >> ${ARCHIVER_OUTDIR} /Makefile . sdk
66+ UBOOT_CONFIGS = $(echo ${type_suffix_list} | tr ' ' '\n' | sort -u | tr '\n' ' ' )
67+ EOF
6268 fi
6369 cat << EOF >> ${ARCHIVER_OUTDIR} /Makefile . sdk
6470
@@ -69,30 +75,35 @@ CPPFLAGS =
6975
7076UBOOT_LOCALVERSION = ${UBOOT_LOCALVERSION}
7177
78+ # Define default external-dt options
79+ EXTERNAL_DT_OPTS = ${@ bb . utils . contains ('EXTERNAL_DT_ENABLED' , '1' , 'EXT_DTS=\$(EXTDT_DIR)/${EXTDT_DIR_UBOOT} ' , '' , d )}
80+
7281# Display U-Boot config details
7382define uboot -configs
7483 echo " \$(1)" ; \\
7584 \$(foreach defconfig , \$(if \$(UBOOT_DEFCONFIG ), \$(UBOOT_DEFCONFIG ), \$(UBOOT_DEFCONFIG_ \$(1 ))), \\
7685 echo " defconfig : \$(defconfig)" ; \\
7786 echo " for binary : \$(if \$(UBOOT_BINARY),\$(UBOOT_BINARY),\$(UBOOT_BINARY_\$(defconfig)))" ; \\
78- echo " with devicetree: \$(if \$(DEVICETREE ),\$(DEVICETREE ),\$(UBOOT_DEVICETREE_\$(defconfig)))" ; \\
87+ echo " with devicetree: \$(if \$(DEVICE_TREE ),\$(DEVICE_TREE ),\$(UBOOT_DEVICETREE_\$(defconfig)))" ; \\
7988 )
8089endef
8190
82- # Configure U-Boot configure rules (configure-DEFCONFIG)
91+ # Configure U-Boot configure rules
92+ # configure-DEFCONFIG <defconfig> <config>
8393define configure -rules
8494configure -\$(1 ):: version
8595 @mkdir -p \$(BLD_PATH )/\$(1 )
8696 @echo \$(UBOOT_LOCALVERSION ) > \$(BLD_PATH )/\$(1 )/. scmversion
8797 \$(MAKE ) -C \$(SRC_PATH ) O = \$(BLD_PATH )/\$(1 ) \$(1 ) || exit 1
8898endef
8999
90- # Configure U-Boot make rules (uboot-DEFCONFIG)
100+ # Configure U-Boot make rules
101+ # uboot-DEFCONFIG <defconfig> <config> <binary>
91102define uboot -rules
92103uboot -\$(1 ):: configure -\$(1 )
93104 @mkdir -p \$(DEPLOYDIR )
94- @\$(foreach dt , \$(if \$(DEVICETREE ), \$(DEVICETREE ), \$(UBOOT_DEVICETREE_ \$(1 ))), \\
95- \$(MAKE ) -C \$(SRC_PATH ) ${UBOOT_MAKE_TARGET} \\
105+ @\$(foreach dt , \$(if \$(DEVICE_TREE ), \$(DEVICE_TREE ), \$(UBOOT_DEVICETREE_ \$(1 ))), \\
106+ \$(MAKE ) -C \$(SRC_PATH ) \$( EXTERNAL_DT_OPTS ) \\
96107 O = \$(BLD_PATH )/\$(1 ) \\
97108 DEVICE_TREE = \$(dt ) \\
98109 DEVICE_TREE_EXT = \$(dt ). dtb || exit 1 ; \\
@@ -103,17 +114,18 @@ uboot-\$(1):: configure-\$(1)
103114 )
104115endef
105116
106- # Configure U-Boot deploy rules (deploy-DEFCONFIG)
117+ # Configure U-Boot deploy rules
118+ # deploy-DEFCONFIG <defconfig> <config> <binary>
107119define deploy -rules
108120deploy -\$(1 ):: uboot -\$(1 )
109121 @mkdir -p \$(DEPLOYDIR )
110122 @mkdir -p \$(DEPLOYDIR )/debug
111- @\$(foreach dt , \$(if \$(DEVICETREE ), \$(DEVICETREE ), \$(UBOOT_DEVICETREE_ \$(1 ))), \\
123+ @\$(foreach dt , \$(if \$(DEVICE_TREE ), \$(DEVICE_TREE ), \$(UBOOT_DEVICETREE_ \$(1 ))), \\
112124 if [ "\$(shell echo \$(3) | cut -d'.' -f2)" = "dtb" ]; then \\
113- cp -f \$(BLD_PATH )/\$(1 )/u -boot -nodtb . bin \$(DEPLOYDIR )/u -boot -nodtb \$(strip \$(foreach soc , ${STM32MP_SOC_NAME} , \$(if \$(findstring \$(soc ), \$(dt )), -\$(soc ), ))). bin ; \\
125+ cp -f \$(BLD_PATH )/\$(1 )/u -boot -nodtb . bin \$(DEPLOYDIR )/u -boot -nodtb \$(strip \$(foreach soc , ${STM32MP_SOC_NAME} , \$(if \$(findstring \$(soc ), \$(dt )), -\$(soc ), )))-\$( 2 ) . bin ; \\
114126 fi ; \\
115127 if [ -f \$(BLD_PATH )/\$(1 )/${UBOOT_ELF} ]; then \\
116- cp -f \$(BLD_PATH )/\$(1 )/${UBOOT_ELF} \$(DEPLOYDIR )/debug /u -boot \$(strip \$(foreach soc , ${STM32MP_SOC_NAME} , \$(if \$(findstring \$(soc ), \$(dt )), -\$(soc ), ))). ${UBOOT_ELF_SUFFIX} ; \\
128+ cp -f \$(BLD_PATH )/\$(1 )/${UBOOT_ELF} \$(DEPLOYDIR )/debug /u -boot \$(strip \$(foreach soc , ${STM32MP_SOC_NAME} , \$(if \$(findstring \$(soc ), \$(dt )), -\$(soc ), )))-\$( 2 ) . ${UBOOT_ELF_SUFFIX} ; \\
117129 fi ; \\
118130 )
119131endef
@@ -137,7 +149,7 @@ help:
137149 @echo "Note that each U-Boot configuration settings can be updated through overall or specific config var:"
138150 @echo " UBOOT_DEFCONFIG"
139151 @echo " UBOOT_BINARY"
140- @echo " DEVICETREE "
152+ @echo " DEVICE_TREE "
141153 @echo
142154 @echo "U-Boot folder configuration:"
143155 @echo " SRC_PATH = \$(SRC_PATH)"
@@ -148,24 +160,26 @@ help:
148160 @echo " Do not forget to set FIP deploydir folders (such as FIP_DEPLOYDIR_ROOT) to provide path to needed binaries"
149161 @echo
150162 @echo "Available targets:"
151- @echo " all : build U-Boot binaries for defined config(s)"
163+ @echo " all : build U-Boot binaries for defined config(s) + fip"
164+ @echo " uboot : build U-Boot binaries for defined config(s)"
152165 @echo " fip : build FIP binaries"
153166 @echo " clean : clean build directories from generated files"
154167
155168all : \$(DEPS )
156169
170+ uboot : \$(deploy -targets )
171+
157172clean :
158- @for config in \$(UBOOT_CONFIGS ); do \\
159- uboot_type = \$\$(echo \$\$config | cut -d ',' -f2 ) ; \\
160- echo "Removing \$(BLD_PATH)/\$\$uboot_type ..." ; \\
161- rm -rf \$(BLD_PATH )/\$\$uboot_type ; \\
162- done
173+ @echo "Removing \$(BLD_PATH)/* ..."
174+ @rm -rf \$(BLD_PATH )/*
163175 @echo "Removing \$(DEPLOYDIR) ..."
164176 @rm -rf \$(DEPLOYDIR )
165177 @echo
166178
167179fip : \$(deploy -targets )
168- FIP_DEPLOYDIR_UBOOT = \$(DEPLOYDIR ) FIP_DEVICETREE = "\$(DEVICETREE)" fiptool -stm32mp
180+ for fipconfig in \$(FIP_CONFIG ) ; do \\
181+ FIP_DEPLOYDIR_UBOOT = \$(DEPLOYDIR ) FIP_CONFIG = "\$\$fipconfig" \$(if \$(DEVICE_TREE ), FIP_DEVICETREE = "\$(DEVICE_TREE)" ) \$(FIPTOOLDIR )/fiptool -stm32mp || exit 1 ; \\
182+ done
169183
170184version :
171185 @if test ! -e \$(SRC_PATH )/. scmversion ; then echo \$(UBOOT_LOCALVERSION ) > \$(SRC_PATH )/. scmversion ; fi
0 commit comments