Skip to content

R2S Plus-support (with regressionstest) - #1589

Open
pjator wants to merge 3 commits into
kernelkit:mainfrom
pjator:nanopi-r2s-plus
Open

R2S Plus-support (with regressionstest)#1589
pjator wants to merge 3 commits into
kernelkit:mainfrom
pjator:nanopi-r2s-plus

Conversation

@pjator

@pjator pjator commented Aug 14, 2026

Copy link
Copy Markdown

Description

Add support for the NanoPi R2S Plus, which adds an on-board 32 GB eMMC
to the plain R2S. The SoC, DRAM and network layout are identical to the
R2S — the only difference is the eMMC, so this is a superset variant
rather than a separate board.

Changes:

  • Device tree: add rk3328-nanopi-r2s-plus.dts, wrapping the
    kernel's rk3328-nanopi-r2s-plus (which builds on the shared
    rk3328-nanopi-r2s.dtsi), and list both .dtbs in dts/Makefile,
    following the bpi-r3 pattern. The wrapper overrides the top-level
    compatible to friendlyarm,nanopi-r2s, so the Plus shares the R2S
    product configuration — no separate product directory is needed.

  • U-Boot DT selection: the R2S had no fdtfile/ixvariant
    mechanism, so U-Boot always loaded the plain r2s DT and the kernel
    never saw the eMMC. Add ixvariant (bpi-r4 pattern) that selects
    the plus DT when mmc0 (eMMC) is present, falling back to the r2s
    DT otherwise.

  • ChangeLog: entry under v26.08.0.

Regression Testing (Infamy, physical hardware)

Ran against the NanoPi R2S Plus in test mode
(touch /mnt/aux/test-mode && reboot), using the official Infamy
test suite with a single-DUT topology (controller host + target):

  • case/hardware/watchdog: 6/6 pass — watchdog tripped on an
    injected hard lockup (all cores, IRQs disabled) and rebooted the
    system back to a working state
  • case/system (hostname, add/delete user, admin user, NACM,
    timezone x2, schedule reboot): 7/7 pass
  • case/system/factory_config: skipped in test mode by design (test
    mode always boots the test config, never the factory config)
  • case/system/upgrade: not run (requires a data port not wired in
    this lab setup)

Found and worked around an upstream bug in the test harness while
running these tests (Topology.get_password() qstrip NameError) —
fixed in a separate PR (#1588).

Checklist

Tick relevant boxes, this PR is-a or has-a:

  • Bugfix
    • Regression tests
    • ChangeLog updates (for next release)
  • Feature
    • YANG model change => revision updated?
    • Regression tests added?
    • ChangeLog updates (for next release)
    • Documentation added?
  • Test changes
    • Checked in changed Readme.adoc (make test-spec)
    • Added new test to group Readme.adoc and yaml file
  • Code style update (formatting, renaming)
  • Refactoring (please detail in commit messages)
  • Build related changes
  • Documentation content changes
    • ChangeLog updated (for major changes)
  • Other (please describe):

Disclaimer: Author: Peter Woxblom. Drafting and implementation assisted
by Jarvis, an AI agent (Hermes on DeepSeek V4 Flash backend). Reviewed
and tested on hardware by the author.

pjator and others added 3 commits August 14, 2026 07:30
…ort)

The R2S Plus adds an on-board 32 GB eMMC to the R2S.  Add a dedicated
device tree wrapping the kernel's rk3328-nanopi-r2s-plus (which builds
on the shared rk3328-nanopi-r2s.dtsi) and list both .dtbs in dts/Makefile,
following the bpi-r3 pattern.

The wrapper overrides the top-level compatible to "friendlyarm,nanopi-r2s"
so the Plus shares the R2S product configuration (the eMMC controller is
simply absent/empty on the plain R2S).

Co-authored-by: Jarvis (Hermes Agent) <jarvis@woxblom.com>
The R2S Plus has an on-board eMMC (mmc0) while the plain R2S does
not.  U-Boot previously had no ixvariant/fdtfile mechanism, so it
always loaded rk3328-nanopi-r2s.dtb -- which lacks the eMMC node --
causing the kernel to hang waiting for root=PARTLABEL=secondary.

Set ixvariant to pick the plus DT when mmc0 is present, following
the bpi-r4 pattern.

(cherry picked from commit d3bde23143827ba02998be958c20cb32a54c2761)
Co-authored-by: Jarvis (Hermes Agent) <jarvis@woxblom.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant