Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Making Allwinner H616 run armbian OS

Featured Replies

@Nick A I have one of those T95 H616 AXP313a tv boxes. I have successfully compiled a mainline U-Boot image and it boots fine, all with UART input/output, but none of the images from your github repo work.

 

I only managed to boot MiniArch images up to 6.19 kernel but I couldn't get HDMI, Ethernet, WiFi or Bluetooth to work at all. Got any idea what could be missing? I can help in debugging if you'd like.

 

I attached the extracted and decompiled DTS from the stock Android 10 firmware of the device.

 

Thank you :)

extracted.dts

@boggy Try my Transpeed 8K618T image. It includes the most critical DTS settings for this hardware.

 

All your Dram settings in the dts have dram_type = <0x03> or DDR3. 

		dram_para1 {
			device_type = "dram_para1";
			dram_clk = <0x258>;
			dram_type = <0x03>;


cd-gpios = <&pio 8 16 GPIO_ACTIVE_LOW>;    /* PI16 */
 

		sdmmc@04020000 {
			compatible = "allwinner,sunxi-mmc-v4p1x";
			device_type = "sdc0";
			.
			.
			.
			cd-gpios = <0x53 0x08 0x10 0x06 0x01 0x03 0xffffffff>;


can you find the wifi chip on your board?

Edited by Nick A

@Nick A Hi, thank you for the quick response!

 

So far the attempts to boot the transpeed image would hang during boot most of the time, but I did manage to get a working shell once, albeit still without any networking.

 

The WiFi chip is BCM4334, the physical print on the chip wasn't too helpful, but in either case it's the exact same model as shown on the pictures on this article https://linux-sunxi.org/T95 (4/32 version).

 

I can't currently test HDMI but it is attempting to load Plymouth despite the config specifying otherwise.

 

I attached a boot log of the stock Android image, if it helps at all.

 

Thank you so much for helping out, I really appreciate it!

androidbtlog.txt

Edited by boggy
typo

My T95 hardware:

* **Model:** T95 Android TV Box
* **SoC:** Allwinner H616
* **Board:** H616-T95MAX-V4.0
* **RAM:** 4GB DDR3
* **Internal storage:** 64GB eMMC
* **Wi-Fi chip:** AW859A
* **PMIC:** AXP305
* **Ethernet:** 100Mbps, using the AC200/AC300 internal PHY
* **USB:** 2x USB 2.0 host ports
* **Video:** HDMI output
* **UART:** 3.3V logic
* **Boot method:** Debian from microSD using mainline U-Boot
* **Current OS:** Debian 12 Bookworm
* **Current test kernel:** Linux 7.3-rc3
* **Stock Android:** still intact on eMMC

Important detail: this is the **V4.0 board revision**, and some upstream T95 device-tree assumptions were based on other revisions. That mattered for things like the second USB port.

T95 Box

T95 H616 Linux issues and fixes so far:

* **Only 2GB RAM showing**

  * Fixed with a U-Boot DRAM-size patch. Box now sees the full **4GB**.

* **SD boot problems / wrong card detect**

  * Fixed by using the correct T95 device tree with the **PI16 SD card-detect GPIO**.

* **Debian 7.3 kernel would not mount root**

  * `root=UUID=` failed without initramfs.
  * Fixed by using:
    `root=PARTUUID=fe8d38d0-eebf-4bb1-aa05-baafaf8c3f50`

* **No HDMI output**

  * Added the H616 display-engine/HDMI patches and enabled HDMI in the T95 DTS.
  * HDMI now works at **1080p**.

* **Ethernet not working**

  * Fixed H616 EMAC/AC200 PHY support.
  * Ethernet now links at **100Mbps full duplex**.

* **One USB port had power but no data**

  * Stock Android DTS showed the V4.0 board also uses USB host 1.
  * Added:

```dts
&ehci1 {
    status = "okay";
};

&ohci1 {
    status = "okay";
};
```

* Both USB ports now work.

* **Mali/Panfrost GPU acceleration**

  * Still being worked on.
  * Panfrost times out because of the H616 PRCM GPU power-domain path. This is the last major issue.

Board: **H616-T95MAX-V4.0**
OS: **Debian 12**
Kernel testing: **Linux 7.3-rc3**

T95 H616 Mali-G31 Panfrost GPU Fix

Problem:
The Mali-G31 GPU was detected by the Panfrost driver, but GPU workloads would hang and fail with errors such as:

gpu sched timeout
gpu soft reset timed out
gpu hard reset timed out
error powering up gpu L2/shader/tiler

The issue was not missing Panfrost support. The GPU was not being powered and initialized correctly due to device-tree power configuration.

Fixes:

1. Increased GPU voltage
The board was running the GPU regulator at 900mV.
Changing vdd-gpu-sys to a fixed 950mV stabilized GPU operation.

Device tree:
regulator-min-microvolt = <950000>;
regulator-max-microvolt = <950000>;
regulator-name = "vdd-gpu-sys";

2. Restored GPU power domain
A previous workaround removed the GPU power domain:

/delete-property/ power-domains;

This allowed Panfrost to load but caused unstable GPU power management.

Restored:

power-domains = <&prcm_ppu 2>;

3. Linked the GPU regulator

Added:

mali-supply = <&reg_dcdcc>;

This allows the Mali GPU driver to correctly control the GPU power supply.

4. Increased CMA memory

Added kernel boot parameter:

cma=128M

The default 32MB CMA memory was increased to 128MB for improved DRM/display buffer reliability.

Final working setup:

- Kernel: Linux 7.3
- GPU: Mali-G31 Bifrost
- Driver: Panfrost
- GPU voltage: 950mV
- PRCM GPU power domain enabled
- CMA: 128MB

Validation:

GL_VENDOR: Panfrost
GL_RENDERER: Mali-G31 (Panfrost)
GL_VERSION: OpenGL ES 3.1

Repeated glmark2 tests completed successfully with no GPU scheduler timeouts.

Conclusion:
The T95 H616 Mali-G31 Panfrost issue was caused by incorrect GPU power sequencing in the device tree, not a lack of driver support. Correcting the regulator voltage, restoring the GPU power domain, linking the regulator, and increasing CMA memory resulted in stable hardware acceleration.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.