All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/3] Add qoriq-rcw C reimplementation + libmcpp dep
@ 2026-07-01 12:19 Philippe Nunes via buildroot
  2026-07-01 12:19 ` [Buildroot] [PATCH 1/3] package/mcpp: new package Philippe Nunes via buildroot
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Philippe Nunes via buildroot @ 2026-07-01 12:19 UTC (permalink / raw)
  To: buildroot; +Cc: Philippe Nunes

This series adds a host-only C reimplementation of NXP's rcw.py for the
pbiformat=2 QorIQ family (LS1028, LS1088, LS2088, LX2160), packaged as
a reusable library (libqoriq-rcw) and a CLI built on top (qoriq-rcw-c).
The library depends on mcpp (a portable C preprocessor that ships as a
reusable libmcpp) for in-process preprocessing of .rcw sources.

Motivation:

  - The existing host-qoriq-rcw package wraps NXP's rcw.py reference,
    which (a) is slow due to Python startup overhead on every invocation,
    (b) requires host Python at build time, and (c) shells out to
    gcc -E for preprocessing. The C implementation here uses libmcpp
    in-process for hermetic preprocessing and runs ~10x faster on
    typical .rcw inputs.

  - Beyond the rcw.py reference, qoriq-rcw-c adds two recovery features:
      --dump        read live RCW from /dev/mem on a running board
      --dump-flash  recover PBL + PBI from the bootrom slot(s) in
                    NOR / SD / eMMC
    Useful when bringing up a new board or debugging a bad flash.

  - The existing host-qoriq-rcw package is untouched. Users who prefer
    the rcw.py reference can keep using it; the new package is fully
    independent.

Patch breakdown:

  1/3  package/mcpp: new package
       Matsui CPP, a portable C90/C99/C++98 preprocessor with a
       reusable libmcpp. Built host-only with --enable-mcpplib so the
       library + public header are available to other host packages.

  2/3  package/libqoriq-rcw: new package
       Library form of the C reimplementation. host-meson-package,
       depends on host-mcpp. Sets -Dtests=false and -Dman=disabled:
       the tests/ subdir links libcmocka (only validates library
       internals, never executed by Buildroot), and the man-page
       step requires pandoc. Both options were added upstream (v1.0.1
       for 'tests', v1.0.2 for 'man') specifically to support
       distro/Buildroot packaging.

  3/3  package/qoriq-rcw-c: new package
       CLI on top of libqoriq-rcw. host-meson-package, depends on
       host-libqoriq-rcw (transitively pulling in host-mcpp). Also
       sets -Dman=disabled; the option landed upstream in v1.0.1.

Naming note: the upstream project is just called "qoriq-rcw"; the "-c"
suffix on the Buildroot package name is purely a disambiguator from
the existing host-qoriq-rcw package (which is the rcw.py wrapper).
The installed binary itself is still named qoriq-rcw.

Tested:
  - check-package clean on all files (0 warnings).
  - End-to-end build of host-qoriq-rcw-c succeeds against the real
    upstream tarballs (mcpp 2.7.2 from SourceForge, libqoriq-rcw 1.0.2
    and qoriq-rcw 1.0.1 from GitHub).
  - 'qoriq-rcw --help' runs from host/bin/, .rcwi data files install
    cleanly under host/share/qoriq-rcw/.
  - Fork CI test-pkg matrix (32 toolchains), all green:
    https://gitlab.com/evAdopter/buildroot/-/pipelines/2641099395

Philippe Nunes (3):
  package/mcpp: new package
  package/libqoriq-rcw: new package
  package/qoriq-rcw-c: new package

 DEVELOPERS                             |  5 +++++
 package/Config.in.host                 |  3 +++
 package/libqoriq-rcw/Config.in.host    | 14 +++++++++++++
 package/libqoriq-rcw/libqoriq-rcw.hash |  5 +++++
 package/libqoriq-rcw/libqoriq-rcw.mk   | 27 ++++++++++++++++++++++++++
 package/mcpp/Config.in.host            |  9 +++++++++
 package/mcpp/mcpp.hash                 |  5 +++++
 package/mcpp/mcpp.mk                   | 18 +++++++++++++++++
 package/qoriq-rcw-c/Config.in.host     | 19 ++++++++++++++++++
 package/qoriq-rcw-c/qoriq-rcw-c.hash   |  5 +++++
 package/qoriq-rcw-c/qoriq-rcw-c.mk     | 25 ++++++++++++++++++++++++
 11 files changed, 135 insertions(+)
 create mode 100644 package/libqoriq-rcw/Config.in.host
 create mode 100644 package/libqoriq-rcw/libqoriq-rcw.hash
 create mode 100644 package/libqoriq-rcw/libqoriq-rcw.mk
 create mode 100644 package/mcpp/Config.in.host
 create mode 100644 package/mcpp/mcpp.hash
 create mode 100644 package/mcpp/mcpp.mk
 create mode 100644 package/qoriq-rcw-c/Config.in.host
 create mode 100644 package/qoriq-rcw-c/qoriq-rcw-c.hash
 create mode 100644 package/qoriq-rcw-c/qoriq-rcw-c.mk

-- 
2.50.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2026-07-07 16:10 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-01 12:19 [Buildroot] [PATCH 0/3] Add qoriq-rcw C reimplementation + libmcpp dep Philippe Nunes via buildroot
2026-07-01 12:19 ` [Buildroot] [PATCH 1/3] package/mcpp: new package Philippe Nunes via buildroot
2026-07-06  8:23   ` Vincent Jardin via buildroot
2026-07-06 15:49     ` Philippe Nunes via buildroot
2026-07-01 12:19 ` [Buildroot] [PATCH 2/3] package/libqoriq-rcw: " Philippe Nunes via buildroot
2026-07-06  8:19   ` Vincent Jardin via buildroot
2026-07-06 15:56     ` Philippe Nunes via buildroot
2026-07-01 12:19 ` [Buildroot] [PATCH 3/3] package/qoriq-rcw-c: " Philippe Nunes via buildroot
2026-07-06  8:15   ` Vincent Jardin via buildroot
2026-07-06 16:04     ` Philippe Nunes via buildroot
2026-07-07 16:09 ` [Buildroot] [PATCH v2 0/3] Add qoriq-rcw C reimplementation + libmcpp dep Philippe Nunes via buildroot
2026-07-07 16:09   ` [Buildroot] [PATCH v2 1/3] package/mcpp: new package Philippe Nunes via buildroot
2026-07-07 16:09   ` [Buildroot] [PATCH v2 2/3] package/libqoriq-rcw: " Philippe Nunes via buildroot
2026-07-07 16:10   ` [Buildroot] [PATCH v2 3/3] package/qoriq-rcw-c: " Philippe Nunes via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.