Skip to content

Add Walnut Pi Box (CM1) and 1B DDR3 variant - #10342

Merged
igorpecovnik merged 17 commits into
armbian:mainfrom
TallGuy74:walnutpi-box-and-1b-ddr3
Aug 9, 2026
Merged

Add Walnut Pi Box (CM1) and 1B DDR3 variant#10342
igorpecovnik merged 17 commits into
armbian:mainfrom
TallGuy74:walnutpi-box-and-1b-ddr3

Conversation

@TallGuy74

@TallGuy74 TallGuy74 commented Aug 5, 2026

Copy link
Copy Markdown

Summary

Stacked on #10341 (only the last commit is new here; the rest merges with that PR):

  • walnutpi-box — CM1 compute module on the Box IO carrier (eMMC, HDMI, 100M Ethernet, 2x USB-A, carrier LED/key). Includes ssd130x DRM support (new kernel config modules) and a walnutpi-box-oled overlay for the carrier's 0.96" SSD1306 header.
  • walnutpi-1b-ddr3 — early 1B revision with 2x 512MB DDR3 (vendor schematic v1.0), using the upstream-proven H616 DDR3-1333 profile. Current-production 1GB boards are LPDDR4 and use walnutpi-1b.

Testing

Build-tested; Box hardware bring-up pending, DDR3 revision untested.

Summary by CodeRabbit

  • New Features
    • Added support for Walnut Pi 1B, 1B DDR3, Box, CM1, and ZeroW H618 boards.
    • Added bootloader, kernel, storage, USB, networking, wireless, Bluetooth, and power-management support.
    • Added optional OLED display support for Walnut Pi Box.
    • Added ZeroW expansion-board support for Ethernet, USB, audio, and infrared peripherals.
    • Added SSD130X display support to supported kernels.
    • Added board-specific boot configuration, device support, and status indicators.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

Auto reviews are limited based on label configuration.

🏷️ Required labels (at least one) (1)
  • Needs review

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: a46ce9e4-edeb-465f-8561-a17804dd0e79

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds support for four Allwinner H618 Walnut Pi boards. The change adds board metadata, Linux device trees and overlays for kernel 6.18 and 7.0, SSD130X modules, and U-Boot device trees and defconfigs.

Changes

Walnut Pi H618 platform support

Layer / File(s) Summary
Board and kernel build integration
config/boards/walnutpi-*.csc, config/kernel/linux-sunxi64-*.config
Adds four board definitions and enables modular SSD130X DRM and I2C support.
Linux H618 device trees
patch/kernel/archive/sunxi-{6.18,7.0}/dt_64/*walnutpi*
Adds shared H618 hardware definitions and board-specific settings for storage, regulators, USB, Ethernet, audio, IR, HDMI, LEDs, and console devices.
Peripheral device-tree overlays
patch/kernel/archive/sunxi-{6.18,7.0}/overlay_64/*walnutpi*
Adds build entries and overlays for the Walnut Pi Box OLED and ZeroW expansion hardware.
U-Boot board support
patch/u-boot/v2026.07-sunxi64/board_walnutpi-*/*
Adds U-Boot device trees and defconfigs for Walnut Pi 1B, 1B DDR3, Box, and ZeroW, including DRAM, PMIC, storage, USB, and peripheral settings.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Suggested labels: BSP

Suggested reviewers: pyavitz, igorpecovnik, johnthecoolingfan

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the primary additions: Walnut Pi Box (CM1) support and the Walnut Pi 1B DDR3 variant.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added size/large PR with 250 lines or more 08 Milestone: Third quarter release Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... labels Aug 5, 2026
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

🚫 Missing required board assets

This PR adds new board configuration(s). Required assets must already exist in github/armbian/armbian.github.io.
They are required by Armbian Imager to ensure all boards are displayed with proper images.

  • Board images: board-images/<board>.png (1920x1080 px transparent)
  • Vendor logos: board-vendor-logos/<vendor>-logo.png (512x512 px transparent)

Missing items

  • Board image missing for walnutpi-1b-ddr3

    • Expected: board-images/walnutpi-1b-ddr3.png
    • Fix: add the file to armbian/armbian.github.io (folder board-images/)
  • Vendor logo missing for vendor walnutpi (used by board walnutpi-1b-ddr3)

    • Expected: board-vendor-logos/walnutpi-logo.png
    • Fix: add the file to armbian/armbian.github.io (folder board-vendor-logos/)
    • Naming rules: lowercase, dashes (e.g. kobol-logo.png, not Kobol_logo.png)
  • Board image missing for walnutpi-1b

    • Expected: board-images/walnutpi-1b.png
    • Fix: add the file to armbian/armbian.github.io (folder board-images/)
  • Vendor logo missing for vendor walnutpi (used by board walnutpi-1b)

    • Expected: board-vendor-logos/walnutpi-logo.png
    • Fix: add the file to armbian/armbian.github.io (folder board-vendor-logos/)
    • Naming rules: lowercase, dashes (e.g. kobol-logo.png, not Kobol_logo.png)
  • Board image missing for walnutpi-box

    • Expected: board-images/walnutpi-box.png
    • Fix: add the file to armbian/armbian.github.io (folder board-images/)
  • Vendor logo missing for vendor walnutpi (used by board walnutpi-box)

    • Expected: board-vendor-logos/walnutpi-logo.png
    • Fix: add the file to armbian/armbian.github.io (folder board-vendor-logos/)
    • Naming rules: lowercase, dashes (e.g. kobol-logo.png, not Kobol_logo.png)
  • Board image missing for walnutpi-zerow

    • Expected: board-images/walnutpi-zerow.png
    • Fix: add the file to armbian/armbian.github.io (folder board-images/)
  • Vendor logo missing for vendor walnutpi (used by board walnutpi-zerow)

    • Expected: board-vendor-logos/walnutpi-logo.png
    • Fix: add the file to armbian/armbian.github.io (folder board-vendor-logos/)
    • Naming rules: lowercase, dashes (e.g. kobol-logo.png, not Kobol_logo.png)

Once the missing files are added (or a PR is opened in armbian/armbian.github.io), re-run this check.

@TallGuy74

Copy link
Copy Markdown
Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@TallGuy74
TallGuy74 force-pushed the walnutpi-box-and-1b-ddr3 branch from b84c5be to 02bf8b4 Compare August 5, 2026 18:28

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi`:
- Around line 100-106: The wifi_pwrseq nodes use an unsupported clock name and
omit the required 32kHz fanout pinctrl. In both
patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi:100-106 and
patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi.dtsi:100-106, update
wifi_pwrseq to use clock-names "ext_clock" and add the default pinctrl
referencing x32clk_fanout_pin, keeping both kernel trees identical.

In
`@patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch`:
- Around line 184-190: Add the upstream H616 DDR3-1333 default for
CONFIG_DRAM_CLK alongside CONFIG_DRAM_SUNXI_TPR6 in the WalnutPi 1B DDR3
defconfig, ensuring it matches the corresponding upstream configuration; if the
platform requires a different clock, explicitly document that intentional
override.

In
`@patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b/001-walnutpi-1b-dts-and-defconfig.patch`:
- Around line 149-157: Enable the &spi0 controller wherever the SPI NOR flash@0
node is retained by adding status = "okay" in
patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b/001-walnutpi-1b-dts-and-defconfig.patch
lines 149-157,
patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch
lines 150-158,
patch/u-boot/v2026.07-sunxi64/board_walnutpi-box/001-walnutpi-box-dts-and-defconfig.patch
lines 160-168, and
patch/u-boot/v2026.07-sunxi64/board_walnutpi-zerow/001-walnutpi-zerow-dts-and-defconfig.patch
lines 149-157. If any corresponding board has no SPI NOR hardware, remove its
flash@0 node and SPI flash defconfig symbols instead.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: ece9a0ba-ba13-472f-ba6f-fa7c10c89b7b

📥 Commits

Reviewing files that changed from the base of the PR and between 43d7f8a and b84c5be.

📒 Files selected for processing (26)
  • config/boards/walnutpi-1b-ddr3.csc
  • config/boards/walnutpi-1b.csc
  • config/boards/walnutpi-box.csc
  • config/boards/walnutpi-zerow.csc
  • config/kernel/linux-sunxi64-current.config
  • config/kernel/linux-sunxi64-edge.config
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-1b.dts
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-box.dts
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-cm1.dtsi
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-zerow.dts
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi
  • patch/kernel/archive/sunxi-6.18/overlay_64/Makefile
  • patch/kernel/archive/sunxi-6.18/overlay_64/sun50i-h616-walnutpi-box-oled.dtso
  • patch/kernel/archive/sunxi-6.18/overlay_64/sun50i-h616-walnutpi-zerow-expansion.dtso
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-1b.dts
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-box.dts
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-cm1.dtsi
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-zerow.dts
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi.dtsi
  • patch/kernel/archive/sunxi-7.0/overlay_64/Makefile
  • patch/kernel/archive/sunxi-7.0/overlay_64/sun50i-h616-walnutpi-box-oled.dtso
  • patch/kernel/archive/sunxi-7.0/overlay_64/sun50i-h616-walnutpi-zerow-expansion.dtso
  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch
  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b/001-walnutpi-1b-dts-and-defconfig.patch
  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-box/001-walnutpi-box-dts-and-defconfig.patch
  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-zerow/001-walnutpi-zerow-dts-and-defconfig.patch

Comment thread patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@TallGuy74

Copy link
Copy Markdown
Author

All three findings are addressed in the current revision: the wifi_pwrseq clock-name/pinctrl fix and the 1b spi0 removal came in via the base branch (710dbcf), and the box/1b-ddr3 u-boot spi0 nodes are dropped in a4e6c79 (SPI-NOR pads are unpopulated on all these boards, so the nodes are removed rather than enabled).

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch (1)

178-181: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Set CONFIG_DRAM_CLK explicitly for the DDR3-1333 profile.

configs/walnutpi_1b_ddr3_defconfig selects CONFIG_SUNXI_DRAM_H616_DDR3_1333=y but does not set CONFIG_DRAM_CLK. The H616 Kconfig default then applies. The sunxi DRAM clock default lives in arch/arm/mach-sunxi/Kconfig, and the H616 default is higher than the DDR3-1333 rating, so the DDR3 devices can run out of specification. The commit message states that the default clock is intentional, so record the exact value instead.

Add the clock value used by the upstream H616 DDR3-1333 defconfigs, or state the resolved default value in the commit message. DDR3 bring-up is still pending, so this affects the first boot attempt on real hardware.

Run the following script to read the default and the values other H616 DDR3 targets use:

#!/bin/bash
# Description: Compare DRAM_CLK usage across sunxi64 U-Boot defconfig patches.
set -uo pipefail

echo "== DRAM_CLK in U-Boot board patches =="
rg -n --glob 'patch/u-boot/**' 'CONFIG_DRAM_CLK|SUNXI_DRAM_H616_DDR3_1333|SUNXI_DRAM_H616_LPDDR4'
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch`
around lines 178 - 181, Add an explicit CONFIG_DRAM_CLK assignment to the
walnutpi_1b_ddr3_defconfig alongside CONFIG_SUNXI_DRAM_H616_DDR3_1333, using the
exact value from upstream H616 DDR3-1333 defconfigs or the resolved H616 Kconfig
default. Ensure the committed configuration records the intended DDR3-safe clock
instead of relying on the implicit default.
🧹 Nitpick comments (2)
patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi (1)

322-333: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Both kernel trees keep a disabled spi0 with a SPI-NOR child. The shared root cause is that the SPI-NOR description was removed from the U-Boot device trees but kept in the shared kernel DTSI. The node also has no pinctrl group, so status = "okay" alone cannot enable it.

  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi#L322-L333: delete the &spi0 override, or add pinctrl-0 = <&spi0_pins>.
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi.dtsi#L322-L333: apply the identical change.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi` around lines
322 - 333, Remove the disabled &spi0 override containing the SPI-NOR child, or
add the spi0_pins pinctrl group to it, in both
patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi lines 322-333
and patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi.dtsi lines
322-333; apply the identical fix in both files.
patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch (1)

183-195: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Both new defconfigs keep SPI flash options without a spi0 node. The shared root cause is that the SPI-NOR nodes were removed from the U-Boot device trees while the SPI and MTD options stayed in the defconfigs. CONFIG_SPI_FLASH_MACRONIX also has no effect without a SPI flash core option.

  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch#L183-L195: remove CONFIG_SPL_SPI_SUNXI, CONFIG_MTD, CONFIG_SPI_FLASH_MACRONIX, and CONFIG_SPI from configs/walnutpi_1b_ddr3_defconfig.
  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-zerow/001-walnutpi-zerow-dts-and-defconfig.patch#L186-L198: remove the same four options from configs/walnutpi_zerow_defconfig.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch`
around lines 183 - 195, Remove CONFIG_SPL_SPI_SUNXI, CONFIG_MTD,
CONFIG_SPI_FLASH_MACRONIX, and CONFIG_SPI from
configs/walnutpi_1b_ddr3_defconfig in
patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch
lines 183-195, and make the same removal from configs/walnutpi_zerow_defconfig
in
patch/u-boot/v2026.07-sunxi64/board_walnutpi-zerow/001-walnutpi-zerow-dts-and-defconfig.patch
lines 186-198; retain the other defconfig options.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi`:
- Around line 341-345: Resolve the USB port 0 controller conflict by removing
the &ehci0 and &ohci0 overrides or changing &usbotg dr_mode to "host" when the
port is host-only; apply the identical fix in
patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi lines 341-345
and patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi.dtsi lines 341-345
so both trees configure only one USB stack.

---

Duplicate comments:
In
`@patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch`:
- Around line 178-181: Add an explicit CONFIG_DRAM_CLK assignment to the
walnutpi_1b_ddr3_defconfig alongside CONFIG_SUNXI_DRAM_H616_DDR3_1333, using the
exact value from upstream H616 DDR3-1333 defconfigs or the resolved H616 Kconfig
default. Ensure the committed configuration records the intended DDR3-safe clock
instead of relying on the implicit default.

---

Nitpick comments:
In `@patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi`:
- Around line 322-333: Remove the disabled &spi0 override containing the SPI-NOR
child, or add the spi0_pins pinctrl group to it, in both
patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi lines 322-333
and patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi.dtsi lines
322-333; apply the identical fix in both files.

In
`@patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch`:
- Around line 183-195: Remove CONFIG_SPL_SPI_SUNXI, CONFIG_MTD,
CONFIG_SPI_FLASH_MACRONIX, and CONFIG_SPI from
configs/walnutpi_1b_ddr3_defconfig in
patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch
lines 183-195, and make the same removal from configs/walnutpi_zerow_defconfig
in
patch/u-boot/v2026.07-sunxi64/board_walnutpi-zerow/001-walnutpi-zerow-dts-and-defconfig.patch
lines 186-198; retain the other defconfig options.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 4ad60416-616d-4f69-9b6d-5815700c1942

📥 Commits

Reviewing files that changed from the base of the PR and between 43d7f8a and a4e6c79.

📒 Files selected for processing (26)
  • config/boards/walnutpi-1b-ddr3.csc
  • config/boards/walnutpi-1b.csc
  • config/boards/walnutpi-box.csc
  • config/boards/walnutpi-zerow.csc
  • config/kernel/linux-sunxi64-current.config
  • config/kernel/linux-sunxi64-edge.config
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-1b.dts
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-box.dts
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-cm1.dtsi
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-zerow.dts
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi
  • patch/kernel/archive/sunxi-6.18/overlay_64/Makefile
  • patch/kernel/archive/sunxi-6.18/overlay_64/sun50i-h616-walnutpi-box-oled.dtso
  • patch/kernel/archive/sunxi-6.18/overlay_64/sun50i-h616-walnutpi-zerow-expansion.dtso
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-1b.dts
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-box.dts
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-cm1.dtsi
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-zerow.dts
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi.dtsi
  • patch/kernel/archive/sunxi-7.0/overlay_64/Makefile
  • patch/kernel/archive/sunxi-7.0/overlay_64/sun50i-h616-walnutpi-box-oled.dtso
  • patch/kernel/archive/sunxi-7.0/overlay_64/sun50i-h616-walnutpi-zerow-expansion.dtso
  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b-ddr3/001-walnutpi-1b-ddr3-dts-and-defconfig.patch
  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b/001-walnutpi-1b-dts-and-defconfig.patch
  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-box/001-walnutpi-box-dts-and-defconfig.patch
  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-zerow/001-walnutpi-zerow-dts-and-defconfig.patch
🚧 Files skipped from review as they are similar to previous changes (22)
  • config/boards/walnutpi-1b.csc
  • patch/kernel/archive/sunxi-6.18/overlay_64/Makefile
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-1b.dts
  • patch/kernel/archive/sunxi-6.18/overlay_64/sun50i-h616-walnutpi-zerow-expansion.dtso
  • patch/kernel/archive/sunxi-6.18/overlay_64/sun50i-h616-walnutpi-box-oled.dtso
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-1b.dts
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-box.dts
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-box.dts
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-zerow.dts
  • config/kernel/linux-sunxi64-edge.config
  • config/boards/walnutpi-1b-ddr3.csc
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-cm1.dtsi
  • patch/kernel/archive/sunxi-7.0/overlay_64/sun50i-h616-walnutpi-box-oled.dtso
  • patch/kernel/archive/sunxi-7.0/overlay_64/sun50i-h616-walnutpi-zerow-expansion.dtso
  • config/kernel/linux-sunxi64-current.config
  • config/boards/walnutpi-box.csc
  • patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi-zerow.dts
  • patch/kernel/archive/sunxi-7.0/overlay_64/Makefile
  • config/boards/walnutpi-zerow.csc
  • patch/kernel/archive/sunxi-7.0/dt_64/sun50i-h618-walnutpi-cm1.dtsi
  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-1b/001-walnutpi-1b-dts-and-defconfig.patch
  • patch/u-boot/v2026.07-sunxi64/board_walnutpi-box/001-walnutpi-box-dts-and-defconfig.patch

Comment thread patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h618-walnutpi.dtsi
@TallGuy74
TallGuy74 force-pushed the walnutpi-box-and-1b-ddr3 branch from a4e6c79 to 490799f Compare August 5, 2026 19:35
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@TallGuy74

Copy link
Copy Markdown
Author

All review-round-2 findings addressed in the pushed revision: ehci0/ohci0 now stay disabled with peripheral usbotg (shared kernel dtsi + all four u-boot DTs; the Box keeps ehci2/3 as its routed ports), the leftover SPL_SPI/MTD/SPI-flash defconfig symbols are dropped, and walnutpi_1b_ddr3 sets CONFIG_DRAM_CLK=792 explicitly (H616 default is 720; vendor u-boot and orangepi_zero2 both use 792). U-Boot build-verified for zerow and 1b-ddr3.

@EvilOlaf

EvilOlaf commented Aug 6, 2026

Copy link
Copy Markdown
Member

nice and clean 👍
All concerns from Rabbit must be addressed or dismissed
Board assets must be provided and merged before this can be merged

@TallGuy74

Copy link
Copy Markdown
Author

Thanks! Status on both conditions:

Bas Vermeulen added 10 commits August 6, 2026 07:14
Add CSC board support for the Walnut Pi 1 family (Allwinner H618,
LPDDR4, AXP313a, UWE5622 Wi-Fi/BT on SDIO, in-SoC AC300-class EPHY):

- walnutpi-box: CM1 compute module on the Box IO carrier (eMMC,
  full-size HDMI, 100M Ethernet, 2x USB-A on USB2/USB3, carrier
  heartbeat LED on PC13, user key on PC12, USB1 unrouted/disabled)
- walnutpi-1b: SBC variant (micro HDMI, Ethernet, PC16-gated USB VBUS,
  status LED on PC13, no eMMC)
- walnutpi-zerow: compact variant; Ethernet/USB2+3/line-out/IR live on
  the FPC expansion board and are enabled at runtime via the new
  sun50i-h616-walnutpi-zerow-expansion overlay

Kernel DTs share a common sun50i-h618-walnutpi.dtsi (family core:
PMIC, SD, Wi-Fi, eMMC pads, HDMI, emac1 + AC300 EPHY with the SID
0x2c calibration cell, codec, IR, USB, PWM5 EPHY clock), with thin
per-board files; dropped into dt_64 for sunxi-6.18 and sunxi-7.0.
Wiring is taken from the vendor DTs and schematics; regulator rails
and voltages match the vendor SPL (AXP313a: dcdc1 gpu, dcdc2 cpu
0.9V, dcdc3 dram 1.1V).

U-Boot (v2026.07) per-board patches add defconfigs with the vendor's
LPDDR4 DRAM parameters converted to the generic DRAM_SUNXI_* symbols;
the Box defconfig sets MMC_SUNXI_SLOT_EXTRA=2 so SPL can boot from
eMMC after armbian-install.

All three boards build to working trixie images; hardware bring-up
pending.
The 1GB 1B variant uses DDR3 (2x 512MB per the vendor schematic) and
needs its own u-boot DRAM profile; mainline has no equivalent of the
vendor's DDR3/LPDDR4 auto-detect option.
The 1GB 1B uses 2x 512MB DDR3 instead of LPDDR4 (vendor schematic
walnutpi-1b-1g). The defconfig ports the vendor u-boot's
DDR3_LPDDR4_AUTO DDR3 path to the upstream DDR3-1333 profile: shared
DRAM parameter set, DDR3-specific tpr10=0xf83438 (hardcoded in the
vendor auto-detect), TPR6 low byte consumed by the DDR3 path. Same
kernel DTB as walnutpi-1b.
Enable the ssd130x DRM driver (I2C) as modules and add an overlay for
the Walnut Pi Box 0.96" OLED header: SSD1306 128x64 at 0x3c on
TWI2/i2c2 (PI9/PI10, shared with 40-pin pins 27/28; uart3 muxes the
same pins and is disabled by the overlay). The display shows up as a
DRM device usable by fbcon or any DRM client.
First hardware boot failed DRAM training ('This DRAM setup is
currently not supported' from mctl_auto_detect_rank_width after all
rank/width attempts failed). Cause: LPDDR4-oriented values carried
from the vendor's shared parameter set — ODT_EN=0xaaaaeeee and
nonzero TPR11/TPR12 — poison the mainline DDR3 path. Switch to the
upstream-proven H616 DDR3-1333 set as used by orangepi_zero2
(default ODT_EN=0x1, TPR11/12=0, default clock, TPR6=0x33808080).
Hardware bring-up on a current-production 1GB 1B: the board is a newer
LPDDR4 revision (DDR3 training fails, LPDDR4 boots to Armbian), so
walnutpi-1b covers all LPDDR4 boards (1G/2G/4G, size auto-detected).
Rename walnutpi-1b-1g to walnutpi-1b-ddr3: memory type, not capacity,
is what distinguishes the early DDR3 revision. DDR3 variant remains
hardware-untested.
The bare ZeroW has two USB-C connectors: USB0 (OTG/power) and USB1,
per the vendor schematic (TYPE-C block with its own CC network and
TP8/TP9 test pads) and board silkscreen. Re-enable ehci1/ohci1;
only Ethernet/USB2/USB3/audio/IR stay on the FPC expansion overlay.
Keep the initial submission to the hardware-tested boards (1B, ZeroW);
the Box/CM1 (with its OLED support) and the untested 1B DDR3 variant
move to a stacked branch.
- wifi_pwrseq: use the binding's required "ext_clock" clock-name and
  mux the RTC 32k fanout pin, as on bananapi-m4; with the previous
  vendor-derived "osc32k-out" name the pwrseq driver silently skipped
  the clock.
- u-boot DTs: drop the &spi0/flash node — the SPI-NOR pads are
  unpopulated on these boards and the node was declared without
  enabling or pinmuxing the bus.
@TallGuy74
TallGuy74 force-pushed the walnutpi-box-and-1b-ddr3 branch from 0d3e9ae to 7b4935e Compare August 6, 2026 05:14
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

…ed SPI symbols

PHY0 is shared between the MUSB OTG controller and ehci0/ohci0; with
usbotg in peripheral mode the host pair stays disabled (as on
orangepi-zero2). Applied in the shared kernel dtsi and the u-boot
board DTs (ehci1/ohci1 remain for the real ports). Also drop the
SPL_SPI/MTD/SPI-flash defconfig symbols left over from the removed
SPI-NOR node — the flash pads are unpopulated.
@TallGuy74
TallGuy74 force-pushed the walnutpi-box-and-1b-ddr3 branch from 7b4935e to 74acda0 Compare August 6, 2026 07:05
Bas Vermeulen added 6 commits August 6, 2026 09:42
The asset check derives the vendor logo filename from BOARD_VENDOR;
walnut-logo.png is what is merged in armbian.github.io.
Stacked on the initial Walnut Pi family submission:
- walnutpi-box: CM1 compute module on the Box IO carrier (eMMC, HDMI,
  100M Ethernet, 2x USB-A, carrier LED/key), plus ssd130x DRM support
  and the walnutpi-box-oled overlay for its 0.96" OLED header.
  Build-tested; hardware bring-up pending.
- walnutpi-1b-ddr3: early 1B revision with 2x 512MB DDR3 (per vendor
  schematic v1.0), upstream-proven H616 DDR3-1333 DRAM profile.
  Untested on hardware; current-production 1GB boards are LPDDR4 and
  covered by walnutpi-1b.
Same cleanup as the base PR: SPI-NOR pads are unpopulated and the
nodes were declared without enabling the bus.
Box keeps ehci2/ohci2+ehci3/ohci3 (its routed ports; USB1 is
unconnected on the Box carrier).
The H616 Kconfig default is 720; the vendor u-boot and the upstream
DDR3 reference (orangepi_zero2) both run 792. Make it explicit rather
than silently inheriting the lower default.
@TallGuy74
TallGuy74 force-pushed the walnutpi-box-and-1b-ddr3 branch from 74acda0 to d75e313 Compare August 6, 2026 07:42
@github-actions github-actions Bot added the Ready to merge Reviewed, tested and ready for merge label Aug 7, 2026
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

✅ This PR has been reviewed and approved — all set for merge!

@github-actions github-actions Bot removed the Needs review Seeking for review label Aug 7, 2026
@igorpecovnik
igorpecovnik merged commit 5a443ab into armbian:main Aug 9, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

08 Milestone: Third quarter release Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... Ready to merge Reviewed, tested and ready for merge size/large PR with 250 lines or more

Development

Successfully merging this pull request may close these issues.

3 participants