Releases: smartobjectoriented/so3
Release list
SO3 v6.2.3
Bug-fix release on the 6.2 series.
Fixed
-
avz: gate the S3C_CPU paths on CONFIG_SOO (#291). In a non-SOO AVZ build the guest runs on ALL CPUs, including the CPU that SOO reserves for capsules. Two paths still keyed their behavior on the CPU number alone:
gic_handle_dist_access()discarded every distributor access trapped from CPU 3. On platforms where the GICD is trapped for the whole agency (verdin-imx8mp unmaps the GICD page from Stage-2), any interrupt the guest enabled or routed from CPU 3 was silently lost — minutes-long boot stalls and DRMflip_done/vblank timeout storms.arm_timer_isr()/avz_el2_timer_tick()ran the capsule tick path on CPU 3.
Both are now gated on
CONFIG_SOO; SOO builds are unchanged.
Validated on Verdin iMX8MP hardware (EDGE-M1 bsp-linux/fc, AVZ + Linux 6.6 agency).
SO3 v6.2.2
What's Changed
- doc: document the release process and fix broken image links by @daniel-rossier in #280
- doc: clarify which fixes belong on a release branch by @daniel-rossier in #281
- doc: list the maintenance branches in the README by @daniel-rossier in #282
- doc: trim the introduction and release-process pages by @daniel-rossier in #283
- chore: drop standalone build remnants by @daniel-rossier in #284
- rpi4_64: restore the platform — standalone Linux and SMP Linux agency on AVZ by @daniel-rossier in #285
- rpi4_64: SOO mode with SO3 capsule injection on a 3-CPU SMP agency by @daniel-rossier in #286
- virt64: 3-CPU SMP agency by @daniel-rossier in #289
- soo: single generic agency patch set shared by all kernels by @daniel-rossier in #288
- Release prep v6.2.2: git-derived boot-banner version + version bump by @daniel-rossier in #290
Full Changelog: v6.2.1...v6.2.2
SO3 v6.2.1
What's Changed
- fix(soo): finish the ME -> S3C rename in user-visible strings (v6.2.1-rc) by @daniel-rossier in #277
- fix(rpi4_64): make the Linux-agency AVZ boot chain buildable by @daniel-rossier in #278
- rootfs: harmonize the two-stage initrd on the /init pivot model (arm64) by @daniel-rossier in #279
Full Changelog: v6.2.0...v6.2.1
SO3 v6.2.0
SO3 6.2.0 is a major release: the build system moved to Infrabase (BitBake)
and the SO3 Capsule (S3C) stack now runs its full lifecycle on QEMU virt64.
Build system — Infrabase (BitBake)
- The whole build/deploy flow migrated to the Infrabase layered BitBake system
(build/,scripts/,env.sh):bsp-so3(standalone),bsp-linux
(AVZ + Linux agency),bsp-capsules(SO3 capsules). - In-tree vs fetch policy:
so3(kernel/usr) builds in-tree;avz,u-boot,
qemuare fetched. Theavzrecipe now always builds from the tip ofmain
(no manualSRCREVbump). - MUSL toolchain built by a recipe; per-platform config/ITS selection
(virt64/virt32/rpi4_64); soft/hard/http storage modes. - Boot chains: bare U-Boot (EL1/EL2), ATF+U-Boot, and ATF+OP-TEE (
full).
SO3 Capsule (S3C)
- ME → S3C rename completed across kernel, agency patches, DTS, vbstore
namespaces and the userspace tools (s3c-inject/s3c-save/s3c-restore
/s3c-shutdown/s3c-list); the migration notion was removed
(snapshot + injection remain). - Full capsule lifecycle validated on virt64 (AVZ + Linux agency):
inject → save → shutdown → restore, multiple concurrent capsules, with the
vuart / vlogs backends. Highlights of the fixes that got it there:- deliver the periodic tick to capsule domains and isolate their GIC state;
- walk the stage-2 grant / vbstore mappings from the L0 root (SL0=L1 VTCR);
- size the capsule slot for the 128 MB image and grow the agency CMA pool;
- a vuart-backend heap-corruption fix; and a snapshot-resume time-scale fix
that removes a softirq livelock on resume.
Platforms
- QEMU virt64 (aarch64) and virt32 (arm) standalone; rpi4_64 and
verdin-imx8mp targets present. LVGL (release/v9.3) integration.
Docs
- Documentation and logo refresh; lowercase image assets.
Full changelog: v6.1.0...v6.2.0
SO3 v5.4.1
SO3 v5.4.1 — graphics and networking support.
- Added support for LVGL (https://lvgl.io) (early stage)
- Added support for
gettimeofday()andclock_gettime() - New scheduling policy based on dynamic priorities
- Added support for networking based on lwIP (early stage)
Retroactively tagged (v5.4.1 at the CHANGELOG "v2021.4.1" commit, 29 Jan 2021, renumbered from the old date-based scheme) and published as a GitHub release; notes taken from CHANGELOG.
SO3 v5.4.0
SO3 v5.4.0 — major changes at the system and device level.
- Improvements of FDT parsing and file organization
- Revisited device model based on
devclasswith private structure - Improvements of initcall processing, adding
post_initcall - Fixed numerous bugs in cache handling, especially on Cortex-A72
- Simplified model of the MMU configuration at bootstrap
- Added support of Raspberry Pi 4 Sense-HAT extension
- Added post-init initcall for late initialization
- 64 KB stack size for all threads
- Fixed bugs related to process loading and page-list management
- Fixed bugs in frame-table management
Retroactively tagged (v5.4.0, formerly v2021.4.0) and published as a GitHub release; notes taken from CHANGELOG.
SO3 v6.1.0
SO3 6.1.0 is the last stable release before the move to the Infrabase (BitBake)
build system in 6.2.0. It gathers ~4.5 years of work since v2021_4_0
(Jan 2021), the headline being first-class integration with the AVZ
hypervisor and the SOO capsule paradigm.
Virtualization — AVZ & SOO
- Adaptation of SO3 to run as a guest on the AVZ hypervisor, and AVZ
configuration/build integration into the SO3 tree. - The SOO capsule paradigm (replacing the former Mobile Entity / ME):
SO3 capsules injected and managed at runtime, with the vbus/vbstore
back/front virtual driver model (vuart, vlogs, …). - Hooks to support Portainer-driven tasks on top of AVZ.
Graphics & user space
- LVGL updated to v9.3, with demo, performance-test and benchmark
applications; framebuffer support on QEMU virt. - New init / shell program and user-space improvements.
- C library additions: setjmp / longjmp,
clocksupport, earlier
gettimeofday()/clock_gettime().
System & platforms
- Robustness fixes in MMU configuration, cache handling (notably Cortex-A72),
spinlock alignment on aarch64, VFS and process/frame-table management. - Device model, FDT parsing and initcall improvements carried forward.
- Targets: QEMU virt32 / virt64, Raspberry Pi 4 (incl. Sense-HAT).
- New version scheme (leading to the
6.xnumbering).
Tooling
- CI / Docker images for LVGL performance testing; clang-format style
enforcement.
Full changelog: v2021_4_0...v6.1.0