On Sat, Nov 01, 2025 at 11:52:52AM +0800, Brian Sune wrote:

> Added new make command to support
> Altera GEN5 SoCFPGA handoff conversion.
> The new make qts_handoff_gen will use
> two parameters QTS_DIR and HANDOFF_DIR.
> Checking is done via .config SoCFPGA
> family selection and directory existency.
> 
> Signed-off-by: Brian Sune <[email protected]>
> ---
>  Makefile | 42 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
> 
> diff --git a/Makefile b/Makefile
> index 750f8a84b1f..74474368413 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -484,6 +484,48 @@ CFLAGS_KERNEL    =
>  AFLAGS_KERNEL        =
>  LDFLAGS_vmlinux =
>  
> +# Intel-Altera Gen5 SoCFPGA QTS Handoff generator target (detect SoC from 
> .config)
> +QTS_HANDOFF_GEN_PY  := $(CURDIR)/tools/cv_bsp_generator/cv_bsp_generator.py
> +
> +# Detect SOC family from .config
> +SOC_FAMILY := $(shell \
> +     if grep -q '^CONFIG_TARGET_SOCFPGA_CYCLONE5=y' .config; then \
> +             echo cyclone5; \
> +     elif grep -q '^CONFIG_TARGET_SOCFPGA_ARRIA5=y' .config; then \
> +             echo arria5; \
> +     elif grep -q '^CONFIG_TARGET_SOCFPGA_ARRIA10=y' .config; then \
> +             echo arria10; \
> +     else \
> +             echo unknown; \
> +     fi)
> +
> +.PHONY: qts_handoff_gen
> +qts_handoff_gen:
> +     @if [ ! -f .config ]; then \
> +             echo "Error: .config not found. Run 'make <defconfig>' first."; 
> \
> +             exit 1; \
> +     fi
> +     @if [ "$(SOC_FAMILY)" = "unknown" ]; then \
> +             echo "Error: Could not detect SoCFPGA family from .config"; \
> +             exit 1; \
> +     fi
> +     @if [ ! -d "$(HANDOFF_DIR)" ]; then \
> +             echo "Error: handoff directory '$(HANDOFF_DIR)' does not 
> exist."; \
> +             exit 1; \
> +     fi
> +     @if [ -z "$(QTS_DIR)" ]; then \
> +             echo "Error: QTS_DIR is not defined."; \
> +             exit 1; \
> +     fi
> +     @if [ ! -d "$(CURDIR)/board/$(QTS_DIR)/qts" ]; then \
> +             echo "Creating QTS output directory: 
> $(CURDIR)/board/$(QTS_DIR)/qts"; \
> +             exit 1; \
> +     fi
> +     @echo "=== Detected SoCFPGA family: $(SOC_FAMILY) ==="
> +     @echo "=== Generating BSP to $(CURDIR)/board/$(QTS_DIR)/qts ==="
> +     python3 $(QTS_HANDOFF_GEN_PY) -i $(HANDOFF_DIR) -o 
> $(CURDIR)/board/$(QTS_DIR)/qts
> +     @echo "=== QTS generation complete ==="
> +
>  # Use USERINCLUDE when you must reference the UAPI directories only.
>  USERINCLUDE    := \
>               -I$(srctree)/arch/$(SRCARCH)/include/uapi \

OK. I was hoping that we could just automate as part of the regular
build process seeing for example $(BOARD)/foo.xml and invoking the
script to re-create foo.c and so forth, but that doesn't seem to be the
case. So, no Makefile logic. We should then instead start on some
content for doc/board/socfpga/ and document this tool there. Thanks!

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to