Skip to content

[RG35XX Plus revised board] Built-in WiFi (RTL8821CS) never enumerates — 8821cs.ko loads, power applied, but SDIO times out (cmd 52/5 RTO) #90

Description

@Sylveex

Knulli build version

scarab 2026/05/11 (20260511) — knulli-h700-rg35xx-plus-scarab-20260511

Your architecture

Anbernic RG35XX Plus (revised H700 hardware revision)

Issue description

Built-in WiFi is completely non-functional on the revised RG35XX Plus. No wlan0 interface; Network Settings show no WiFi technology; the Wireless_Hybrid_Fix toggle has no effect.

Unlike the older report (archived knulli-cfw/GPG[4cd7b1715e27], which assumed an RTL8723DS chip + a missing r8723bs module), the actual chip here is RTL8821CS, and its driver is already present and loaded. The failure is at SDIO enumeration: the chip is powered but never answers SDIO commands, so it never appears on the bus.

Detailed reproduction steps

  1. Flash knulli-h700-rg35xx-plus-scarab-20260511.img.gz to a fresh SD card and boot.
  2. Network Settings → Enable WiFi → scan → "No Wi-Fi Networks found".
  3. Via ADB: no wlan0; /sys/bus/sdio/devices/ is empty; rfkill shows only sunxi-bt.

Details of any attempts to fix this yourself

Diagnostics via ADB root shell:

  • Chip: RTL8821CS on SDIO bus sdc1 (mmc host mmc2).
  • Driver 8821cs.ko IS present and loaded (/lib/modules/4.9.170/kernel/drivers/net/wireless/rtl8821cs/8821cs.ko) — identical to the official Anbernic stock firmware.
  • Power rail axp2202-cldo4 is enabled; platform device soc@03000000:wlan is bound to sunxi-wlan (DT node: compatible="allwinner,sunxi-wlan", wlan_busnum=<1>, wlan_power="axp2202-cldo4", wlan_regon=<0x4b 06 12 …>, status="okay").
  • dmesg shows power is applied but the chip never answers SDIO:
sunxi-wlan soc@03000000:wlan: bus_index: 1
sunxi-wlan soc@03000000:wlan: check wlan wlan_power voltage: 3300000
sunxi-mmc sdc1: sdc set ios:clk 400000Hz ...
sunxi-mmc sdc1: smc 2 p1 err, cmd 52, RTO !!
sunxi-mmc sdc1: smc 2 p1 err, cmd 5, RTO !!    (repeated)
sunxi-mmc sdc1: ... vdd 0 ... OFF
  • A runtime driver rebind (unbind/bind on sunxi-wlan) + rmmod/insmod 8821cs reproduces the exact same CMD52/CMD5 RTO — so it is not a one-shot boot-timing fluke.

Comparison with working stock firmware: The official Anbernic stock firmware V1.2.3 (RG35XX+-P-V1.2.3-EN16GB-251225) uses the same kernel (4.9.170) and the same 8821cs.ko, and has working WiFi. I extracted its device tree; the wlan node is:

wlan {
    compatible = "allwinner,sunxi-wlan";
    wlan_busnum = <0x01>;
    wlan_power = "axp2202-cldo4";
    wlan_regon = <0x4b 0x06 0x12 0x01 ...>;
    wlan_hostwake = <0x4b 0x06 0x0f 0x06 ...>;
    status = "okay";
};

Stock also loads the module late via /etc/rc.local (insmod .../8821cs.ko).

Since the driver and kernel are identical to stock and stock works, this looks like a wlan_regon/reset-timing or sunxi-mmc (sdc1) config difference in Knulli's device tree for the revised board — the chip is powered but effectively held in reset / not clocked correctly, so SDIO init times out. Request: align the revised RG35XX Plus DT / mmc (sdc1) config with stock V1.2.3 so the RTL8821CS enumerates.

Details of any modifications you have made to Knulli.

None — fresh install of Scarab. All diagnostics were gathered via ADB (USB Mode → ADB), no modifications.

Logs and data

Key dmesg lines are quoted above. Related (archived, less-accurate) report with multiple affected RG35XX Plus users: knulli-cfw/distribution#463 — note that one assumed the wrong chip (RTL8723DS / missing r8723bs); on the revised board the chip is actually RTL8821CS and its driver is already present, so the fix is a DT/mmc timing issue rather than a missing module. I have the extracted stock V1.2.3 .dtb/.dts and can provide any additional ADB diagnostics on request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions