Android TV is based on Android, but adds the TV Input Framework and the Lean Back APIs with the user interface designed for larger displays. LHG has not changed the apps and higher level software from AOSP, but they’ve made sure it could work on Hikey board by working on the Linux drivers and Android user space stack to make sure the Live TV App and Android TV Channel Service implemented in AOSP can work properly on the hardware.
Now that does not mean any random Chinese TV box manufacturer will be able to ship TV boxes running “Android TV” instead of Android for phone or tablet, as AOSP lacks Google Mobile Services (GMS), and Android TV solutions must be licensed and approved by Google, and must pass various tests such as the Android Compatibility Test Suite (CTS), the Compatibility Definition Document (CDD) and various audio & video performance criteria. But at least most of the low level software should be taken care of, so it would simplify and speed up development.
Android TV Sample App – Click to Enlarge
Hikey board hardware complies with 96Boards “Consumer Edition” specifications, but lacks typical TV box features such as an IR receiver, which is why 96Boards TV Platform specifications were published last year. LHG probably started with Hikey because development has been going on for a longer time, and the platform is more mature, but one of the next steps will be to work on 96Boards TV Platform compliant boards such as HiSilicon Poplar board.
You’d think Cyber Monday should be over by now, but ITEAD Studio still has a clearance with real 70% discount, as 96Boards hardware compliant LeMaker Hikey board is now sold for just $29.70 instead of the usual $99 price.
A quick reminder of the specifications:
SoC – HiSilicon Kirin 620 octa core Cortex A53 processor @ 1.2 GHz with ARM Mali-450MP4 GPU
System Memory – 2 GB LPDDR3 @ 800 MHz
Storage – 8GB eMMC + micro SD slot
Video Output / Display – HDMI up to 1080p, MIPI-DSI interface
Connectivity – 802.11 a/b/g/n Wi-Fi, Bluetooth 4.1 LE (WL1835MOD module)
SoC – HiSilicon Hi3798C V200 quad-core 64-bit ARM Cortex-A53 CPU up to 2.0 GHz per core with ARM Mali-T720 GPU supporting OpenGL ES 3.1/3.0/2.0/1.1/1.0, OpenVG 1.1, OpenCL 1.2/1.1 Full Profile, RenderScript, and Microsoft DirectX 11 FL9_3
Memory – 1 or 2 GB DDR3 (Specs are conflicting depending where you look)
Storage – 8GB eMMC flash + micro SD card slot
Video Output – HDMI 2.0a with HDCP 2.2 up to 4K @ 60Hz
Video Decoding – H.265/HEVC Main/Main10 and VP9 up to 4K @ 60 fps
Audio Output – HDMI, optical S/PDIF, 3.5mm audio jack
Connectivity – Gigabit Ethernet, 802.11 b/g/n/ac WiFi and Bluetooth
USB – 1x USB 3.0 port, 2xUSB 2.0 host ports, 1x micro USB OTG port for console
Misc – IR receiver, boot selection jumper, LEDs, power button
Security – ARM Trustzone, trusted execution environment, secure boot, secure storage, secure video path, DRM, DCAS
Power Supply – 12V / 2A
Dimensions – 160 x 120 mm (96Boards TV platform specs)
Temperature Range – 0°C to +70°C
Hisilicon Hi3798C V200 is quite an interesting processor with many high speed and media interfaces, and while they used most of them, they did not leverage support for SATA. Luckily, there’s still USB 3.0 and PCIe if you need faster storage.
Hi3798C V200 Block Diagram – Click to Enlarge
The board is sold with Android 5.1.1, but it will be the main development platform of Linaro Digital Home Group which aims “to continue creating optimized, high-performance secure media solutions for ARM on both Linux- and Android-based platforms. Licensees of the RDK (Linux) will be able to create Open Embedded/Yocto RDK builds for Poplar. The Poplar board will also serve as a common development platform for Android TV (AOSP) as well as for TVOS-based STB solutions used in China.”
Hikey is a one of the first 96Boards compliant development board manufactured by either LeMaker in China and CircuitCo in the US, and while the hardware requirements of 96Boards specifications are rather easy to meet, the software requirements including “bootloader (open source), accelerated graphics support (binary or open source), a Linux kernel buildable from source code based from mainline, or the latest Google-supported Android kernel version” are much harder to comply with. Linaro had a very good news for Linaro Connect Bangkok as they announced Hikey board was supported in Android Open Source Project (AOSP).
So that means Hikey board will run the latest version of Android like Google Nexus devices, with the advantage of also getting more recent devices.
If you want to build an Android image from AOSP just retrieve the source code:
If you are interested in finding out how Linaro managed to do this feat, and what kind of challenges they had to overcome, you may want to watch Linaro Connect “HiKey and AOSP collaborative experience” presentation.
You can also download the presentation slides for a quick look. Some interesting tidbits in the talk include that Google plans to use Linaro’s Linux 4.4 experimental tree, and Rockchip is also working on doing porting some hardware to AOSP.
Linaro Connect Bangkok (BKK16) will take place on March 7 – 11, 2016, and the schedule is now available for the 5-day event with keynotes and sessions. Whether you’re going to attend or not, it’s always interesting to check the schedule to find out what’s going on in terms of ARM Linux development.
The five days will focus on work by different Linaro groups, but really sessions are mixed for any given day, and I’ve created a virtual schedule for each day with available information, as Linaro has become a little more closed to the outside than when it was launched a few years ago.
Monday 7 – LITE (Linaro IoT & Embedded Group)
1400 – 14:50 – Evolution of the Reference Software Platform Project
The Reference Software Platform lead project was introduced in Linaro Connect San Francisco 2015, and since then it evolved and matured with the completion of the first tree big milestones (the 15.10, 15.12 and 16.03 releases). This session will revisit the work done as part of the previous releases, covering the projects that were incorporated through the process and our vision for the future milestones.
15:00 – 15:50 – Budget Fair Queueing heuristics in the block layer
The Budget Fair Queue (BFQ) I/O scheduler in the Linux block layer is a new heuristic approach to improving user-perceived latencies in block accessible media such as hard disks, SSD and (e)MMC and SD cards. Linaro is investing and helping in pushing this development ahead. The session describes what the BFQ patch set does and how.
– – A Gentle Introduction to Trusted Execution and OP-TEE
Smart connected devices such as mobile phones, tablets and Digital TVs are required to handle data with strong security and confidentiality requirements. A “Trusted Execution Environment” (TEE) provides an environment for processing data securely, protected from normal platform applications. This talk is intended as an introduction to Trusted Execution, and the open-source Trusted Execution Environment OP-TEE in particular. It introduces the GlobalPlatform TEE Specifications, explains how Trusted Execution is implemented by ARM TrustZone and OP-TEE, and outlines how trusted boot software manages the secure boot of an ARM platform. Finally, it gives some pointers on how to get started with OP-TEE.
Tuesday 8 – LHG & LMG (Linaro Digital Home Group and MObile Group)
– – PlayReady OPTEE Integration with Secure Video Path
This presentation provides a current view of the Security work performed in LHG. The focus is on hardware protected DRM integrated with OP TEE, creation of a Secure Data Path coupled with the Open Content Decryption Module, and the lessons learned from integrating third party libraries into trusted applications.
– – AOSP RAM reduction project retrospective
The Goal: Reduce AOSP memory requirements without hurting performance too badly.
What was tried:
Make use of new features in updated toolchains
Split libraries into smaller parts
Replace the memory allocator
– – Chromium with V4L2 playback – is it ready today?
This BOF session will analyze architectural challenges migrating Chromium from the desktop to embedded devices. The impacts of different GPU libraries with their respective limitations will be discussed. We welcome audience participation in an open discussion on the V4L2 adaptation in Chromium.
– – What’s broken on ARM64?
The arm64 port is now in pretty good shape with most things ported and built in distros. However we know that there is plenty of software that is not optimised and some may not actually work at all. Please come along and moan about anything you have found which doesn’t work as well on arm64 as it does on x86. We (Linaro, ARM and Debian) want your feedback on where to direct effort next.
– – How to generate power models for EAS and IPA (without talking to a hardware engineer)
Generating a specific power model for the platform is a pre-requirement for deploying EAS (Energy Aware Scheduler) and IPA (Intelligent Power Allocation). This makes understanding power models and how to generate parameters for them a useful skill. In this session we demonstrate how to use workload automation to gather power data from a board. We will then describe how to derive rough values for the EAS and IPA power models using nothing but this easily observable data. We will not rely on any information provided by OEM or SoC vendor.
– – Upstreaming 201
This session is an advanced course on Linux kernel upstreaming fundamentals. The course covers how the arm-soc kernel tree is maintained and why that is important to ARM Linux kernel developers. The focus of the course is the explanation of the detailed mechanics of creating and posting patch series to upstream mailing lists for several common cases. Annotated session content is made up of previously upstreamed ARM support captured from emails to the kernel mailing lists. The target audience is both software engineers and engineering managers preparing to upstream software into the kernel. The topic requires a solid background in software configuration management terminology and the git SCM tool as well as a good technical understanding of the Linux kernel itself.
Wednesday 9 – LEG (Linaro Enterprise Group)
This presentation provides the background for the requirements of the latest 96Boards TV Platform specification. It describes the range of set-top features that can be delivered and focuses on the key software and firmware support.
– – ARMv8 Server Lab Users BoF
The ARMv8 Server Lab has been up and running for more than a year since the inception in the late Fall of 2014 and helped continuously those who need server-grade hardware to verify their software, from the kernel to user applications. In this BoF at BKK16, the Server Lab users get together for the first time to review what we have accomplished so far and share knowledge obtained from our experiences in the Lab. Constructive feedback from the users should shape the direction of the Lab in the coming months of 2016. The BoF structure is as follows: possibly a few short talks from the users, 10-15 minutes each, will be given after the introductory address of the status of the Lab from the managers, followed by a discussion between the attendees.
– – ILP32 Performance on AArch64
ILP32 is a programming model that may be useful on AArch64 systems for performance and also for legacy code with 32-bit data size assumptions. We combined ILP32 support from upstream projects with the LEAP distribution to enable experimentation with this model. This talk discusses the relative benchmark performance of the LP64 and ILP32 programming models under AArch64.
– – The tool called Auto-Tuned Optimization System (ATOS)
ATOS is an Auto Tuning Optimization System that is able to find automatically the best performance/size tradeoff from a build system and a training application. The input of ATOS tools are a build command and a run command. From the build command, ATOS will infer an internal build configuration that it will run with different sets of compiler options. These build configurations are executed with the run command from which code size and performance will be extracted.
From the set of build configurations that ATOS explores, one can extract the preferred trade-off between code size and performance. The extracted build configuration can be archived and replayed later in order to generate the optimized executable without any modification into the initial build system.
The nice property of ATOS is that NO modification of the sources or the makefiles are needed. ATOS can work on any large/deep project, as soon as the compiler used is gcc or LLVM under Linux.
– – Integrating and controlling embedded devices in LAVA
Previous introductory tutorials on LAVA have focused on virtual platforms. This is an end-to-end tutorial as a basis to evaluate LAVA with one or more embedded targets using U-Boot. It integrates both a physical bootloader device with a stand-alone installation of LAVA, along with a simple PDU for target power control which is based on off-the-shelf Arduino components and fully integrated with pdudaemon. It covers device requirements, device configuration for 32- and 64-bit platforms, use of lavatool, tftp, pduclient and logging via the LAVA web interface and /var.
– – ARMv8 Firmware Mini-Summit
Current state of ACPI on ARM
Support/backing for a longer term organization: mailing lists (firstname.lastname@example.org), web sites, further meetings…
Use of _DSD device properties
Follow-up on others items from the last meeting (mostly promised documents).
Thursday 10 – LNG (Linaro Networking Group)
– – Android HAL Consolidation Status
Update on progress and discuss next steps on Android HAL consolidation Lead Project
– – Applications on ODP
Session discussion on various opensource applications on ODP and their implementations. Applications to be discussed include NGiNX, TRex, OFP
– – Device Tree Standardization
Announcement of the process to update the old specs and kernel documentation into a new Device Tree Specification
– – Workspace setup tips and tricks
The complexity of the tools and working environments is very high in IT area, especially in software engineering field. Thanks to Linux’s freedom of choice and flexibility it gets even higher. Due to the amount of time needed for learning all those bits of technology, it is not practically possible to set up an ideal workspace without talking to others and learning the results of their research. So, let’s come together and discuss hardware/software setups for our workspaces and learn from each other.
Friday 11 – 96Boards and Community
– – Kernel and bootloader consolidation and upstreaming
An update to the state of reference platform kernel and bootloader and a discussion about the patch-inclusion policy. We’ll also cover roadmap plans. Participation is invited if you have ideas on how we can make it easy to use the reference platform kernel for your development projects.
– – 96Boards mezzanine hardware ecosystem
An overview of the work being done to support the mezzanine hardware ecosystem. Will cover the tools available, the boards that have already been created, and materials provided to support mezzanine board designers.
Materials require having registered to Linaro Connect BKK16, but several PDF slides have been uploaded to Linaro slideshare, you can get a peak if one subject interests you.
Anybody can attend, but you’ll need to purchase tickets ranging from 500 GBP ($726) for one day to 1,600 GBP ($2323) for the full week, unless you are a student,work in academia, or open source projects connected with ARM development, in which case you may get a free ticket.
Linaro’s 96Boards initiative was launched at the beginning of the year with Hikey board, and beside the hardware specifications, 96Boards also has some software requirements that include support for “bootloader (open source), accelerated graphics support (binary or open source), a Linux kernel buildable from source code based from mainline, or the latest Google-supported Android kernel version, or the last two LTS kernels, and one of more of the following operating systems: Android, Debian/Ubuntu, Fedora/Red Hat, or an OpenEmbedded/Yocto build of a Linux distribution”.
Click to Enlarge
In order to achieve this goal, Linaro introduced the Reference Software Platform for 96Boards, and they’ve now pushed the first Alpha release for Hikey and DragonBoard 410c boards. The release includes a bootloader, the Linux kernel, Debian and AOSP with firmware, source code, and documentation.
Some highlights of the Reference Software Platform 15.10 Alpha release include:
CE Debian RPB (Reference Platform Build)
Debian 8.2 “Jessie”
Linux 4.3 kernel with additional patches
OpenJDK 8 included by default
96Boards artworks and default settings
CE AOSP RPB (Hikey board only)
AOSP Android Marshmallow 6.0
Linux 3.18 based kernel
CE refers to the consumer edition of 96Boards specifications, as there’s also an Enterprise Edition (EE), which is not covered by this release.
Some of keys changes are listed on Android Source microsite and include Doze and App Standby to save battery, new authentication interface sich as Fingerprint, Gatekeeper, and Keymaster, adoptable storage, Bluetooth stylus support, and more. If you want a more detailed changelog at the source code, Opersys got you covered by listing all differences between 5.1.1_r24 (LMY48W) to 6.0.0_r1 (MRA58K) with newly added components, removed components, and modified components.
Linaro 15.07 has been released with Linux 4.2-rc3 (Baseline), Linux 3.10.83, 3.14.45 and 3.18.17 (LSK), and Android 5.1.1_r8.
The Linux kernel got various bug fixes, and a power reduction technique has been implemented for Qualcomm processor. Progress has been made to boot Android with UEFI on Hikey board, and work is still on-going on 96boards including Hisilicon Hikey, Qualcomm DragonBoard 410c, and an upcoming and yet-to-be-formally-announced Marvell PXA1928 board called Helium.
Highlights of this release:
Linux Linaro 4.2-rc3-2015.07
linaro-android topic updated to 4.2-rc3 and recent AOSP/android-3.18
included GATOR version 5.21.1
llct-misc-fixes topic: “HACK: of: Limit FDT size for CRC check on arm64” has been dropped. FVP model was the last target to require this hack, but the new FVP firmware doesn’t need it anymore
updated integration-linaro-vexpress64 topic by ARM LT: Versatile Express TC2 support is back, HDLCD display now works on TC2, the topic will be renamed to integration-linaro-vexpress next cycle
updated integration-linux-qcomlt topic by Qualcomm LT: QCOM Core Power Reduction (CPR) support has been added
linaro-builddeb-tweaks topic is dropped (most of our changes have been upstreamed)
Linaro builds of AOSP 15.07
Android baseline updated to 5.1.1_r8
ART CI setup for TIP and stable builds
Boot to gui tests added for tip and stable builds
ART code coverage for tip and stable builds
m-preview based builds setup for emulators
ART-host-gtests added for tip and stable builds
Hikey builds updated to 5.1.1_r8. Android boots with UEFI and GRUB on HiKey. Wifi drivers are integrated in the build system. Drivers are built as part of Android build process.
Linaro OpenEmbedded 2015.07
integrated Linaro GCC 4.9-2015.06
updated linux-linaro to 4.2-rc3
disabled aarch64 bootwrapper
integrated various improvements for LNG CI
fixed bootimg.bbclass to work with all kernel image types
DragonBoard 410c is now using NetworkManager only to manage the network (previously a combination with systemd-networkd/resolved has been used).
HiKey made some progress toward the switch to UEFI. GRUB is now integrated into the snapshots builds for both AOSP and Debian.
Initial Debian based build for Marvell PXA1928 Helium is setup and available.
Visit https://wiki.linaro.org/Cycles/1507/Release for a list of known issues, and further release details about the LEB, LMB (Linaro Member Builds), and community builds, as well as Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain components.