Skip to content

Complete build systems revised

Andre Pinho requested to merge 69-build-atf-embeddedsw into master

Following #61 (closed), #69 (closed), internal discussions, DI/OT developers meeting #1 and the previous MR !89 (merged), in this MR I present notable improvements to the remaining build infrastructure of the DI/OT System Board boot image repository.

General:

  • All build systems are now granular and incremental
  • For consistency with !89 (merged), the build systems now contain the cleaning rules: clean, mrproper and distclean.
  • Removed reference to absolute paths (variable OUTPUT_DIR) in favor of relative paths PRJ_BUILD_DIR and BUILD_DIR
  • All build systems now build to a self-titled subfolder inside the build directory (behavior already present on the gateware subproject)
  • All build systems track the output artifacts, opposed to relying on phony targets
  • Extensive use of sentinel files to track repository cloning and several stages of project compilation
  • Removed BASH_CMD variable
  • General cleanup and improvement of the make systems

ATF:

  • Use of sentinels to track the cloning of Xillinx ATF repository
  • Proper tracking of output artifact

EmbeddedSW:

  • Proper tracking of incoming XSA artifact and output FSBL and PMUFW artifacts
  • Use of sentinels to track the cloning of Xilinx EmbeddedSW repository
  • When XSA is not present, it now triggers gateware generation
  • Tracking of FSBL/PMUFW source files for out-of-date compilation detection
  • 'Smart' analysis of patch files for both FSBL and PMUFW to resolve files to be patched
  • Use of sentinels to track whether sources are in need of patching
  • Use of git to reset source files for repatching, if needed

U-boot:

  • Proper tracking of source files and DIOT-specific configurations
  • Use of sentinels to track the cloning of Xilinx U-boot repository
  • 'Smart' analysis of patch files to resolve files to be patched
  • Use of sentinels to track whether sources are in need of patching
  • Use of git to reset source files for repatching, if needed
  • Interface with the internal U-boot build system rules using the top level rules uboot-*
  • Slightly modified duplicate copy of the Xillinx device-tree Makefile was converted into a diff patch

Bootbin:

  • Proper tracking of incoming artifacts and their dependability on the output artifact
  • Capable of calling build system of non-existing incoming artifacts
  • Capable of being prompted to call all build system (FORCE flag), even if targets exist (useful for checking if any source of any incoming target was updated)
  • All artifacts and targets now reside inside a project build folder

Devicetree:

  • Proper tracking of incoming XSA artifact and output device tree artifacts
  • When XSA is not present, it now triggers gateware generation
  • Use of sentinels on cloning Xilinx device tree repository
  • Use of sentinels to track the creation of output device tree artifacts
  • All the sources from Xilinx repository and DIOT specifics files are now tracked

CI:

  • Bootbin target paths were properly changed to accommodate the change of bootbin target folder
Edited by Andre Pinho

Merge request reports

Loading