HiSilicon has showcased their latest server SoC and board at Linaro Connect Hong Kong 2015, with up to two processors with 32 Cortex A57 cores @ 2.1GHz, 8 DIMM DDR3 slots (up to 128 GB RAM), 12 SATA ports, 4 PCIe slots, 10GbE / GbE ports.
D02 board specifications:
SoC – Hisilicon PhosphorV660 Hip05 with 16 to 32 ARM Cortex-A57 cores @ up to 2.1GHz and 1MB L2 cache/cluster, 32MB L3 cache
System Memory – 2x Memory channel 4x DDR3 DIMM(4x DIMM per processor)
Dimensions – 305 x xyz mm (SSI-EEB/E-ATX Compatible). xyz = 330, 257, 272, 264, or 267 (Not sure yet)
The board can run Ubuntu, Debian, OpenSUSE, or Fedora. The company has released a hacking manual for D02 board, where you can find more details, and learn how to build the kernel, and hack around with Grub and UEFI among other things.
For example, provided you’ve already installed the right development tools,. including Aarch64 toolchain, you should be able to build the kernel for the board as follows:
git clone https://github.com/hisilicon/estuary
Charbax filmed a demo of the board running Ubuntu, Linaro LAVA server, and LXC (Linux Containers). The board currently come with Hip05 SoC with 16 Cortex A57 cores, but in a couple of months, the version with 32 cores will come out, and and Linaro engineers working on ARM64 server should get their hands on several boards.
MeLE PCG03 is an Intel Atom Z3735F mini PC with 2GB RAM, and 32GB eMMC. I’ve already posted some pictures of the device and board, and since Windows 8.1 with Bing NTE (with proper license) is installed, I’ll first test the device with Microsoft OS as reference, before trying Ubuntu or/and Android.
MeLE PCG03 Setup
The computer comes only with a power adapter, so you’ll need to find an HDMI or/and VGA cable for your display(s), and USB keyboard and mouse to get started. Optionally, you’ll also want an Ethernet cable, and since storage is limited an extra storage device be it a USB hard drive, flash drive, or SD card.
Once all is connected you can press the power button on the left side to boot the device. The boot normally takes about 20 seconds, but the first time, you’ll go through the usual Windows 8.1 setup (I assume), including country, time zone and language selection: 中文简体, 中文繁體, English, Français, Deutsch, Italiano, Nederlands, espanol, Português (Brazil or Portugal), русский, Čeština, slovenščina, ,فارسی Polski, українська, العربية or .עברית If your local language is not listed then you are out of luck.
You’ll also have to create a local account, or sign-in with an MSN account, and you should be done. So the process is pretty much straightforward.
Windows 8.1 Interface (Click for Original)
Click to Enlarge
The screenshot above is after cleaning up the junk a bit, and adding my own app. The box is connected to my 4K TV, but the maximum resolution supported by the device is 1920×1080, and the lowest 1024×768. You may also connect an extra monitor via the VGA port for a dual display setup. I’ll demo this below in this post.
Mele PCG03 System Info
Let’s get some more details about the system.
As advertised the system comes with a Z3735F processor, 2GB RAM, and the 32-bit version of Windows 8.1 with Bing activated. I also received a Windows Update while testing. The company also told me it would be possible to recover the firmware, but did not provide a link. They’ve just provided their FAQ explaining how to upgrade the firmware, and configure other things like audio and video output.
There’s a 28.7GB partition out of the 32GB eMMC, and about 16 GB free space. The screenshot above is after installing Firefox and Crystal Disk Benchmark.
Click to Enlarge
The Device Manager shows the list of devices, but we already knew about the hardware with tear-down. Realtek RTL8723 (BS) is also used in Meegopad T01 and Pipo X7, which should be good news for Android and Linux support.
I ran also HWiNFO32 to get more details about the CPU, which is incorrectly detected as Z3735D, but the other information should be correct, as both processor are very similar.
In case you wonder about the BIOS, it’s basically the same AMI Bios as other Intel Atom Z3735F devices.
AMI BIOS UEFI 2.3 (Click to Enlarge)
You can watch that video to see all options. This is for MeegoPad T01, but the BIOS is bascially the same, except the one in PCG03 has been built one month earlier.
MeLE PCG03 Benchmarks
PCMARK 8 is a standard benchmark for Windows, and covers lots of area include office use, video conferencing, gaming, web browsing and so on. I downloaded the basic version, and ran the baseline test.
PCMark 8 on MeLE PCG03 (Click to Enlarge)
MeLE PCG03 gots 1,105 points in PCMARK 8 HOME CONVENTIONAL 3.0 test. The software somehow detected an Intel Core i7-5960X…
It’s the first time I’ve run this benchmark so looked for some comparison online. For example an Intel Core i7-920 processor with Nvidia GeForce GTX770 gets 2,610 points. I was expecting a larger gap, but if you look into the details, you’ll find that Casual gaming is 10 times faster in the more powerful computer.
I measured the temperature on top and bottom of the enclosure right about the benchmark at respectively 39 °C and 46 °C, so that part is under control.
The internal storage is a Samsung eMMC 5.0 flash, and performance does show.
MeLE PCG03 Usability Testing
Benchmarks are nice, but nothing it worth and hands-on experience, so I’ve shot a video showing the device, some settings including storage and display, and tasks that may be challenging in competing ARM Linux hardware platforms:
Web Browsing in Firefox
Loading CNX Software
Playing an Embedded Video
Playing a 1080p Video in Full Screen mode
Playing a flash game (Candy Crush Saga)
Gaming with Asphalt 8
Kodi with 4K video playback
Dual display support with HDMI TV and VGA monitor
The refresh rate of my camera and the 4K TV does not match, so at time (desktop and web browsing), the video is a pain to watch but hopefully, it will give an idea of the performance and capabilities of this mini PC.
So overall the device is quite usable, but I experienced obvious stuttering while playing 1080p YouTube videos (Embedded or Full Screen), and animation in Candy Crush Saga were pretty slow. The good news was I could play some 4K videos in Kodi (albeit outputted to 1080p), and Asphalt 8 is running reasonably well, although a higher frame rate would be nice. With the wave of Intel Bay Trail mini PC, the VGA port is clearly a strong point of this box, especially dual display is working as it should. If you really intend to use this device as a PC for web browsing, emails (Outlook. Thunderbird), and an office suite, you’ll likely to run out of space pretty quickly, so an external storage device is a must.
If you miss Microsft BSOD, don’t worry it’s alive and well! This happened when I connected the hard drive via a USB hub, instead of directly to a USB port on the device. Maybe a power issue?
That’s all for today. I’ll write a separate post to thoroughly test video playback in Kodi Windows, and then try alternative operating systems such as Ubuntu and Android, and compare how they perform versus Windows 8.1.
Linaro usually releases images and source code on the last Thursday of the month, but since most people will have long holidays for Chritsmas and New Year, the last working Thrusday of this month was yesterday (18th). Linaro 14.12 release includes Linux kernel 3.18 (baseline), Linux 3.10.62 & 3.14.26 (LSK, same versions as last month), and Android 5.0.1 Lollipop.
Here are the highlights of this release:
Linux Linaro 3.18-2014.12
Based on v3.18 release
GATOR topic: version 5.20
updated topic from Qualcomm LT (includes IFC6410 board support)
updated integration-linaro-vexpress64 topic by ARM LT (FVP Base and Foundation models, and Juno support)
updated LLVM topic (uses the community llvmlinux-latest branch)
included ILP32 patch set v3 rebased on 3.18. Boot tested with aarch64 userland. Work is in progress to test with aarch64-ilp32 userland.
config fragments updated – SELinux related config options enabled in linaro-base.conf, device tree runtime self tests enabled in distribution.conf
Linaro builds of AOSP 14.12
built with AOSP toolchain
All the Android builds have been updated to 5.0.1
Audio on Versatile Express TC2 is fixed (Android 5.0.1)
DNS issue fixed on Juno, FVP models and Versatile Express TC2 (Android 5.0.1)
daily CI updated to include benchmarks for Versatile Express TC2 and Juno
Linaro OpenEmbedded 2014.12
integrated Linaro GCC 4.9-2014.11 and Linaro binutils 2.24-2014.11
You can visit https://wiki.linaro.org/Cycles/1412/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.
Linaro 14.10 has just been released with Linux kernel 3.17 (baseline), Linux 3.10.54 & 3.14.19 (LSK, same versions as last month), and Android 4.4.2 & 4.4.4.
Most of the work is a continuation of previous months working member hardware, and ARM64, but one particularly interesting point is that 90% of Debian packages have been built for ARM64, and the next version of Debian should have an official ARM64 port.
Here are the highlights of this release:
Linux Linaro 3.17-2014.10
updated linaro-android topic. In particular, CONFIG_IPV6=y is no longer the requirement for linux-linaro tree builds
GATOR version 5.19 (same version as in 2014.08 release). gatord is fixed to build for ARMv8.
dropped multi_pmu_v2 topic by ARM LT (no longer used)
updated topic from Qualcomm LT (include IFC6410 board support)
replaced integration-linaro-vexpress topic by integration-linaro-vexpress64. Starting from 2014.10 release, linux-linaro kernel tree will use the mainline support for 32-bit vexpress boards. integration-linaro-vexpress64 carried over FVP Base and Foundation models, and Juno support from the integration-linaro-vexpress.
updated LLVM topic (uses llvmlinux-2014.10.01 branch – the most recent v3.17-based version of llvmlinux-latest)
dropped ARMv7 big endian topic(obsoleted; most of the patches are upstream)
Debian arm64 support is going very well. More than 90% of the packages are built. The effort is on track to get next Debian release with an officially supported arm64 architecture.
KVM CI loop on Juno is completed. The remaining work is happening on Xen CI loop.
You can visit https://wiki.linaro.org/Cycles/1410/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.
So nothing particularly exciting happened this week, and 3.16 is out there.
And as usual (previous release being the exception) that means that the merge window for 3.17 is obviously open. And for the third time in a row, the timing sucks for me, as I have travel coming up the second week of the merge window. Many other core developers will be traveling too, since it’s just before the kernel summit in Chicago.
So we’ll see how the next merge window goes, but I’m not going to worry about it overmuch. If I end up not having time to do all the merges, I might delay things into the week of the kernel summit, but I’ll hope to get most of the big merging done this upcoming week before any travel takes place, so maybe it won’t come to that. So this is just a heads-up that the merge window *might* be extended.
Anyway, back to the changes since -rc7: it’s really fairly small stuff randomly all over, with a third being architecture updates, a third drivers, and a third “misc” (mainly mm and networking). The architecture stuff is small ARM updates (mostly DT), some x86 Xen fixups, some random small powerpc things. The shortlog gives a good idea of what kind of stuff it all is, but it’s really just 83 commits (plus merges and the release commit) and about a third of them are marked for stable.
So while 3.16 looked a bit iffy for a while, things cleared up nicely, and there was no reason to do extra release candidates like I feared just a couple of weeks ago.
Kernel 3.15 brought various file systems improvements, faster resume from suspend, etc… Some of Linux 3.16 main changes include:
Various KVM improvements: optimizations, support for migration, and GDB support for s390, little-endian support for POWER8, as well as MIPS improvements.
Xen – Virtual network interfaces now have multi-queue support for much better performance.
Goldfish virtual platform now has 64-bit support.
Hugepage migration has been turned off for all architectures except x86_64 since it is only tested on that architecture and there are bugs for some of the others.
Automatic NUMA balancing has been turned off for 32-bit x86. Existing 32-bit NUMA systems are not well supported by the code and the developers did not think the effort to support them would be worthwhile.
EFI – The kernel EFI code will now handle Unicode characters, and initial support for ARM64 (aarch64) had been added.
NFS – Patches to make loopback NFS mounts work reliably have been merged through the NFS tree. External data representation (XDR) handling in NFS has been reworked to support access control lists (ACLs) larger than 4KB. It also returns readdir() results in chunks larger than 4KB giving better performance on large directories.
Modules now have the read-only (RO) and no-execute (NX) bits set on their data sections much earlier in the loading process, before parsing any module arguments. This will further reduce the time window in which a misbehaving (or malicious) module can modify or execute its data.
Support for busy polling on stream control transmission protocol (SCTP) sockets has been added. Busy polling is set on a socket using the SO_BUSY_POLL socket option; it can reduce the latency of receives on high-traffic interfaces that support the option.
New features and improvements specific to the ARM architecture include:
AllWinner – All platforms: AXP20x PMIC and MMC support, 5 drivers + SMP reworked for AllWinner A31, touchscreen drivers for AllWinner A10. DTS added for Mele M9 and R7. You can read details about AllWinner changes here.
Rockchip – RK3xxx SoC I2C drivers
Xen on ARM systems now supports suspend and resume.
Hibernation support added for ARM targets.
Initial support for ARM64 (aarch64) had been added
SMP support has been added for Marvell Armada 375 and 38x SoCs. SMP has been reworked for the Allwinner A31 SoC.
New ARM SoC added: ST Microelectronics STiH407; Freescale i.MX6SX; Samsung Exynos 3250, 5260, 5410, 5420, and 5800; and LSI Axxia AXM55xx.
Nouveau driver has initial support for NVIDIA Tegra K1 GK20A devices.
Various changes for Atmel AT91, Marvell Armada, Fresscale i.MX, Samsung Exynos, and TI AM43xx SoCs.
Further details on Linux 3.16 will eventually be available on Kernelnewbies.org. For more details about ARM changes, remember to also check ARM architecture and drivers sections.
So I ended up doing an rc8 because I was a bit worried about some last-minute dcache fixes, but it turns out that nobody seemed to even notice those. We did have other issues during the week, though, so it was just as well. The futex fixes and cleanups may stand out, but as usual there’s various other random fixes since rc8 in there too: mainly drivers (drm, networking, sound, usb etc), networking, scheduling and perf tooling.
But it’s all been fairly small and quiet, which *may* of course be due to the fact that last week was also the first week of the merge window for 3.16. That might have distracted some developers. I’m not entirely convinced I liked the overlap, but it seemed to work ok, and unless people scream really loudly (“Please don’t _ever_ do that again”) and give good reasons for doing so, I might end up doing that overlapping merge window in the future too if it ends up helping out with some particular timing issue.
That said, I also don’t think it was such a wonderful experience that I’d want to necessarily do the overlap every time, without a good specific reason for doing so. It was kind of nice being productive during the last week or rc (which is usually quite boring and dead), but I think it might be a distraction when people should be worrying about the stability of the rc.
Of course, maybe the overlap ends up meaning that we get less noise during the last week of stabilization, and it actually helps. It could go either way. I’d be interested to hear what people thought, although I _suspect_ most people don’t feel strongly either way.
Anyway, with 3.15 released, my “master” branch has already merged the work in my “next” branch on my local machine, and I’ll be decommissioning the “next” branch once I push that all out. After that, any future merge window work will happen on “master”, and we’ll be back to the normal single-branch model for my tree.
Kernel 3.14 brought a file systems (btrfs) and networking improvements, zram was considered stable, etc. Linux 3.15 main changes include:
Faster resume from power suspend in systems with hard disks – Resuming a system from suspend used to take a long time in systems with traditional hard disks, because the system blocks the resume process until the hard disk finish powering up. In this release, commands are sent to the hard disk asynchronously, so the entire resuming process isn’t paused by the hard disk. The end result is that systems with hard disks will resume several seconds faster with this Linux release. For more details, read this blog post.
Improved working set size detection – When there is not enough room for all memory in RAM, the Linux kernel is in charge of deciding which memory must be kept in RAM, and which must be sent to swap or discarded. In this release, Linux does more advanced tracking of how memory gets used and can balance better the size of the lists, which makes Linux perform better in certain workloads, adapt better to workload size changes, and creates a foundation to build improved policies in the future. Read LWN article Better active/inactive list balancing for details.
EFI 64 bit kernels can be booted from 32 bit firmware – Most modern x86 CPUs are 64bit, yet many systems ship with a 32 bit EFI implementation. This didn’t allow to boot a Linux 64 bit EFI kernel from these 32 bit EFI systems. This limitation has been removed, a 64-bit kernel can be booted on 32-bit firmware that runs on 64 bit CPUs.
New file locking scheme: file private locks – Due to some unfortunate history, POSIX locks have very strange and unhelpful semantics: they are dropped whenever the process closes any file descriptor associated with the inode, and locks taken between threads within the same process won’t conflict with one another, which renders them useless for synchronization between threads. This release adds a new type of lock that attempts to address these issues. These locks will conflict with classic POSIX read/write locks, but have semantics that are more like BSD locks with respect to inheritance and behavior on close.Read LWN article File-private POSIX locks to get more information.
Faster erasing and zeroing of parts of a file – This release adds two new fallocate(2) mode flags: FALLOC_FL_COLLAPSE_RANGE which allows to remove a range of a file without leaving holes, improving the performance of these operations that previously needed to be done with workarounds, and FALLOC_FL_ZERO_RANGE which allows to set a range of a file to zero, much faster than it would take to do it manually. Only XFS and Ext4 have added support for these new flags in this release, and other filesystems will follow in the future. You can read Finding the proper scope of a file collapse operation for details
File cross-renaming support – Cross-rename, a variant of rename which exchanges the two files, has been added. This allows use cases which were not possible before, for instance atomically replacing a directory tree with a symlink. It also allows overlayfs and friends to operate on whiteouts atomically. More information can be found in LWN article Exchanging two files.
zram: LZ4 compression support, improved performance – Zram memory compression mechanism added support for the LZ4 compression algorithm, which is better than the current available LZO in some cases, as well as come performance improvements to concurrent compression of multiple compression streams, and the ability to switch the compression algorithm in /sys/block/zram0/comp_algorithm.
Intel AVX-512 vector instructions support – AVX-512 are 512-bit extensions to the 256-bit Advanced Vector Extensions SIMD instructions for x86 instruction set architecture proposed by Intel, and scheduled to be supported in 2015 with Intel’s Knights Landing processor. Read the documentation on Intel website for more information about AVX-512.
FUSE: improved write performance – FUSE can now use cached writeback support to fuse, which improves write throughput.
Starting with Linux 3.15 release, I’ll also point out some of the improvements and new features brought to the ARM architecture:
AllWinner – It’s now possible to boot a usable headless Linux OS using the mainline kernel on AllWinner A1x/A2X. Support have been added to LinkSprite pcDuino, Inet 97f, and A10-OLinuXino-LIME. You can read details about AllWinner changes here.
Device tree support added for various OMAP, Atmel, Broadcom, Marvell, Texas Instruments Keystone & Sitara, and Freescale i.MX based hardware platforms
Various perf modifications for ARM64, Cortex A12, and Qualcomm krait.
Rockchip – Added SMP support
SATA driver added for Applied Micro X-Gene and Exynos 5250
When Intel released the original MinnowBoard which was a step in the right direction, but there were some complains, as the company had chosen to use an older Intel processor, and the price was much higher than most high performance low cost ARM development boards. MinnowBoard MAX (aka Minnow2 Board) fixes all that, as it features the latest Intel Bay Trail-I (E3800 series) processor, and costs as low as $99 for the single core version, and $129 for the dual core version.
MinnowBoard MAX (Click to Enlarge)
Let’s jump directly to the specifications:
SoC – 64-bit Intel Atom E3815 (single-core, 1.46 GHz) or Atom E3825 (dual-core, 1.33 GHz) both with integrated Intel HD Graphics coming with Open Source hardware-accelerated drivers for Linux OS
System Memory – 1GB ($99 model) or 2GB ($129 model) DDR3 RAM
Debugging & Programming – Serial debug via FTDI cable (sold separately), programming header compatible with Dedi-Prog programmer, and JTAG via high-speed expansion port.
Low-speed expansion port – 2×13 (26-pin) male 0.1″ pin header with access to SPI, I2C, I2S Audio, 2x UARTs (TTL-level), 8x GPIO (including 2x supporting PWM), +5V, and GND
High-speed expansion port – 60-pin, high-density connector with access to 1x PCIe Gen 2.0 Lane, 1x SATA2 3Gb/sec, 1x USB 2.0 host, I2C, GPIO, JTAG, +5V, and GND
Dimensions – 99 x 74mm
Temperature Range – 0 – 70 deg C. Industrial temperature range may also be also available, but price will be higher, and has not been disclosed.
Power – 5V DC (Sold separately)
The board will run Debian GNU/Linux, Android 4.4 Kitkat, and be supported by the Yocto Project. It will boot with UEFI firmware stored in the 8MB SPI flash. The specifications also mention Intel HD graphics will be supported in Linux with open source graphics drivers, something that’s almost impossible to find for ARM development boards, although there has been some progress recently with the Raspberry Pi and Nvidia Tegra K1. It will be an open source hardware board, and design files will be made available under Creative Commons licensing within weeks of production boards being available at distributors.
MinnowBoard MAX competes directly with quad core ARM Cortex A9 development board such as HardKernel ODROID, Wandboard, and so on, that sells for about the same price. We’ll need to check benchmarks to get a better idea of the performance.
The boards are scheduled to be manufactured by CircuitCo by the end of June 2014. You can’t pre-order them just yet, and they will be available through various distributors. if you happen to be in EE Live! in San Jose, you can see a working demo with MinnowBoard MAX on booth #916.
Linaro Connect Asia 2014 has just started in Macau today and will take place until Friday. You can follow the sessions live and/or their recordings via Linaro OnAir YouTube Channel. I’ve watched the opening keynote, and embedded the video at the bottom of this post. The keynote focuses on ARMv8 for Linux and Android on servers, mobile devices, digital home, and more, and involves two main speakers: George Grey, Linaro CEO , and Jon Masters, Chief ARM Architecture at Red Hat.
The speaker beginning of the video provides some practical information and the schedule for Linaro Connect. The keynote itself really starts around 15:50 with George Grey who spends the first 10 minutes introducing the latest Linaro members: Qualcomm, Mediatek, ZTE, AllWinner and Comcast. He then talks about the new Mobile sub-committee (MOBSCOM) that will focus on big.LITTLE, Android optimization and Android on ARMv8, as well as the soon-to-be-announced Linaro Digital Home Group composed of AllWinner, ARM, Comcast, Fujitsu, HiSilicon, and STMicro, that will work on STB / IPTV software implementation such as secure media playback. A large part of the talk is about boot architecture (ACPI, UEFI, ARM Trusted firmware…), and the debates ACPI vs FDT (Device Tree), U-boot vs UEFI, and so on. Other subjects discussed are ARM security with the recently formed Security Working Group, Virtualization, Middleware working on Aarch64 (LAMP and OpenJDK) and Android on 64-bit. The latter will require a lot more work, and actual hardware for validation of the work done on ARMv8 fast models, and to speed up code development. Finally he quickly mentions Linaro is still working on ARMv7 architecture, and preliminary work is done for Cortex-M with Yocto/OpenEmbedded support.
At the 50 minutes mark, Jon Masters takes over to talk about 64-bit ARM servers. He stresses several key points for ARM to be successful in the server market:
Upstream first (to kernel.org), as Red Hat will only use code from mainline for servers
He explains that compared to last year hardware is now available, talks about hyperscale computing, and mention the “up to 25% market share for ARM servers in 2019″ quote from AMD. He explains there are challenges however, and the server market is much different from the embedded world, so CENH (Cute Embedded Nonsense Hacks) are not allowed for ARM servers. Long term (10+ years) support for toolchain and kernel are needed, with backports if necessary, and Fedora/Red Hat will never ever release an OS with a device tree file and/or U-Boot.
Finally he announces a Red Hat ARM Server Developer Preview will be released later this year, compliant with SBSA, and using UEFI and ACPI, and show demo running on Applied Micro X-gene Mustang board running an early version of the developer preview which boots with UEFI, and supports ACPI.