Skip to content

Feat/add tanix tx6s axp313 - #10290

Merged
EvilOlaf merged 20 commits into
armbian:mainfrom
alnahian2011:feat/add-tanix-tx6s-axp313
Aug 5, 2026
Merged

Feat/add tanix tx6s axp313#10290
EvilOlaf merged 20 commits into
armbian:mainfrom
alnahian2011:feat/add-tanix-tx6s-axp313

Conversation

@alnahian2011

@alnahian2011 alnahian2011 commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Description

Tanix TX6s (AXP313 variant) Allwinner H616 SoC, 2GB DDR3 RAM, TV box.

How Has This Been Tested?

  • ./compile.sh build BOARD=tanix-tx6s-axp313 BRANCH=current BUILD_DESKTOP=no BUILD_MINIMAL=yes EXPERT=yes KERNEL_CONFIGURE=no RELEASE=noble
  • Tested on current stable kernal
  • Boot confirmed
  • Installed on Emmc and also booted from it.

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

sdcard-uart-tx6s-axp313.txt
emmc-uart-tx6s-axp313.txt
also added uart logs of both booting from sdcard and emmc.

Summary by CodeRabbit

  • New Features
    • Added support for the Tanix TX6s (Allwinner H616) TV box, including standard, AXP313, and Kingston LPDDR3 variants.
    • Added device-tree and bootloader configurations for Ethernet, Wi‑Fi, audio, Bluetooth, infrared, and display hardware.
    • Added an audio mixer setup tool for common sound cards to apply consistent ALSA settings.
  • Bug Fixes
    • Improved Broadcom AP6330 Wi‑Fi firmware selection and mapping.

@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

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

Tanix TX6s H616 support is added across Armbian board configuration, kernel device trees and firmware mappings, U-Boot device trees and defconfigs, and ALSA audio initialization for standard and AXP313 variants.

Changes

Tanix TX6s H616 support

Layer / File(s) Summary
Kernel firmware mappings and patch series
patch/kernel/archive/sunxi-*/patches.armbian/0110-*, patch/kernel/archive/sunxi-*/series.conf
AP6330 firmware selection and related kernel patch-series entries are added across sunxi versions.
Standard TX6s kernel device tree
patch/kernel/archive/sunxi-*/patches.armbian/0645-*
Standard TX6s DTBs configure H616 peripherals, AXP305 power, Ethernet, MMC/WiFi, Bluetooth, USB, IR, HDMI, VFD, and audio.
AXP313 TX6s kernel variant
patch/kernel/archive/sunxi-*/patches.armbian/0646-*
AXP313-specific TX6s DTBs add PMIC regulators and corresponding peripheral, storage, wireless, Bluetooth, USB, and audio configuration.
U-Boot board targets
patch/u-boot/v2025-sunxi/0010-*, patch/u-boot/v2025-sunxi/0011-*, patch/u-boot/v2025-sunxi/0012-*
U-Boot device trees and defconfigs are added for standard, AXP313, and Kingston LPDDR3 TX6s targets.
Board image and audio integration
config/boards/tanix-tx6s-axp313.tvb, packages/blobs/sunxi/h618/armbian-audio-config
The board definition selects build metadata and installs ALSA configuration support.

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

Sequence Diagram(s)

sequenceDiagram
  participant BoardBuild
  participant UBoot
  participant Kernel
  participant TargetFilesystem
  participant Hardware
  BoardBuild->>UBoot: select TX6s defconfig and device tree
  BoardBuild->>Kernel: select TX6s kernel patches and DTB
  BoardBuild->>TargetFilesystem: install audio configuration
  UBoot->>Hardware: initialize DRAM, storage, Ethernet, and USB
  Kernel->>Hardware: enable regulators, WiFi, Bluetooth, display, and audio
Loading

Possibly related PRs

  • armbian/build#10012: Maintains overlapping Sunxi 6.18 and 7.0 patchsets, including H616 audio and PHY patches.
  • armbian/build#10089: Shares Sunxi U-Boot configuration and board boot settings.

Suggested reviewers: igorpecovnik, pyavitz, 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 main change: adding Tanix TX6s AXP313 support.
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 💡 2
⚔️ Resolve merge conflicts 💡
  • Resolve merge conflict in branch feat/add-tanix-tx6s-axp313
🛠️ Fix failing CI checks 💡
  • Fix failing CI checks
🧪 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

Copy link
Copy Markdown
Contributor

Hey @alnahian2011! 👋

Thanks for submitting your first pull request to the Armbian project — we're excited to have you contributing! 🧡
Your effort doesn’t just improve Armbian — it benefits the entire community of users and developers.

If you'd like to stay informed about project updates or collaborate more closely with the team,
you can optionally share some personal contact preferences at armbian.com/update-data.
This helps us keep in touch without relying solely on GitHub notifications.

Also, don’t forget to ⭐ star the repo if you haven’t already — and welcome aboard! 🚀

@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, ... BSP Board Support Packages labels Jul 26, 2026
@github-actions

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 tanix-tx6s-axp313
    • Expected: board-images/tanix-tx6s-axp313.png
    • Fix: add the file to armbian/armbian.github.io (folder board-images/)

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

@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: 11

🧹 Nitpick comments (9)
patch/kernel/archive/sunxi-6.18/series.conf (1)

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

Unrelated disables lack the usual rationale comment.

These three entries are disabled but, unlike the other - lines in this file (168, 237, 262), carry no trailing note explaining why. They're also outside this PR's stated scope of adding TX6s support — worth confirming they're intentional here rather than a leftover from local debugging, and adding a short reason if they stay.

Also applies to: 399-400

🤖 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/series.conf` at line 120, Add rationale
comments to the disabled patch entries in series.conf, including the entries
corresponding to 0004-media-cedrus-Fix-failure-to-clean-up-hardware-on-pro and
the additionally referenced entries. Confirm they are intentionally disabled and
document the short reason; otherwise restore any entries disabled only for local
debugging.
config/boards/tanix-tx6s-axp313.tvb (2)

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

Empty BOARD_MAINTAINER means this board ships unmaintained.

Fine if intentional, but for a brand-new TV box port it is usually the submitter's handle. Worth setting so breakage has an owner.

🤖 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 `@config/boards/tanix-tx6s-axp313.tvb` at line 5, Set BOARD_MAINTAINER in the
tanix-tx6s-axp313 board configuration to the submitter or responsible
maintainer’s handle instead of leaving it empty, so ownership for future
breakage is explicit.

19-20: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Use a single install for the audio config script.

On merged-/usr Armbian/rootfs, /lib/armbian resolves to /usr/lib/armbian, so copying there copies the same path back into itself. Also, the blob is tracked as mode 100644; use install -Dm755 to place the script with the executable bit in one step.

♻️ Suggested simplification
-    cp -R $SRC/packages/blobs/sunxi/h618/armbian-audio-config $SDCARD/usr/lib/armbian
-    cp -R $SRC/packages/blobs/sunxi/h618/armbian-audio-config $SDCARD/lib/armbian
+    install -Dm755 "${SRC}/packages/blobs/sunxi/h618/armbian-audio-config" \
+        "${SDCARD}/usr/lib/armbian/armbian-audio-config"
🤖 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 `@config/boards/tanix-tx6s-axp313.tvb` around lines 19 - 20, Replace the
duplicate cp commands in the Tanix TX6S AXP313 image setup with one install
-Dm755 operation targeting the required Armbian audio-config destination,
preserving the source blob and avoiding the redundant /lib/armbian copy.
patch/u-boot/v2025-sunxi/0012-add-tanix-tx6s-kingston-lpddr3-defconfig.patch (2)

1-3: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Stale source tree in the diff header (u-boot-2021.07/).

Sibling patches in the same directory use u-boot-sunxi-647b392.../, and the target branch is tag:v2025.04. Paths only matter for the strip level, but the mismatch suggests this hunk was carried over from an old tree and makes provenance hard to reason about.

🤖 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/v2025-sunxi/0012-add-tanix-tx6s-kingston-lpddr3-defconfig.patch`
around lines 1 - 3, Update the diff header paths for the
tanix_tx6s_kingston_lpddr3_defconfig patch to use the current
u-boot-sunxi-647b392... source-tree prefix consistent with sibling patches and
the tag:v2025.04 target, while preserving the existing strip-level structure and
file target.

14-19: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Commented hex symbols read as "disabled" but actually fall back to Kconfig defaults.

# CONFIG_DRAM_SUN50I_H616_TPR11=0xaa889967 is just a comment — the symbol still takes its default value, which is not necessarily the value implied here. If the intent is "use the default", drop the lines; if the intent is to record candidate tunings, say so explicitly.

🤖 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/v2025-sunxi/0012-add-tanix-tx6s-kingston-lpddr3-defconfig.patch`
around lines 14 - 19, Remove the commented hexadecimal DRAM tuning assignments
in the defconfig patch, including CONFIG_DRAM_SUN50I_H616_TPR11 and
CONFIG_DRAM_SUN50I_H616_TPR12, unless they are explicitly documented as
candidate tunings; retain only actual Kconfig assignments and intentional
disablements.
patch/u-boot/v2025-sunxi/0010-add-tanix-tx6s-defconfig.patch (1)

89-95: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Drop the commented-out cd-gpios line.

broken-cd already covers the intent; the dead line just invites confusion in an upstream-styled DTS.

🤖 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/v2025-sunxi/0010-add-tanix-tx6s-defconfig.patch` around lines 89
- 95, Remove the commented-out cd-gpios line from the mmc0 device-tree node,
leaving broken-cd and the other active MMC properties unchanged.
patch/u-boot/v2025-sunxi/0011-add-tanix-tx6s-axp313-defconfig.patch (1)

19-20: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Both TX6s variants declare the identical compatible = "tanix,tx6s".

sun50i-h616-tanix-tx6s.dts (AXP305) and this AXP313 DTS carry the same compatible string despite wiring completely different PMICs, regulators, and PHY addresses. Anything that matches on compatible (board detection, firmware naming such as the brcmfmac-ap6330-sdio.tanix,tx6s.bin symlink in config/boards/tanix-tx6s-axp313.tvb, DT overlay selection) cannot tell the two apart. Consider a distinct compatible, e.g. "tanix,tx6s-axp313", "tanix,tx6s", "allwinner,sun50i-h616", keeping the generic one as a fallback.

🤖 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/v2025-sunxi/0011-add-tanix-tx6s-axp313-defconfig.patch` around
lines 19 - 20, Update the AXP313 device tree compatible declaration near the
model entry to use a distinct primary identifier such as "tanix,tx6s-axp313",
while retaining "tanix,tx6s" and "allwinner,sun50i-h616" as fallback compatibles
in order.
packages/blobs/sunxi/h618/armbian-audio-config (2)

20-20: 🩺 Stability & Availability | 🔵 Trivial | 💤 Low value

aplay -l | grep "device 0" | awk '{print $3}' depends on card-name formatting.

$3 yields the card ID string, which amixer -c accepts, but the pipeline breaks for any card whose listing line shifts field positions. aplay -l | awk -F'[ :]' '/^card/ {print $2}' on the card index is sturdier.

🤖 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 `@packages/blobs/sunxi/h618/armbian-audio-config` at line 20, Update the card1
assignment to extract the numeric card index from aplay output using a
delimiter-aware awk expression matching lines beginning with “card”, rather than
grepping “device 0” and selecting field 3. Keep the resulting value compatible
with the existing amixer -c usage.

1-166: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Extend the shared armbian-audio-config for H618 settings instead of copying it.

packages/blobs/sunxi/h618/armbian-audio-config is essentially the common script with only the H618-specific mixer lines added and one minor whitespace tweak, so future shared audio-config fixes are duplicated and easy to miss. Move/add the H618 settings to the common script, or source the common script for the H618 package.

🤖 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 `@packages/blobs/sunxi/h618/armbian-audio-config` around lines 1 - 166,
Consolidate the H618-specific mixer settings from the shared
`armbian-audio-config` into the common audio configuration, or make the H618
script source and reuse that common implementation. Remove the duplicated full
script so future changes apply through one shared path, while preserving the
H618 `Left/Right Output Mixer DACL/DACR` commands.
🤖 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 `@config/boards/tanix-tx6s-axp313.tvb`:
- Line 6: Update the INTRODUCED value in the tanix-tx6s-axp313 board definition
to the current Armbian release in which this board’s support is being added,
matching the convention used by neighbouring board files rather than the
hardware launch year.
- Around line 16-18: Update post_family_tweaks__tanix_tx6s_axp313 to remove the
AP6330 firmware symlink for this XR819-based board; if the link is required for
another supported configuration, only create it when brcmfmac-ap6330-sdio.bin
exists so image builds do not fail when the source is absent.

In `@packages/blobs/sunxi/h618/armbian-audio-config`:
- Around line 15-16: Update the sound.conf lookup and restore invocation in the
alsactl restore block to avoid relying on an unreliable HOME value. Use the
intended system-wide ALSA state path with plain alsactl restore, or consistently
guard HOME with a /root fallback so the existence check and restore target the
same valid file.

In
`@patch/kernel/archive/sunxi-6.12/patches.armbian/0645-arm64-dts-allwinner-h616-add-Tanix-TX6s-TVbox.patch`:
- Around line 76-85: Align the PG18 WL_REG_ON regulator definitions by updating
reg_vcc_wifi to match the corresponding axp313 variant’s startup-delay-us
setting. Preserve the existing regulator properties and use the same
200000-microsecond delay value if that is the established configuration.

In
`@patch/kernel/archive/sunxi-6.12/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch`:
- Line 211: Remove the hard-coded local-mac-address property from the wlan node
in all three affected patch files:
patch/kernel/archive/sunxi-6.12/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch
(211-211),
patch/kernel/archive/sunxi-6.18/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch
(208-208), and
patch/kernel/archive/sunxi-7.0/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch
(211-211); decrement each corresponding hunk header line count.
- Around line 96-107: Enable the SPDIF controller by appending an &spdif status
override after &ahub1_mach in the axp313 DTS patch for
patch/kernel/archive/sunxi-6.12/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch
lines 96-107,
patch/kernel/archive/sunxi-6.18/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch
lines 96-107, and
patch/kernel/archive/sunxi-7.0/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch
lines 96-107; update each hunk header line count accordingly, preserving the
existing sound-spdif and spdif_out nodes.
- Around line 205-212: Remove interrupt-parent, interrupts, and interrupt-names
from the wlan: wifi@1 node in
patch/kernel/archive/sunxi-6.12/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch#L205-L212
and
patch/kernel/archive/sunxi-7.0/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch#L205-L212,
updating each +1,334 hunk count to +1,331. Apply the same removal in
patch/kernel/archive/sunxi-6.12/patches.armbian/0645-arm64-dts-allwinner-h616-add-Tanix-TX6s-TVbox.patch#L204-L209,
patch/kernel/archive/sunxi-6.18/patches.armbian/0645-arm64-dts-allwinner-h616-add-Tanix-TX6s-TVbox.patch#L204-L209,
and
patch/kernel/archive/sunxi-7.0/patches.armbian/0645-arm64-dts-allwinner-h616-add-Tanix-TX6s-TVbox.patch#L204-L209,
adjusting each +1,392 hunk count accordingly.

In `@patch/kernel/archive/sunxi-7.0/series.conf`:
- Line 527: Remove the AIC8800 patch entry from the sunxi-7.0 series list in
series.conf, leaving the surrounding TX6s/AP6330 patch entries unchanged.

In `@patch/u-boot/v2025-sunxi/0010-add-tanix-tx6s-defconfig.patch`:
- Around line 74-87: Remove the unused axp305_1 PMIC node and its surrounding
&r_i2c configuration from the defconfig patch. Keep the existing axp305
definition under &r_rsb as the sole PMIC description, including its regulator
configuration.
- Around line 255-269: The H616 DRAM defconfig entries use inconsistent
namespaces, causing vendor timing symbols to be discarded. In
patch/u-boot/v2025-sunxi/0010-add-tanix-tx6s-defconfig.patch lines 255-269,
patch/u-boot/v2025-sunxi/0011-add-tanix-tx6s-axp313-defconfig.patch lines
164-178, and
patch/u-boot/v2025-sunxi/0012-add-tanix-tx6s-kingston-lpddr3-defconfig.patch
lines 11-19, update the DRAM TPR, ODT, DRI, and related symbols to the v2025
U-Boot namespace used by the source, consistently using
CONFIG_DRAM_SUN50I_H616_*.

In `@patch/u-boot/v2025-sunxi/0011-add-tanix-tx6s-axp313-defconfig.patch`:
- Around line 75-80: Update the rmii_phy node under mdio1 so its unit address
uses hexadecimal notation matching reg = <16>: rename ethernet-phy@16 to
ethernet-phy@10, leaving the PHY configuration unchanged.

---

Nitpick comments:
In `@config/boards/tanix-tx6s-axp313.tvb`:
- Line 5: Set BOARD_MAINTAINER in the tanix-tx6s-axp313 board configuration to
the submitter or responsible maintainer’s handle instead of leaving it empty, so
ownership for future breakage is explicit.
- Around line 19-20: Replace the duplicate cp commands in the Tanix TX6S AXP313
image setup with one install -Dm755 operation targeting the required Armbian
audio-config destination, preserving the source blob and avoiding the redundant
/lib/armbian copy.

In `@packages/blobs/sunxi/h618/armbian-audio-config`:
- Line 20: Update the card1 assignment to extract the numeric card index from
aplay output using a delimiter-aware awk expression matching lines beginning
with “card”, rather than grepping “device 0” and selecting field 3. Keep the
resulting value compatible with the existing amixer -c usage.
- Around line 1-166: Consolidate the H618-specific mixer settings from the
shared `armbian-audio-config` into the common audio configuration, or make the
H618 script source and reuse that common implementation. Remove the duplicated
full script so future changes apply through one shared path, while preserving
the H618 `Left/Right Output Mixer DACL/DACR` commands.

In `@patch/kernel/archive/sunxi-6.18/series.conf`:
- Line 120: Add rationale comments to the disabled patch entries in series.conf,
including the entries corresponding to
0004-media-cedrus-Fix-failure-to-clean-up-hardware-on-pro and the additionally
referenced entries. Confirm they are intentionally disabled and document the
short reason; otherwise restore any entries disabled only for local debugging.

In `@patch/u-boot/v2025-sunxi/0010-add-tanix-tx6s-defconfig.patch`:
- Around line 89-95: Remove the commented-out cd-gpios line from the mmc0
device-tree node, leaving broken-cd and the other active MMC properties
unchanged.

In `@patch/u-boot/v2025-sunxi/0011-add-tanix-tx6s-axp313-defconfig.patch`:
- Around line 19-20: Update the AXP313 device tree compatible declaration near
the model entry to use a distinct primary identifier such as
"tanix,tx6s-axp313", while retaining "tanix,tx6s" and "allwinner,sun50i-h616" as
fallback compatibles in order.

In
`@patch/u-boot/v2025-sunxi/0012-add-tanix-tx6s-kingston-lpddr3-defconfig.patch`:
- Around line 1-3: Update the diff header paths for the
tanix_tx6s_kingston_lpddr3_defconfig patch to use the current
u-boot-sunxi-647b392... source-tree prefix consistent with sibling patches and
the tag:v2025.04 target, while preserving the existing strip-level structure and
file target.
- Around line 14-19: Remove the commented hexadecimal DRAM tuning assignments in
the defconfig patch, including CONFIG_DRAM_SUN50I_H616_TPR11 and
CONFIG_DRAM_SUN50I_H616_TPR12, unless they are explicitly documented as
candidate tunings; retain only actual Kconfig assignments and intentional
disablements.
🪄 Autofix (Beta)

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: 9d4d72a4-8c54-4124-86f7-0a9185e2aa75

📥 Commits

Reviewing files that changed from the base of the PR and between 15a6ea7 and 749a62f.

📒 Files selected for processing (17)
  • config/boards/tanix-tx6s-axp313.tvb
  • packages/blobs/sunxi/h618/armbian-audio-config
  • patch/kernel/archive/sunxi-6.12/patches.armbian/0110-drivers-net-wireless-brcmfmac-add-ap6330-firmware.patch
  • patch/kernel/archive/sunxi-6.12/patches.armbian/0645-arm64-dts-allwinner-h616-add-Tanix-TX6s-TVbox.patch
  • patch/kernel/archive/sunxi-6.12/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch
  • patch/kernel/archive/sunxi-6.12/series.conf
  • patch/kernel/archive/sunxi-6.18/patches.armbian/0110-drivers-net-wireless-brcmfmac-add-ap6330-firmware.patch
  • patch/kernel/archive/sunxi-6.18/patches.armbian/0645-arm64-dts-allwinner-h616-add-Tanix-TX6s-TVbox.patch
  • patch/kernel/archive/sunxi-6.18/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch
  • patch/kernel/archive/sunxi-6.18/series.conf
  • patch/kernel/archive/sunxi-7.0/patches.armbian/0110-drivers-net-wireless-brcmfmac-add-ap6330-firmware.patch
  • patch/kernel/archive/sunxi-7.0/patches.armbian/0645-arm64-dts-allwinner-h616-add-Tanix-TX6s-TVbox.patch
  • patch/kernel/archive/sunxi-7.0/patches.armbian/0646-arm64-dts-allwinner-h616-add-Tanix-TX6s-axp313-TVbox.patch
  • patch/kernel/archive/sunxi-7.0/series.conf
  • patch/u-boot/v2025-sunxi/0010-add-tanix-tx6s-defconfig.patch
  • patch/u-boot/v2025-sunxi/0011-add-tanix-tx6s-axp313-defconfig.patch
  • patch/u-boot/v2025-sunxi/0012-add-tanix-tx6s-kingston-lpddr3-defconfig.patch

Comment thread config/boards/tanix-tx6s-axp313.tvb
Comment thread config/boards/tanix-tx6s-axp313.tvb Outdated
Comment thread packages/blobs/sunxi/h618/armbian-audio-config Outdated
Comment thread patch/kernel/archive/sunxi-7.0/series.conf Outdated
Comment thread patch/u-boot/v2025-sunxi/0010-add-tanix-tx6s-defconfig.patch Outdated
Comment thread patch/u-boot/v2025-sunxi/0010-add-tanix-tx6s-defconfig.patch Outdated
Comment thread patch/u-boot/v2025-sunxi/0011-add-tanix-tx6s-axp313-defconfig.patch
Comment thread packages/blobs/sunxi/h618/armbian-audio-config Outdated
Comment thread patch/kernel/archive/sunxi-6.18/series.conf Outdated
Comment thread patch/kernel/archive/sunxi-6.18/series.conf Outdated
Comment thread config/boards/tanix-tx6s-axp313.tvb
@alnahian2011
alnahian2011 requested a review from EvilOlaf July 26, 2026 17:07

@EvilOlaf EvilOlaf left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

as per comments

@alnahian2011
alnahian2011 requested a review from EvilOlaf July 31, 2026 06:44
@alnahian2011
alnahian2011 force-pushed the feat/add-tanix-tx6s-axp313 branch 2 times, most recently from 6149fb6 to 8a41cc2 Compare August 4, 2026 02:19

@EvilOlaf EvilOlaf left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

boards assets must be present as complained by gha bot. Otherwise fine.

#10290 (comment)

@github-actions github-actions Bot added the Ready to merge Reviewed, tested and ready for merge label Aug 4, 2026
@github-actions

github-actions Bot commented Aug 4, 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 4, 2026
@github-actions github-actions Bot added Needs review Seeking for review and removed Ready to merge Reviewed, tested and ready for merge labels Aug 4, 2026
@alnahian2011 alnahian2011 added Ready to merge Reviewed, tested and ready for merge and removed Ready to merge Reviewed, tested and ready for merge labels Aug 4, 2026
@EvilOlaf

EvilOlaf commented Aug 5, 2026

Copy link
Copy Markdown
Member

you added a commit after the pr was approved and marked as ready to merge which basically invalidates the review state since the whole pr was altered. so automatically flipping the labels is correct.

Is this finished now?

alnahian2011 and others added 20 commits August 5, 2026 03:56
The host-wake GPIO/interrupt config (PG15, edge-rising) was copied
from an AP6330-pattern reference board. This board's actual WiFi
chip is XR819 (xradio_wlan), not AP6330/brcmfmac. WiFi connects
and passes traffic correctly without claiming this interrupt, and
host-wake is only relevant for WoWLAN suspend, not basic
connectivity, so it's safer to leave unclaimed until confirmed
correct for this variant.
sound-spdif card was defined but the &spdif controller itself was
never enabled, so the audio card couldn't bind. Add the missing
&spdif { status = "okay"; }; override, matching the standard
(non-axp313) TX6s variant.
axp305_1 under &r_i2c was a dummy placeholder (its own comment
says 'appease the driver for now') with no real regulator config
and a fake interrupt. The actual PMIC config lives under &r_rsb
(axp305), which already provides all real regulators. R_I2C and
R_RSB share the same physical pins (PL0/PL1) and can't both be
enabled, so the dummy &r_i2c block was a real pinmux conflict.
- Remove hardcoded WiFi MAC address from wlan node (all 3 kernel
  versions) to avoid address collisions across boards
- Remove AP6330 firmware symlink; board's actual chip is XR819
- Set BOARD_MAINTAINER
- Replace duplicate cp -R with install -Dm755 for audio config
- Remove conflicting &r_i2c/axp305_1 dummy PMIC node from
  tanix-tx6s defconfig; real PMIC config is under &r_rsb/axp305
CONFIG_SUNXI_DRAM_H616_DDR3_1333=y expects DRAM tuning values under
the CONFIG_DRAM_SUN50I_H616_* namespace (matching tanix_tx6s_defconfig),
but the axp313 defconfig had them under the wrong CONFIG_DRAM_SUNXI_*
namespace. Kconfig was silently discarding these vendor-tuned DRAM
timings and falling back to defaults instead.
DT convention requires the node's @unit-address suffix to match
the reg property value in hex. reg = <16> is 0x10 in hex, so the
node was renamed from ethernet-phy@16 to ethernet-phy@10 to match.
The actual PHY address (reg = <16>) is unchanged.
Both the standard TX6s (AXP305) and TX6s AXP313 variant shared the
identical compatible = "tanix,tx6s", "allwinner,sun50i-h616" string,
making them indistinguishable to anything matching on compatible.
Added a distinct primary compatible ("tanix,tx6s-axp313") for the
AXP313 variant while keeping the shared fallbacks, updated
consistently across the U-Boot defconfig and all 3 kernel DTS
patch versions.
The AXP313 variant's WiFi power regulator (reg_vcc_wifi) had
startup-delay-us = <200000> to give the WiFi chip time to settle
after WL_REG_ON goes high before SDIO probes it. The standard
AXP305 variant was missing this delay entirely despite using the
identical WiFi chip and power sequencing. Added for consistency
and to avoid the same SDIO probe-timing issue across all 3 kernel
versions.
…onfig

An earlier commit changed these DRAM tuning symbols from
CONFIG_DRAM_SUNXI_* to CONFIG_DRAM_SUN50I_H616_*, based on a
mistaken comparison against the naming used in the standard
tanix_tx6s_defconfig. Verified against this U-Boot version's
actual Kconfig (arch/arm/mach-sunxi/Kconfig): DRAM_SUN50I_H616
is only the top-level enable symbol; the individual DRAM tuning
parameters underneath it (DX_ODT, DX_DRI, CA_DRI, ODT_EN, TPR0/2/
10/11/12, etc.) are genuinely namespaced DRAM_SUNXI_*. The
previous change caused Kconfig to reject the values as invalid
symbols and drop into an interactive reconfigure prompt, hanging
non-interactive builds. Confirmed fixed with a full clean build.
series.conf referenced patches.armbian/3401-net-wireless-backport-aic8800-sdio-v2025_0926_91c9dae5-mm2.patch,
which doesn't exist anywhere in the tree. This would break kernel
patch application for anyone building the sunxi-7.0 branch.
- Fix series.conf indentation for 0110-...ap6330-firmware.patch in
  sunxi-6.18 and sunxi-7.0 (spaces -> tab, matching surrounding lines)
- Remove stale disabled references to
  patches.backports/32-pinctrl-sunxi-a523-Remove_unneeded_IRQ_remuxing_flag.patch
  and patches.backports/33-arm64-dts-allwinner-a523-Add_missing_GPIO_interrupt.patch
  from sunxi-6.18/series.conf. These were disabled with a leading '-'
  earlier to unblock the build (unrelated to this board), but upstream
  has since fully deleted both patch files and their series.conf
  entries, so these leftover references pointed to nothing.
Per review feedback, plain device trees that don't modify any
existing upstream file can go directly in dt_64/ instead of being
wrapped in a null-patch. Moved sun50i-h616-tanix-tx6s-axp313.dts
there and removed the now-redundant 0646 patch and its series.conf
entry. Confirmed with a clean build that the DTB still gets picked
up and compiles correctly with no separate Makefile patch needed.
Same as the axp313 variant: 0645 only created a new file and never
modified anything upstream, so per review feedback it's now a plain
.dts in dt_64/ instead of a wrapped null-patch. Removed the 0645
patch and its series.conf entry. Confirmed with a clean build that
both TX6s variants' DTBs still compile correctly together.
CodeRabbit flagged an inconsistency between 0010/0011/0012's DRAM
tuning symbols. Verified against this U-Boot version's actual
Kconfig (arch/arm/mach-sunxi/Kconfig): the real namespace for these
DRAM tuning parameters is CONFIG_DRAM_SUNXI_*, not
CONFIG_DRAM_SUN50I_H616_* (that's only the top-level DRAM_SUN50I_H616
enable symbol). This was confirmed empirically: 0011 briefly used
the SUN50I_H616_* namespace and caused Kconfig to reject the values
and hang on an interactive reconfigure prompt during a non-interactive
build. Aligned 0010 and 0012 to the same DRAM_SUNXI_* namespace 0011
already uses, since 0011 is the one actually build-tested for this PR.
Completes the dt_64 migration started for sunxi-6.18. Both variants'
DTS content moved to plain .dts files under dt_64/, and 0645/0646
patches plus their series.conf entries removed for both kernel
versions. Also caught and fixed the same WiFi host-wake interrupt
issue in sunxi-6.12's axp313 DTS that was already fixed in
sunxi-6.18 but never carried over here (sunxi-7.0 was already
consistent). Confirmed with a clean full rebuild.
Per maintainer feedback, this script's scope and provenance were
unclear for this PR - it targets multiple boards/families, not just
this one, and its placement under h618 blobs read as more official
than warranted. Confirmed by testing that audio works correctly
without it; the only issue was selecting the right PulseAudio
output (board has 3 stereo outputs: analog, HDMI, SPDIF). A properly
scoped version can be proposed separately later if needed.
CodeRabbit correctly caught that the earlier host-wake interrupt
removal only applied to the axp313 variant's wlan node - the
standard (AXP305) TX6s variant still had interrupt-parent,
interrupts, and interrupt-names in its wlan node across all three
kernel versions, now migrated to dt_64/sun50i-h616-tanix-tx6s.dts.
Removed for consistency with the axp313 variant, since this board
family's actual WiFi chip doesn't correctly drive PG15 as host-wake.
Confirmed with a clean build.
@alnahian2011
alnahian2011 force-pushed the feat/add-tanix-tx6s-axp313 branch from 3cfd6ea to 6284277 Compare August 5, 2026 03:57
@alnahian2011
alnahian2011 requested a review from deece as a code owner August 5, 2026 03:57
@alnahian2011

alnahian2011 commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

you added a commit after the pr was approved and marked as ready to merge which basically invalidates the review state since the whole pr was altered. so automatically flipping the labels is correct.

Is this finished now?

Yes, it makes sense. The most recent change addressed a genuine issue that CodeRabbit discovered (host-wake interrupt was only eliminated from axp313, not the standard form). I just took a final look. If anything else needs to be changed, please let me know.

@EvilOlaf
EvilOlaf merged commit 43d7f8a into armbian:main Aug 5, 2026
13 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 BSP Board Support Packages Hardware Hardware related like kernel, U-Boot, ... Needs review Seeking for review Patches Patches related to kernel, U-Boot, ... size/large PR with 250 lines or more

Development

Successfully merging this pull request may close these issues.

2 participants