HCL:VegaS95
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.