Posted on 8 Comments

AML-S905X-CC Mainline Linux Preview Image 8 with eMMC Support

It has been over three months since our last preview image 7 for the AML-S905X-CC Le Potato platform and there has been a lot of working going into mainline Linux and u-boot by our partner BayLibre. Preview image 8 brings all of the work together into a flash-able image for our end-users.

PI8 Core feature upgrades:

  • Upgraded to mainline u-boot 2017.11
    • No longer using Amlogic’s u-boot
    • eMMC support
    • Saving u-boot environment
    • cvbs enablement through UART via “setenv enable-cvbs 1; env save”
  • Upgraded to mainline Linux LTS 4.14.29
    • New DMT Display Modes support
      • 640×480@60Hz
      • 800×600@60Hz
      • 1024×768@60Hz
      • 1152×864@75Hz
      • 1280×1024@60Hz
      • 1600×1200@60Hz
      • 1920×1080@60Hz
    • Fixed top USB Port by Ethernet causing USB subsystem to hang
    • Utilize kernel and kernel module deb package install
    • Power optimizations
  • Additional image work
    • eMMC support via lc_distro_transfer utility
      • Reworked fstab mount descriptors
      • Reworked partition resize utility
    • Preliminary EFI support
    • Headless and XFCE Desktop snapshots in one image

Some known issues with this release and additional improvement work:

  • shutdown/suspend/wakeup
  • MicroSD card may hang on reboot command
  • package u-boot and board specific utilities and binaries into deb files
  • add repository to apt for board support deb files
  • display pipeline improvements and rework for additional resolutions
  • wayland support
  • Ubuntu 18.04 LTS
  • video codec acceleration support
  • overlay auto-loading in u-boot
  • eMMC performance improvements
  • EFI support improvements

eMMC Support

eMMC modules are solid-state flash devices created for embedded systems. They offer higher reliability and additional performance compared to MicroSD cards. They are purchased separately and attached to the eMMC connector on the bottom side of the board.

We currently have eMMC 5.x modules and eMMC 4.x modules. You can attach an eMMC 5.x module on a board that supports eMMC 5.x only. If you attach an eMMC 5.x module on a board with only eMMC 4.x support like the ALL-H3-CC, it will not work. The reverse is also true. The performance differences between the two module types are small to negligible.

lc_distro_transfer utility

This image includes the release state of our distro as snapshots on top of the BTRFS filesystem. We added a new script called lc_distro_transfer that utilizes core design features of our image to transfer system snapshots created during image building to eMMC and back to MicroSD card.

sudo lc_distro_transfer –help

For example, you can flash the headless or desktop image from a MicroSD card to eMMC after booting up. After login and boot-up, simply run the following command to flash the headless image to eMMC:

sudo lc_distro_transfer libre-computer/aml-s905x-cc /dev/mmcblk0 emmc lc-ubuntu-16-headless

If you want to flash the desktop image to eMMC, run the following:

sudo lc_distro_transfer libre-computer/aml-s905x-cc /dev/mmcblk0 emmc lc-ubuntu-16-xfce

Once the image is flashed to eMMC, you can shutdown and remove the MicroSD card. The devices will then boot to eMMC. If you want to flash a blank MicroSD card from eMMC, you can run the following:

sudo lc_distro_transfer libre-computer/aml-s905x-cc /dev/mmcblk1 sd lc-ubuntu-16-xfce

Please note that you can only flash the image that you original flashed to the eMMC. You cannot flash the headless image back onto the MicroSD card if you originally flashed the xfce image onto the eMMC.

The image release can be downloaded here.

You can let us know your thoughts on issues for this image on the LoveRPi forum. Once Ubuntu 18.04 LTS is out, we will have a lot of additional work lined up such as Wayland and Mali 3D support.

Posted on 1 Comment

Raspberry Pi 3 Model B+ Benchmarks, Review, and Comparison

Raspberry Pi 3 Model B+ is the newest offering from the Raspberry Pi Foundation sharing much of the same features as the Raspberry Pi 3 Model B with small but significant improvements on many fronts while maintaining the same price. Below is some highlights.

  • Increased CPU clock speed from 1.2GHz to 1.4GHz
  • Increased memory throughput
  • Integrated Heat Spreader (IHS) for SoC
  • Integrated MxL7704 PMIC for power management and delivery
  • Modularized WiFi/BT Radio with 5GHz and improved performance
  • Gigabit Ethernet (albeit still over USB 2.0)
  • Ethernet headers for PoE addon

We ran a comprehensive set of benchmarks on the new model, old model, and our boards to compare performance and power consumption.

We begin with heavily optimized C applications like C-Ray and SciMark2. Raspberry Pi 3 Model B+ is still utilizing 32-bit kernel and userland like its predecessor. Raspbian, the official OS of Raspberry Pi, has not moved to 64-bit ARMv8 despite the ARM Cortex-A53 CPU cores supporting it. Legacy 32-bit can help performance for this specific benchmark since some data structures and pointers are smaller than in 64-bit ARMv8 mode. Performance increases around 20% from the Model B, which means that the Raspberry Pi 3 Model B+ matches the performance of similarly clocked ROC-RK3328-CC. It is still slightly behind the AML-S905X-CC since that is about 100MHz faster.

Now we move onto server based workloads. Redis is a good test of overall system performance as it stresses not just the CPU but also the interrupt and memory subsystems. We see the Raspberry Pi 3 Model B+ improving greatly in performance over the previous Model B but still not enough to catch up with modern 28nm SoCs with faster DDR3/4 running ARMv8 kernel and userland.

Java benefits heavily from having native 64-bit arithmetic and performs signficantly faster on the boards running true 64-bit OSes. Despite nearly a 30% increase in performance, the Raspberry Pi 3 Model B+ is left behind.

Sysbench results should be taken with a grain of salt when comparing different binaries but this demonstrates the necessity of true 64-bit ARMv8 kernel and userland. Even with the performance gains, Raspberry Pi products are still held back by 32-bit ARMv7 Raspbian OS. Both the Renegade and Le Potato boards deliver more than 10x the performance.

Raspberry Pi 3 Model B+ uses a newly revised BCM2837B0. There are four limiting features of this SoC just like the previous BCM2837 in the Model B. First, it is missing ARM ISA’s Crypto Extensions. For encryption and decryption workloads such as VPN, SSL, SSH, and HTTPS, it’s NEON accelerated implementation is roughly 15x slower. This is one of the critical missing features that make the Raspberry Pi 3 Model B+ a poor choice for server based workloads that depend on these security instructions.

The second limiting feature has to do with the GPU which is a 30-bit design limited to 512MB of RAM. It only supports DDR2 so we haven’t seen the Raspberry Pi move to faster memory like LP/DDR3 like on Le Potato or LP/DDR4 on Renegade. As a result, memory intensive workloads will be much slower although the Model B+ is marginally faster than the Model B.