Hi Brian,

On 27/11/2025 11:18 am, Chee, Tien Fong wrote:

On 19/11/2025 7:16 pm, Brian Sune wrote:
[CAUTION: This email is from outside your organization. Unless you trust the sender, do not click on links or open attachments as it may be a fraudulent email attempting to steal your information and/or compromise your computer.]

Add optimized Makefile support for SoCFPGA handoff

- Introduce socfpga_g5_handoff_prepare target in U-Boot
   arch/arm/mach-socfpga/config.mk
- Users can convert the handoff via make prepare.
- Detects Altera/Intel SoCFPGA boards from .config
- Combines vendor/board extraction into a single shell call
- Checks for hps_isw_handoff folder and .hiof files
- Uses ls -d instead of find for faster folder detection
- Runs BSP generator script only if files exist
- Non-blocking: continues if handoff folder or files are missing
- HANDOFF_PATH user define allows overriding auto-detected folder
- Minimizes subshells and other slow constructs for faster CI

Signed-off-by: Brian Sune <[email protected]>
---
  arch/arm/mach-socfpga/config.mk | 50 +++++++++++++++++++++++++++++++++
  1 file changed, 50 insertions(+)
  create mode 100644 arch/arm/mach-socfpga/config.mk

diff --git a/arch/arm/mach-socfpga/config.mk b/arch/arm/mach-socfpga/config.mk
new file mode 100644
index 00000000000..df1eb909129
--- /dev/null
+++ b/arch/arm/mach-socfpga/config.mk
@@ -0,0 +1,50 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# Brian Sune <[email protected]>
+
+ifeq ($(CONFIG_TARGET_SOCFPGA_CYCLONE5),y)
+archprepare: socfpga_g5_handoff_prepare
+else ifeq ($(CONFIG_TARGET_SOCFPGA_ARRIA5),y)
+archprepare: socfpga_g5_handoff_prepare
+endif
+
+socfpga_g5_handoff_prepare:
+       @SOCFAMILY="$(SOCFAMILY)"; \
+               if [ -z "$$SOCFAMILY" ]; then \
+                       exit 0; \
+               fi; \
+               echo "[INFO] SOC family detected: $$SOCFAMILY";
+               @set -- $$(awk -F'"' ' \
+                   /^CONFIG_SYS_VENDOR=/ {v=$$2} \
+                   /^CONFIG_SYS_BOARD=/ {b=$$2} \
+                   END {print v, b}' .config); \
+               VENDOR=$$1; \
+               BOARD=$$2; \
+               if [ -z "$$VENDOR" ] || [ -z "$$BOARD" ]; then \
+                       exit 0; \
+               fi; \
+               BOARD_DIR=$(src)/board/$$VENDOR/$$BOARD; \
+               if [ "$$HANDOFF_PATH" ]; then \
+                       echo "[INFO] Using manually specified handoff folder: $$HANDOFF_PATH"; \
+               else \
+ HANDOFF_BASE=$$BOARD_DIR/hps_isw_handoff; \
+                       if [ ! -d "$$HANDOFF_BASE" ]; then \
+                               exit 0; \
+                       fi; \
+                       HANDOFF_PATH=$$(ls -d "$$HANDOFF_BASE"/*/ 2>/dev/null | head -n1); \
+                       if [ -z "$$HANDOFF_PATH" ]; then \
+                               exit 0; \
+                       fi; \
+                       echo "[INFO] Auto-detected handoff folder: $$HANDOFF_PATH"; \
+               fi; \
+               HIOF_FILE=$$HANDOFF_PATH/$$(basename $$HANDOFF_PATH).hiof; \
+               if [ ! -f "$$HIOF_FILE" ]; then \
+                       echo "[WARN] No .hiof file found in $$HANDOFF_PATH, skipping BSP generation."; \
+                       exit 0; \
+               fi; \
+               echo "[INFO] Found hiof file: $$HIOF_FILE"; \
+               echo "[INFO] Running BSP generator..."; \
+               python3 $(src)/tools/cv_bsp_generator/cv_bsp_generator.py -i "$$HANDOFF_PATH" -o "$$BOARD_DIR/qts" || echo "[WARN] BSP generator failed, continuing..."; \
+               echo "[DONE] SoCFPGA QTS handoff conversion complete."


I tried applying it onto the latest main branch using:
    git am -3 < v8-Add-optimized-Makefile-support-for-SoCFPGA-handoff.patch

However, the application fails with :
   Applying: Add optimized Makefile support for SoCFPGA handoff
   error: corrupt patch at line 61
   error: could not build fake ancestor
   Patch failed at 0001 Add optimized Makefile support for SoCFPGA handoff

It looks like the patch file may have been corrupted during generation or transmission (possibly formatting or mbox header issues).

Could you please resend the patch in clean git format-patch (mbox) format so that I can apply and submit for PR.


Thanks.
Tien Fong



Reply via email to