Jump to: navigation, search
Vega S95 Telos with UART cable

The Tronsmart Vega S95 Pro, Meta and Telos are TV set-top-boxes originally shipping with Android.

Technical data

  • Amlogic S905 SoC
    • 4x ARM Cortex-A53 CPU
  • USB
  • SD
  • Ethernet
  • SATA (on Telos only)

UART pins

When removing the (screwless) bottom of the device, there are four holes, from SD towards SATA they are: GND, TX, RX, Vcc.

The baudrate is 115200.

Manual installation

Vendor U-Boot

U-Boot needs MBR partitions (no GPT) and can only load from FAT partitions.

Both usb and mmc are implemented.

Amlogic kernel

By default in 2015-11-04-9e845bea41's meson64_defconfig the dwc_otg driver is built as module. Building it in will cause an error on boot. This rules out booting a USB rootfs unfortunately.

Booting from MMC works though, with the SD card showing up as mmcblk0.

Amlogic's kernel does not have a .dts for the Vega S95 specifically, you should extract that from the eMMC's boot partition. If you try to instead re-compile /proc/device-tree/ into a .dtb there will be some additional nodes causing hiccups.

Manual boot

On power-on press any key on the serial console to enter the U-Boot prompt.

setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait ramoops.mem_address=0x20000000 ramoops.mem_size=0x100000 ramoops.record_size=0x8000 ramoops.console_size=0x4000'
fatload mmc 0:1 0x1080000 Image
fatload mmc 0:1 $dtb_mem_addr telos.dtb
booti 0x1080000 - $dtb_mem_addr

Mainline kernel

Initial patches are available at [1]

Note that the upstream serial device is ttyAML0 rather than ttyS0.

setenv bootargs 'earlycon root=/dev/mmcblk0p2 rootfstype=ext4 rw rootwait'
fatload mmc 0:1 0x1080000 Image
fatload mmc 0:1 $dtb_mem_addr meson-gxbb-vega-s95-telos.dtb
booti 0x1080000 - $dtb_mem_addr

Chainloading mainline U-Boot

The vendor U-Boot supports TFTP:

set ethaddr $mac
set serverip X.X.X.X
set ipaddr X.X.X.X
set gatewayip X.X.X.X
tftp 0x01000000 aarch64/vega-s95/u-boot.bin
go 0x01000000

0x01000000 is the address seen in the relocate-rela line at the end of mainline U-Boot build.

For now you can reuse odroid-c2_defconfig, but an experimental vega-s95 implementation is in the works.

This is somewhat fragile, several tries may be needed until it works.

Note that the mainline odroid-c2 U-Boot will not detect the MAC address on the Vega S95 and generate a random one. As a workaround you can patch the config to set ethaddr=...\0 with the value from the vendor U-Boot's $mac variable used above.

With the pending distro boot support for mainline gxbb U-Boot it is then possible to boot GRUB and from there a mainline kernel.

See also