[PATCH v5] Improve handoff prepare on SoCFPGA
Sune Brian
briansune at gmail.com
Thu Apr 23 05:23:36 CEST 2026
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.
Thanks,
Brian
>
>
> Best regards,
>
> Tien Fong
>
More information about the U-Boot
mailing list