Skip to content

Releases: smartobjectoriented/so3

SO3 v6.2.3

Choose a tag to compare

@daniel-rossier daniel-rossier released this 15 Jul 14:23
36dc1db

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 DRM flip_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

Choose a tag to compare

@daniel-rossier daniel-rossier released this 15 Jul 09:32
c52c242

What's Changed

Full Changelog: v6.2.1...v6.2.2

SO3 v6.2.1

Choose a tag to compare

@daniel-rossier daniel-rossier released this 12 Jul 11:58
bef05d9

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

Choose a tag to compare

@daniel-rossier daniel-rossier released this 09 Jul 11:17
c600171

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,
    qemu are fetched. The avz recipe now always builds from the tip of main
    (no manual SRCREV bump).
  • 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

Choose a tag to compare

@daniel-rossier daniel-rossier released this 09 Jul 11:30

SO3 v5.4.1 — graphics and networking support.

  • Added support for LVGL (https://lvgl.io) (early stage)
  • Added support for gettimeofday() and clock_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

Choose a tag to compare

@daniel-rossier daniel-rossier released this 09 Jul 11:30

SO3 v5.4.0 — major changes at the system and device level.

  • Improvements of FDT parsing and file organization
  • Revisited device model based on devclass with 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

Choose a tag to compare

@daniel-rossier daniel-rossier released this 09 Jul 11:17

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, clock support, 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.x numbering).

Tooling

  • CI / Docker images for LVGL performance testing; clang-format style
    enforcement.

Full changelog: v2021_4_0...v6.1.0