[PATCH v5] Improve handoff prepare on SoCFPGA

Sune Brian briansune at gmail.com
Mon Apr 27 06:33:00 CEST 2026


On Mon, Apr 27, 2026 at 11:09 AM Chee, Tien Fong
<tien.fong.chee at altera.com> wrote:
>
> Hi Brian,
>
> On 23/4/2026 11:23 am, Sune Brian 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.]
> >
> > On Thu, Apr 23, 2026 at 10:20 AM Chee, Tien Fong
> > <tien.fong.chee at altera.com> wrote:
> >> Hi Brian,
> >>
> >>
> >> On 22/4/2026 2:59 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.]
> >>>
> >>> Ensure qts folder header files are properly updated by isolating
> >>> the Python execution environment. This prevents partial or failed
> >>> script runs from corrupting the target directory.
> >>>
> >>> Changelog v4 -> v5:
> >>> - Change HANDOFF_KEEP condition to if [ 2501{HANDOFF_KEEP:-0} != 0 ]
> >>
> >> appears corrupted in the commit message, e.g.:
> >>        if [ 2501{HANDOFF_KEEP:-0} != 0 ]
> >>
> >>
> >>      Please correct this to the actual test (e.g. reference to
> >>      "${HANDOFF_KEEP:-0}" and proper quoting) so 'git log' is accurate.
> >>
> >>
> >>> - Add HANDOFF_KEEP and HANDOFF_PATH comments in config.mk
> >>>
> >>> Changes:
> >>> - Implement a temp folder for Python script execution.
> >>> - Clean temp folder automatically despite execution failures.
> >>> - Gate the file replacement process on the successful exit of
> >>>     the Python scripts.
> >>> - Execute the replacement (with or without keep) only upon script
> >>>     success via the NEW HANDOFF_KEEP=xxx variable.
> >>> - Rename old files to .h.handoff_backup.<timestamp> when the
> >>>     keep option is selected.
> >>>
> >>> Signed-off-by: Brian Sune <briansune at gmail.com>
> >>> ---
> >>>    arch/arm/mach-socfpga/config.mk | 38 ++++++++++++++++++++++++++++++---
> >>>    1 file changed, 35 insertions(+), 3 deletions(-)
> >>>
> >>> diff --git a/arch/arm/mach-socfpga/config.mk b/arch/arm/mach-socfpga/config.mk
> >>> index 1ca1d33cb16..e777b95b528 100644
> >>> --- a/arch/arm/mach-socfpga/config.mk
> >>> +++ b/arch/arm/mach-socfpga/config.mk
> >>> @@ -1,6 +1,17 @@
> >>>    # SPDX-License-Identifier: GPL-2.0+
> >>>    #
> >>>    # Brian Sune <briansune at gmail.com>
> >>> +#
> >>> +# HANDOFF_PATH
> >>> +# ------------
> >>> +# Unset - Board path where qts locates and "hps_isw_handoff" should be placed.
> >>> +# Set   - Custom path points to "hps_isw_handoff" folder.
> >>> +#
> >>> +# HANDOFF_KEEP
> >>> +# ------------
> >>> +# Unset - HANDOFF_KEEP= , Clean header files.
> >>> +# Set   - HANDOFF_KEEP=0, Clean header files.
> >>> +#         HANDOFF_KEEP=1, Backup header files and rename to ".h.handoff_backup.<timestamp>".
> >>
> >> Should be tightened to match the real behaviour:
> >>      - For HANDOFF_KEEP, avoid lines that mix "Unset" and "HANDOFF_KEEP= " in
> >>        a way that is easy to misread. Document:
> >>          unset, empty, or =0  => clean old .h in qts, then install new
> >>          =1 (or any non-0)     => rename old *.h to .h.handoff_backup.<ts>
> >>
> >>
> >>      - For HANDOFF_PATH, a short "unset: auto hps_isw_handoff; set: custom
> >>        handoff path" style note reads clearer than the current phrasing.
> >>
> >>>    ifeq ($(CONFIG_ARCH_SOCFPGA_CYCLONE5),y)
> >>>    archprepare: socfpga_g5_handoff_prepare
> >>> @@ -43,6 +54,27 @@ socfpga_g5_handoff_prepare:
> >>>                           exit 0; \
> >>>                   fi; \
> >>>                   echo "[INFO] Found hiof file: $$HIOF_FILE"; \
> >>> -               echo "[INFO] Running BSP generator..."; \
> >>> -               python3 $(srctree)/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."
> >>> +               echo "[INFO] Try BSP generator..."; \
> >>> +               TEMP_DIR=$$(mktemp -dp "$$BOARD_DIR/"); \
> >>> +               trap 'rm -rf "$$TEMP_DIR"' EXIT; \
> >>> +               if python3 $(srctree)/tools/cv_bsp_generator/cv_bsp_generator.py -i "$$HANDOFF_PATH" -o "$$TEMP_DIR"; then \
> >>> +                       if [ "$${HANDOFF_KEEP:-0}" != "0" ]; then \
> >>> +                               echo "[INFO] Preserving old BSP files..."; \
> >>> +                               TIMESTAMP=$$(date +%Y%m%d_%H%M%S); \
> >>> +                               for f in "$$BOARD_DIR"/qts/*.h; do \
> >>> +                                       [ -e "$$f" ] || continue; \
> >>> +                                       echo "[INFO] $$f -> $${f%.h}.h.handoff_backup.$$TIMESTAMP"; \
> >>> +                                       mv "$$f" "$${f%.h}.h.handoff_backup.$$TIMESTAMP"; \
> >>> +                               done; \
> >>> +                       else \
> >>> +                               echo "[INFO] Clean old BSP files..."; \
> >>> +                               if ls "$$BOARD_DIR/qts"/*.h >/dev/null 2>&1; then \
> >>> +                                       rm "$$BOARD_DIR/qts"/*.h; \
> >>> +                                       echo "[INFO] Removed old BSP files..."; \
> >>> +                               fi; \
> >>> +                       fi; \
> >>> +                       mv "$$TEMP_DIR"/*.h "$$BOARD_DIR"/qts; \
> >>> +                       echo "[INFO] SoCFPGA QTS handoff conversion complete."; \
> >>> +               else \
> >>> +                       echo "[WARN] BSP generator failed!"; \
> >>> +               fi;
> >>> --
> >>> 2.34.1
> >>
> >> You can add Simon and my review tag to a new version.
> >>
> >> I’m fine to proceed with v5 as posted. If you prefer a different
> >> implementation,
> >>
> >> feel free to propose it in a follow‑up patch and we can review it there.
> > Hi T.F.,
> >
> > I committed a new v6 patch just to replace the corrupted " symbol.
> >
> > The version control placing v5 with v5 is not allowed so v6 is used.
> > While the change log kept v4->v5 because code changes are not
> > done under v6.
> > So v6 is a git commit text fix only.
>
>
> I’ve received a few v6 patches on my end. Is this the one you’re
> referring to?
>
> https://patchwork.ozlabs.org/project/uboot/patch/20260423042538.3367-1-briansune@gmail.com/
>
> Thanks.

Please only keep this thank you.
Sorry for the trouble:

Message ID20260423033551.15109-1-briansune at gmail.com

Thanks,
Brian

>
>
> Best regards,
>
> Tien Fong
>
>
>


More information about the U-Boot mailing list