Files
infix/board
Joachim Wiberg 77a7915e1f confd: replace sysrepo-plugind + bootstrap + load with single daemon
On single-core Cortex-A7, the YANG bootstrap and config loading is the
dominant boot bottleneck.  The current sequence spawns three serial
phases (bootstrap, sysrepo-plugind, load), each performing independent
sr_connect()/sr_disconnect() cycles, and every sysrepoctl/sysrepocfg
invocation is a fork+exec that rebuilds SHM from scratch.

Replace all three with a single confd binary that does one sr_connect()
and performs all datastore operations in-process:

 - Wipe stale /dev/shm/sr_* for a clean slate
 - sr_install_factory_config() from the generated JSON
 - Smart migration: compare config version via libjansson, only
   fork+exec the migrate script when versions actually differ
 - Load startup-config (or test-config) via lyd_parse_data() +
   sr_replace_config(), mirroring what sysrepocfg -I does internally
 - On failure: revert to factory-default, load failure-config, set
   login banners (Fail Secure mode)
 - On first boot: copy factory-default to running, export to file
 - dlopen plugins and enter event loop

The bootstrap shell script is split: config generation (gen-hostname,
gen-interfaces, etc.) stays in the new gen-config script, while all
sysrepo operations move into the C daemon.  The finit boot sequence
collapses from 5 stanzas to 2 (gen-config -> confd).

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
2026-03-20 16:18:03 +01:00
..
2026-03-20 16:18:01 +01:00

Board Support

The board support for an architecture always starts with Qemu support, this is what each linux_defconfig at the very least sets up. Then each $BR2_ARCH has additional BSPs, e.g., Banana Pi BPI-R3.

The board/ directory is matched with the configs/*_defconfigs and the only execption is board/common/, which holds all shared files for Infix builds.

Each board/$BR2_ARCH/ can then have vendor/product sub-directories for the BSPs which may contain "fixups" to the base kernel config and any additional device tree files that should be included as well.

To rebuild a board-specific package, e.g. NanoPi R2S:

make friendlyarm-nanopi-r2s-rebuild all