@@ -32,6 +32,7 @@ ARCH=arm
3232CROSS_COMPILE=arm-none-linux-gnueabihf-
3333DEFCONFIG=imx_aes_mainline_defconfig
3434FAST_BUILD=0
35+ DEVICE_TREE=" ${DEFAULT_DEVICE_TREE:- imx6ull-aes} "
3536
3637# Parse arguments
3738for arg in " $@ " ; do
@@ -283,7 +284,7 @@ do_configure() {
283284# Build Linux kernel
284285do_build () {
285286 log_info " Building Linux kernel..."
286- local cmd=" make -C ${LINUX_SRC_DIR} ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} O=${OUTPUT_DIR} -j${NPROC} "
287+ local cmd=" make -C ${LINUX_SRC_DIR} ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} O=${OUTPUT_DIR} -j${NPROC} zImage dtbs "
287288 echo -e " ${YELLOW} [CMD]${NC} ${cmd} "
288289 ${cmd}
289290}
@@ -326,34 +327,44 @@ verify_build_artifacts() {
326327
327328 # 2. Verify zImage (compressed kernel image)
328329 if [ -f " ${OUTPUT_DIR} /arch/arm/boot/zImage" ]; then
329- SIZE=$( stat -c%s ${OUTPUT_DIR} /arch/arm/boot/zImage 2> /dev/null || stat -f%z ${OUTPUT_DIR} /arch/arm/boot/zImage 2> /dev/null)
330+ SIZE=$( stat -c%s " ${OUTPUT_DIR} /arch/arm/boot/zImage" 2> /dev/null || stat -f%z " ${OUTPUT_DIR} /arch/arm/boot/zImage" 2> /dev/null)
330331 log_info " ✓ zImage: ${SIZE} bytes"
331332 else
332333 log_error " ✗ zImage: not found"
333334 has_error=1
334335 fi
335336
336- # 3. Verify .config file
337+ # 3. Verify board DTB
338+ local dtb_path=" ${OUTPUT_DIR} /arch/arm/boot/dts/nxp/imx/${DEVICE_TREE} .dtb"
339+ if [ -f " ${dtb_path} " ]; then
340+ SIZE=$( stat -c%s " ${dtb_path} " 2> /dev/null || stat -f%z " ${dtb_path} " 2> /dev/null)
341+ log_info " ✓ ${DEVICE_TREE} .dtb: ${SIZE} bytes"
342+ else
343+ log_error " ✗ ${DEVICE_TREE} .dtb: not found"
344+ has_error=1
345+ fi
346+
347+ # 4. Verify .config file
337348 if [ -f " ${OUTPUT_DIR} /.config" ]; then
338349 log_info " ✓ .config: present"
339350 else
340351 log_error " ✗ .config: not found"
341352 has_error=1
342353 fi
343354
344- # 4 . Check for System.map
355+ # 5 . Check for System.map
345356 if [ -f " ${OUTPUT_DIR} /System.map" ]; then
346357 log_info " ✓ System.map: present"
347358 else
348359 log_warn " ! System.map: not found (optional)"
349360 fi
350361
351- # 5 . Check for modules directory
362+ # 6 . Check for modules directory
352363 if [ -d " ${OUTPUT_DIR} /modules" ]; then
353364 log_info " ✓ modules: directory present"
354365 fi
355366
356- # 6 . Summary
367+ # 7 . Summary
357368 if [ ${has_error} -eq 0 ]; then
358369 log_info " All build artifacts verified successfully"
359370 return 0
@@ -374,7 +385,7 @@ main() {
374385 # Pre-build checks
375386 check_host_dependencies
376387 check_toolchain
377- check_defconfig
388+ # Note: check_defconfig is called after prepare_defconfig since the file is generated from template
378389
379390 log_info " ========================================"
380391 log_info " All checks passed, starting build..."
@@ -394,6 +405,7 @@ main() {
394405 log_info " Architecture: ${ARCH} "
395406 log_info " Cross Compile: ${CROSS_COMPILE} "
396407 log_info " Defconfig: ${DEFCONFIG} "
408+ log_info " Device Tree: ${DEVICE_TREE} "
397409 log_info " Parallel Jobs: ${NPROC} "
398410 log_info " ========================================"
399411
@@ -413,6 +425,7 @@ main() {
413425 log_info " Kernel artifacts in ${OUTPUT_DIR} :"
414426 [ -f " ${OUTPUT_DIR} /vmlinux" ] && log_info " ✓ vmlinux (ELF kernel)"
415427 [ -f " ${OUTPUT_DIR} /arch/arm/boot/zImage" ] && log_info " ✓ arch/arm/boot/zImage (compressed kernel)"
428+ [ -f " ${OUTPUT_DIR} /arch/arm/boot/dts/nxp/imx/${DEVICE_TREE} .dtb" ] && log_info " ✓ arch/arm/boot/dts/nxp/imx/${DEVICE_TREE} .dtb (device tree)"
416429 [ -f " ${OUTPUT_DIR} /System.map" ] && log_info " ✓ System.map (symbol table)"
417430 [ -f " ${OUTPUT_DIR} /.config" ] && log_info " ✓ .config (kernel configuration)"
418431
0 commit comments