[PATCH v3] Add make feature support for SoCFPGA Handoff
Brian Sune
briansune at gmail.com
Mon Nov 3 23:28:40 CET 2025
Introduce socfpga_gen5_handoff_prepare target in U-Boot Makefile
Automatically detects Altera/Intel SoCFPGA boards from .config
Checks for presence of hps_isw_handoff folder and .hiof files
Runs BSP generator script tools/cv_bsp_generator/cv_bsp_generator.py
if files exist.
Non-blocking: prepare continues even if handoff folder or files are missing
Signed-off-by: Brian Sune <briansune at gmail.com>
---
Makefile | 41 +++++++++++++++++++++++++++++++++++++++--
1 file changed, 39 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 750f8a84b1f..32568a6c477 100644
--- a/Makefile
+++ b/Makefile
@@ -2158,7 +2158,7 @@ scripts: scripts_basic scripts_dtc
# archprepare is used in arch Makefiles and when processed asm symlink,
# version.h and scripts_basic is processed / created.
-PHONY += prepare archprepare prepare1 prepare3
+PHONY += prepare archprepare prepare1 prepare3 socfpga_g5_hanoff_prepare
# prepare3 is used to check if we are building in a separate output directory,
# and if so do:
@@ -2190,8 +2190,45 @@ archprepare: prepare1 scripts
prepare0: archprepare
$(Q)$(MAKE) $(build)=.
+# Intel-Altera SoCFPGA GEN5 prepare handoff file conversion
+socfpga_g5_hanoff_prepare:
+ @VENDOR=$$(grep -E '^CONFIG_SYS_VENDOR=' .config | cut -d'"' -f2); \
+ BOARD=$$(grep -E '^CONFIG_SYS_BOARD=' .config | cut -d'"' -f2); \
+ if [ -z "$$VENDOR" ] || [ -z "$$BOARD" ]; then \
+ exit 0; \
+ fi; \
+ if grep -q 'CONFIG_TARGET_SOCFPGA_CYCLONE5=y' .config; then \
+ SOCFAMILY=cyclone5; \
+ elif grep -q 'CONFIG_TARGET_SOCFPGA_ARRIA5=y' .config; then \
+ SOCFAMILY=arria5; \
+ elif grep -q 'CONFIG_TARGET_SOCFPGA_ARRIA10=y' .config; then \
+ SOCFAMILY=arria10; \
+ else \
+ exit 0; \
+ fi; \
+ BOARD_DIR=board/$$VENDOR/$$BOARD; \
+ HANDOFF_BASE=$$BOARD_DIR/hps_isw_handoff; \
+ if [ ! -d $$HANDOFF_BASE ]; then \
+ exit 0; \
+ fi; \
+ echo "[INFO] Handoff folder found: $$HANDOFF_BASE"; \
+ HANDOFF_FOLDER_NAME=$$(basename "$$(find $$HANDOFF_BASE -mindepth 1 -maxdepth 1 -type d | head -n1)"); \
+ if [ -z "$$HANDOFF_FOLDER_NAME" ]; then \
+ exit 0; \
+ fi; \
+ echo "[INFO] Handoff subfolder found under $$HANDOFF_BASE"; \
+ if [ -f $$HANDOFF_BASE/$$HANDOFF_FOLDER_NAME/$$HANDOFF_FOLDER_NAME.hiof ]; then \
+ echo "[INFO] Found hiof file: $$HANDOFF_BASE/$$HANDOFF_FOLDER_NAME/$$HANDOFF_FOLDER_NAME.hiof"; \
+ echo "[INFO] Using handoff folder: $$HANDOFF_FOLDER_NAME"; \
+ echo "[INFO] Running BSP generator..."; \
+ fi; \
+ python3 tools/cv_bsp_generator/cv_bsp_generator.py \
+ -i $$BOARD_DIR/hps_isw_handoff/$$HANDOFF_FOLDER_NAME \
+ -o $$BOARD_DIR/qts || echo "[WARN] BSP generator failed, continuing..."; \
+ echo "[DONE] SoCFPGA QTS handoff conversion complete."
+
# All the preparing..
-prepare: prepare0 prepare-objtool
+prepare: prepare0 prepare-objtool socfpga_g5_hanoff_prepare
# Support for using generic headers in asm-generic
asm-generic := -f $(srctree)/scripts/Makefile.asm-generic obj
--
2.25.1
More information about the U-Boot
mailing list