Archive

Posts Tagged ‘uefi’

U-Boot Now Supports UEFI on 32-bit and 64-bit ARM Platforms

August 11th, 2016 17 comments

Intel/AMD x86 based computers now boot via a standard UEFI binary, which can load grub2, allows you to update the command line as needed, or select different version of the Linux kernel. On ARM everything is a little more complicated and messy, as bootloaders such as U-boot need to support different configurations formats.

Raspberry_Pi_UEFI_GRUB2_U-BootAlexander Graf has been working on implementing UEFI support in U-boot, and it’s now supported by U-boot mainline and enabled by default for 32-bit and 64-bit ARM platforms, but not x86-64 (yet). That means you should now be able to boot any ARM boards supported by mainline U-boot through UEFI. Alexander gave a presentation about his work at an openSUSE event in June, and demonstrated u-boot with UEFI, and GRUB2 support with an openSUSE image running on a Raspberry Pi board.

Thanks to David for the tip.

Linux 4.7 Release – Main Changes, ARM and MIPS Architectures

July 25th, 2016 7 comments

Linux 4.7 is out:

So, after a slight delay due to my travels, I’m back, and 4.7 is out.

Despite it being two weeks since rc7, the final patch wasn’t all that big, and much of it is trivial one- and few-liners. There’s a couple of network drivers that got a bit more loving. Appended is the shortlog since rc7 for people who care: it’s fairly spread out, with networking and some intel Kabylake GPU fixes being the most noticeable ones. But there’s random small noise spread all over.

And obviously, this means that the merge window for 4.8 is open.Judging by the linux-next contents, that’s going to be a bigger release than the current one (4.7 really was fairly calm, I blame at least partly summer in the northern hemisphere).

Linus

Linux 4.6 brought USB 3.1 superspeed, OrangeFS distributed file system, 802.1AE MAC-level encryption (MACsec), and BATMAN V protocol support, improved the reliability of OOM task killer, and more.

Linux_4.7_Changelog

Linux 4.7 most noticeable changes include:

  • Support for Radeon RX480 GPUs
  • Parallel directory lookups –  The directory cache caches information about path names to make them quickly available for pathname lookup. This cache uses a mutex to serialize lookup of names in the same directory.  The serializing mutex has been switched to a read-write semaphore in Linux 4.7, allowing for parallel pathname lookups in the same directory. Most filesystems have been converted to allow this feature.
  • New “schedutil” frequency governor –  There are two main differences between it and the existing governors. First, it uses information provided by the scheduler directly for making its decisions. Second, it can invoke cpufreq drivers and change the frequency to adjust CPU performance right away, without having to spawn work items to be executed in process context or similar, leading to lower latency to make frequency changes.
  • Histograms of events in ftrace –  . This release adds the “hist” command, which provides the ability to build “histograms” of events by aggregating event hits. As an example, let’s say a user needs to get a list of bytes read from files from each process. You can get this information using hist triggers, with the following command command:

    other data can also be retrieve by using fields found in /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/format. The output will look like:

    More more details check ftrace documentation and related LWN article.
  • EFI ‘Capsule’ firmware updates –  The EFI Capsule mechanism allows to pass data blobs to the EFI firmware. The firmware then parses them and makes some decision based upon their contents. The most common use case is to bundle a flashable firmware image into a capsule that the firmware can use to upgrade in the next boot the existing version in the flash. Users can upload capsule by writing the firmware to the /dev/efi_capsule_loader device
  • Support for creating virtual USB Device Controllers in USB/IP – USB/IP allows to share real USB devices over the network. Linux 4.7 brings the ability to create virtual USB Device Controllers without needing any physical USB device, using the USB gadget subsystem. For what purpose? For example, for improving phone emulation in development environments, for testing USB and for educational purposes.

Some of ARM specific improvements and new features include:

  • Allwinner:
    • Allwinner A13/R8 – Display Engine support
    • Allwinner A10/A20 – S/PDIF Support
    • Allwinner A31/A23/H3 – DMAengine improvements for H3 audio support
    • Allwinner H3 – USB support (multi-reset line support delayed til 4.8)
    • New hardware supported
      • Tablets – Dserve DSRV9703C, Polaroid MID2809PXE4, Colorfly e708 q1, Difrence DIT4350
      • Boards – Olimex A20 OLinuXino LIME2, Xunlong Orange Pi 2, Orange Pi One, and Orange Pi PC
  • Rockchip:
    • Thermal management – Rockchip driver support for RK3399, RK3366
    • Added Rockchip RK3399 clock and reset controller
    • Pinctrl – Support the .get_direction() callback in the GPIO portions
    • New RK3399 device tree support
    • Added Rockchip DisplayPort PHY support
    • Added Geekbuying GeekBox, RK3399 Evaluation Board, mqmaker MiQi SBC
  • Amlogic
    • Added Meson GXBB (S905) pinctrl support
    • Fixed memory nodes on Vega S95 DTS
    • Added Hardkernel ODROID-C2, Amlogic Meson GXBB P200 and P201 development systems
  • Samsung
    • Added Samsung ARTIK5 evaluation board
    • Added generic exynos bus frequency driver
    • Added pinctrl driver for Samsung EXYNOS5440 SoC
    • DTS updates & fixes:
      • Fix s5p-mfc driver probe on Exynos542x Peach boards (need to provide MFC memory banks). On these boards this was broken for long time but apparently no one enabled this driver till now.
      • Fix creation of debugfs entries for one regulator on Exynos4210 Trats board.
      • Fix probing of max8997 MFD driver (and its children) because of missing interrupt. Actually the current version of the driver probes (just without interrupts) but after switching to regmap and regmap-irq, the interrupt will be mandatory.
      • Cleanup regulator bindings on Exynos5420 boards.
      • Support MIC bypass in display path for Exynos5420.
      • Enable PRNG and SSS for all Exynos4 devices.
      • Add PL330 DMA controller and Thermal Management Unit to Exynos 7
      • Enable accelerated AES (Security SubSystem) on Exynos4412-based boards
      • Enable HDMI CEC on Exynos4412-based Odroid.
      • Add regulator supplies for eMMC/SD on Odroid XU3/XU4.
      • Fix DTC unit name warnings.
  • Qualcomm
    • Qualcomm IPQ4019 support in pinctrl
    • Change SMD callback parameters
    • 96Boards HiKey based on the Hisilicon Hi6220 (Kirin 620) gets an overhaul with a lot of devices enabled in the DT.
    • Added Qualcomm IPQ4019 “Internet processor”,  Arrow DragonBoard 600c (96boards) with APQ8064 Snapdragon 600
    • Device tree changes:
      • Add additional nodes for APQ8064
      • Fix APQ8064 pinctrls for i2c/spi
      • Add MSM8974 nodes for smp2p and smd
      • Modify MSM8974 memory reserve for rfsa and rmtfs
      • Add support for BQ27541 on Nexus7
  • Mediatek
    • Added  CPU power cooling model to Mediatek thermal driver
    • Added Mediatek MT8173 display driver, DRM driver, and thermal controller
    • Added MIPI DSI sub driver
    • 4GB mode support for Mediatek IOMMU driver
    • DTS updates:
      • add pinctrl node for mt2701
      • add mt2701 pmic wrapper binding
      • add auxadc binding document
  • Other new ARM hardware or SoCs – LG1312 TV SoC, Hisilicon Hip06/D03, Google Pixel C, NXP Layerscape 1043A QDS development board, Aspeed AST2400/AST2500, Oxnas 810SE (WD My Book World Edition), ARM MPS2 (AN385 Cortex-M3 & AN399 Cortex-M7), Ka-Ro electronics industrial SoM modules, Embest MarS Board, Boundary Devices i.MX6 Quad Plus Nitrogen6_MAX and SoloX Nitrogen6sx embedded boards, Technexion Pico i.MX6UL compute module, ZII VF610 Development Board, Linksys Viper (E4200v2 / EA4500) WiFi router, Buffalo Kurobox Pro NAS, samtec VIN|ING 1000 vehicle communication interface, Amazon Kindle Fire first generation tablet and ebook reader,  OnRISC Baltos iR 2110 and 3220 embedded industrial PCs, TI AM5728 IDK, TI AM3359 ICE-V2, and TI DRA722 Rev C EVM development systems.

MIPS architecture changelog:

  • Add support for relocatable kernel so it can be loaded someplace besides the default 1MB.
  • Add KASLR support using relocatable support
  • Add perf counter feature
  • Add support for extending builtin cmdline
  • seccomp: Support compat with both O32 and N32
  • ath79: Add support for DTB passed using the UHI boot protocol, remove the builtin DTB support, add zboot debug serial support, add initial support for DPT-Module, Dragino MS14 (Dragino 2), and Onion Omega
  • BMIPS: Add BCM6358 support, add Whirlwind (BMIPS5200) initialization code, add support for BCM63268
  • Lantiq: Add support for device tree file from boot loader
  • Add basic Loongson 3A support
  • Add support for CN73xx, CN75xx and CN78xx
  • Octeon: Add DTS for D-Link DSR-1000N
  • Detect DSP v3 support
  • Detect MIPSr6 Virtual Processor support
  • Enable ptrace hw watchpoints on MIPS R6
  • Probe the M6250 CPUand the P6600 core
  • Support sending SIG_SYS to 32bit userspace from 64bit kernel
  • qca: introduce AR9331 devicetree
  • ralink: add MT7628 EPHY LEDs pinmux support
  • smp-cps: Add nothreads kernel parameter
  • smp-cps: Support MIPSr6 Virtual Processors
  • MIPS64: Support a maximum at least 48 bits of application virtual

For even much more details, you can check out Linux 4.7 changelog with comments only generated using git log v4.6..v4.7 --stat. Alternatively, and much easier to read, you can head to kernelnewbies.org to learn more about Linux 4.7 changes.

Morefine M1+ Review – A Dual Boot Windows and Android TV Stick

July 11th, 2016 11 comments

Karl here and I will be reviewing the Morefine M1+. It is an Intel based stick PC with an Intel Atom x5-Z8300 processor with 2GB RAM and 64 GB of storage. It dual boots Windows 10 Home 32 bit and Android 5.1. In this review, I won’t be doing many benchmarks because they have been done a lot in the past.

Be careful when researching this product because there are 2 devices with same name with different specs. The other one has an Intel Atom z3735 and only 32GB storage and Android 4.4.

The box came expertly wrapped and I have never seen a package delivered and protected so well.

Click to Enlarge

Click to Enlarge

In the box was the stick, short HDMI extension, power cable, and instruction manual. No micro USB OTG cable is included. I didn’t find this an issue because I had several already.

Click to Enlarge

Click to Enlarge

Specs

  • OS Version: OS Windows 10 (Trial Version) and Android 5.1
  • CPU: Intel Quad Core Atom x5-Z8300
  • GPU: Intel HD Graphics
  • Processor Speed (turbo): 1.84 GHz, normal 1.44 GHz
  • RAM: 2GB
  • Internal Memory: 64GB
  • External Memory: Support up to 128GB
  • Supported Resolution: 1920×1080
  • Wi-Fi: 802.11 a/b/g/n (2.4G/5G)
  • Bluetooth 4.0
  • Built-in Intelligent Temperature Control Fan

When power is connected and after pushing the power button I was prompted with android logo and windows logo. I used a Logitech K400 to navigate and left right arrows are used to choose Android or Windows. It remembers what you booted last when you reboot.

Windows

I was most interested in Windows so booted to it first. I have already used a box based on z8300 so I had realistic expectation of performance. UI is acceptable and most tasks can be performed with just a little bit of waiting. I went to update and found that it was already up to date. I was expecting a couple hours of updates. I also found a WiFi access point still saved in wireless settings. I performed an update and only had to update virus definitions. (After factory restoring Windows I believe Chinavision updated the stick before shipping. I did have to do a big update and I received normal Windows first boot screens)

Click to Enlarge

Click to Enlarge

Then I installed the software below:

  • True Temp
  • Kodi
  • Emby
  • Plex
  • Netflix
  • HDHomerun App
  • VLC
  • Chrome with h.264 YouTube addon
  • Minecraft for Windows 10 beta
  • League of Legends
  • Microsoft Office 2016

It didn’t come with Windows activated and I had a key for Win 7 pro available. I went to the Windows store and searched for Upgrade Windows Pro and I put in this generic key VK7JG-NPHTM-C97JM-9MPGT-3V66T that I found on the Microsoft website. This key installs Pro but does not activate it. I let the system upgrade then I went to activation and put in my key to properly activate it. So there are a couple options to activate Windows.

Click to Enlarge

Morefine M1+ Partitions – Click to Enlarge

I tried to do a fresh Windows 64 Pro install but the stick wouldn’t recognize my thumb drive. I contacted the manufacturer and asked for 64-bit drivers but they were not able to provide any. I didn’t want to brick the stick so did not experiment any more. I received links to restore img as I was completing this review so I did not have time to test. Here is the link, and instructions are the same as the original M1+. The process seems straightforward. I tried to do a restore and I think there is an issue with the Android restore provided by Morefine. Complains of being 64-bit when only 32-bit capable. I let Morefine know and I will update when I find out what the issue is…Maybe I can’t follow instructions…wouldn’t be the first time.

Thermal Design

The thermal design for the stick is adequate. I kept True Temp running while reviewing and only saw it spike to 80 deg. Celsius once. It was during the installation of Microsoft Office while browsing with Chrome at the same time. Most of the time it ran between 50 and 60. The fan on the stick runs at different speeds depending on the temp and when only running light apps turns off completely. I didn’t find it annoying and barely audible. For a comparison the air coming out my vents for HVAC is substantially louder. I performed a 30 min stress test with prime95 while streaming Netflix and the fan only kicked into its highest speed once. 2 screenshots below show right at the end and the stick cooling off quickly.

Click to Enlarge

Click to Enlarge

Click to Enlarge

Click to Enlarge

Windows Gaming

I don’t play much games but I did play Minecraft from the Windows store and it ran really well. I did have some hiccups playing network games with Android tablets but it still is in beta and I don’t think it is attributed to the stick. The only other game I play occasionally is League of Legends. It is not a demanding game but I was impressed that it played well. League of Legends is a real time strategy / RPG game that any lag gets you killed and I didn’t feel like I was at a disadvantage using the stick.

HTPC

I feel like a home theater PC is the best way to utilize this stick. I tested out Kodi, Plex, Emby, and HD Homerun app. All of which played well. I was able to play some 4k content but only up to 8-bit HEVC. I could not get 10 bit to play in any player. All the 1080 content I tested played well.

Wifi

I found WiFi to be only mediocre. Windows was better than Android. It might be the fact that I had it so close to my TV. If I moved it to the right spot, it would copy about 4 MB/s. The access point has 3 walls to penetrate which includes a bathroom with copper pipes. You can see below where moving the stick made speeds fluctuate considerable up and down.

Morefine_M1+_WiFi_Performance

I tested a rtl8188etv USB adapter but there was some sort of driver conflict with built in WiFi and I had to restore the driver for the built in Wi-Fi from the double driver backup I made. I did use a ASIX USB 3.0 gig adapter and it worked really well. I also tested a ASIX 10/100 adapter and it worked well.

Android

I was a slightly disappointed on the Android side. I really like that it didn’t have any bloat but but this is extreme. No play store was included. I tried for several hours to install Google play store and Google play services kept getting constant app closings so I uninstalled them. Android is not rooted. ADB does not work. I installed aptoide and used it to install all my apps. I don’t like using it but it is better than side loading all the apps from the web. Kodi worked well.

As I was using Android I am really impressed by the UI. This is my first experience with Android on Intel. It is really fluid. I am not sure why Android on Intel didn’t take off. I guess my ignorance kept me from it and I imagine others as well. I had no issues with apps and they all seemed to work well. I was always worried that apps wouldn’t work well on Intel processors.

Misc

There is the issue with time when booting between Android and Windows. Time gets off. A little hack can be applied to Windows so that time doesn’t become off when switching OS’s. What is needed is to set windows to use universal time. Below are some pics of inside the stick and internal storage test.

Morefine_M1_Plus_CrystalDiskMarkWiFi chip is AP6234 and notice that the antenna is not soldered on. It would be easy to mod and install an external antenna. I loath the sticky soldered antenna.

Click to Enlarge

Click to Enlarge

Bios

There are quite a few BIOS settings but the only one I changed was an option for the stick to turn on when power is applied. I prefer it to come on in case power is lost so it will reboot on its own. Its nice if you use as a micro server.

One final note

In the event you do not wish to use Android you can recover most of the space used by Android. I used the built in disk management under Computer management and deleted all the partitions and tried to extend the main Windows partition but it was greyed out. I then downloaded Minitool Partition Wizard and completed the final extend and this is what I ended up with. You still will get the initial choice of Windows and Android but Android bombs. Reboot and choose Windows….this might be able to be fixed and boot directly into Windows without a choice if a recovery USB is made and have it fix booting.

Click to Enlarge

Click to Enlarge

Conclusion

Overall, I was really pleased with this stick. The thermal design is well engineered. Easy to use. I have been playing with Android boxes for the home theater for several years now. I have to admit having a product that just works feels pretty good. I can plug in just about anything and Windows will find the drivers and install…or with just minimal searching find a suitable one. I don’t have to beg a dev to compile a kernel with necessary drivers. If you have any questions feel free to ask below in the comments.

I would like to thank Chinavision for sending the Morefine M1+ to review, and you can purchased on their website for $81.69. Alternative shopping options include Tinydeal and Banggood, with most other shops only selling the older Bay Trail version with Android 4.4 and 32GB storage.

ARMADA 8040 Networking Community Board with a Quad Core ARM Cortex A72 SoC Coming Soon for $300 and Up

June 29th, 2016 20 comments

Developers interested in ARMv8 server or networking boards are starting to have more and more affordable choices. After AMD Opteron A1100 series based LeMaker Cello board, and Softiron Overdrive 1000 server, SolidRun is now working on ARMADA 8040 networking community board powered by Marvell ARMA8040 quad core Cortex A72 network processor.

Click to Enlarge

Click to Enlarge

ARMADA 8040 networking board (mrvl8040) preliminary specifications:

  • SoC – ARMADA 8040 (88F8040) quad core Cortex A72 processor @ up to 2.0 GHz with MoChi architecture
  • System Memory – 4GB DDR4 DIMM by default
  • Storage – 4x SATA 3.0 port + micro SD slot
  • Connectivity – 1x Gigabit RJ45 port, 1x SFP SGMII @ 2.5Gbps, dual 10Gbps copper with auto switchover to dual SFP+
  • Expansion – 1x PCIe-x4 3.0 slot, Linaro 96Boards expansion slot exposing GPIO, UART, I2C and SPI, Marvell TDM module header
  • USB – 1x USB 3.0 port, 2x micro USB ports
  • Debugging – Console port (UART) over microUSB connector; 20-pin Connector for CPU JTAG debugger; OpenOCD debugger support over FTDI device
  • Power Supply – 12V DC via power jack or ATX power supply
  • Dimensions – Mini-ITX form factor (170 mm x 170 mm)

The complete hardware specifications have not been released yet, so many of the features above are derived from the 3D renders of the board. The board targets OpenDataPlane (ODP), OpenFastPath (OFP) and ARM network functions virtualization (NFV) ecosystem communities. The software will include a fully open source ODP implementation with  U-Boot 2015.x, mainline U-Boot, UEFI EDK2, Linux LTS kernel 4.4.x, mainline Linux, Yocto 2.1 and netmap.

Marvell_ARMADA_8040_Block_Diagram

Marvell ARMADA 8040 Block Diagram

ARMADA 8040 community networking board is scheduled to ship early September (early access) or mid October, but SolidRun is already taking pre-orders with a $50 discount bringing the price down to $299 with 4GB RAM, but you may want to add the power supply for $10 more. Marvell also plans to launch 8-,16- and 32-core versions of ARMADA 8040 SoC in in Q1 2017, but it’s unknown whether they’ll make it in to community boards.

Via ElectronicsWeekly

$599 Softiron Overdrive 1000 Server is Powered by AMD Opteron A1100 64-bit ARM Processor

June 26th, 2016 15 comments

ARMv8 servers have been around for a year or so, but normally only available to companies, mostly due to their very high price. LeMaker Cello board based on AMD Opteron A1120 quad core SoC have changed that since it’s priced at $299, but I’m not sure it’s shipping right now, and it’s not a complete solution fitted with memory and storage, and lacks an enclosure. The good news is that Softiron has just launched Overdrive 1000 server powered by AMD Opteron A1100 series processor, with 8GB DDR4 RAM, a 1TB drive, and a case.

Softiron_Overdrive_1000Softiron Overdrive 1000 server specifications:

  • SoC – AMD Opteron A1100 series quad core ARM Cortex A57 processor
  • System Memory – 2x RDIMM slots fitted with 8GB DDR4 DRAM and expandable to 64GB
  • Storage – 2x SATA 3.0 connector with one fitted with  a 1TB HDD
  • Connectivity – 1x GBase-T Ethernet
  • USB – 2x USB 3.0 ports
  • Power Supply – ATX power supply; 100~240V @ 50-60Hz
  • Dimensions – 315 x 222 x 76 mm or 463 x 385 x 145 mm (Product page vs product brief info)
  • Weight – 3.65 kg or 5.2 kg

A standard UEFI boot environment is used, and while you could install your distribution of choice, the server is pre-loaded with openSUSE Leap including a standard Linux GNU tool chain, platform device drivers, the Apache web server, MySQL, PHP, Xen, KVM Hypervisor, Docker, and OpenJDK 64-bit ARM.

I could not find much in the way of demo, but you can listen to ARM and Softiron representatives explaining why it’s a good choice…

If you’d like to go ahead, and get one, you can purchase Softiron Overdrive 1000 directly on the company’s website for $599 + shipping. In my case (Asia based), it would cost $87.06 via UPS, which looks not too bad considering the weight…

Via Andrew Wafaa

Linaro Connect 2016 Bangkok Schedule – March 7-11, 2016

February 15th, 2016 No comments

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.

Linaro_Connect_2016The 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:

  • Update toolchains
  • Make use of new features in updated toolchains
  • Split libraries into smaller parts
  • Tweak settings
  • 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 ([email protected]), 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.

FOSDEM 2016 Schedule – Open Source Hardware and Software Event in Europe

January 13th, 2016 3 comments

FOSDEM (Free and Open Source Software Developers’ European Meeting) is a 2-day event that usually takes place on the first week-end of February in Brussels, but this year it will be on January 30-31. The event brings thousands of developers, hackers, and other person interested in open source technology who present their projects and share ideas. FOSDEM 2016 schedule is now available, and There will be 557 speakers, 612 events, and 50 tracks this year including 7 main tracks: Distros, Enterprise, Hardware, Communications, Miscellaneous, Office, Systems Administration, and Virtualization.

FOSDEM_2016

So I’ve had a look at some of the talks, especially out of  “Embedded, Mobile and Automotive” and “IoT” devrooms, and prepared my own virtual schedule although I won’t be able to attend.

Saturday

For many years MIPS processors have been involved in the embedded market, particularly in areas related to networks and storage. With the success of the mobile market, and the great evolution of the world linked to the “makers”, other architectures (such as ARM), they have reached very large levels of diffusion.

Meanwhile, the MIPS architecture has evolved, introducing innovations and improvements to adapt to both the processor market from performance, both to the world of micro-controllers. The future of MIPS is a new family divided into several generations evolving.

During the presentation, after a brief and simplified introduction to architecture, will be shown the technologies available at the time and what will be the future developments.

The presentation will also show some reference platforms (ex. Imagination Creator CI20), and how to work to integrate and port on these platforms. Application examples with Yocto and buildroot, to switch to a full distribution (Debian). Finally it will also present a perspective on the use of MIPS in embedded designs.

AsteroidOS is a free and open-source smartwatch platform based on OpenEmbedded, libhybris, BlueZ5 and Qt5. The OS currently offers a basic user experience on the LG G Watch. This technical talk will briefly introduce the philosophical background of the project and more deeply its architecture’s details in order to attract developers, porters and curious.

This talk will successively be focused on how to boot an Android Wear watch, on how to gain hardware acceleration on that kind of hardware, on how Qt5 and OpenEmbedded are used and on the future of AsteroidOS.

AsteroidOS uses similar technological choices as those of projects like SailfishOS, NemoMobile, Mer, WebOS-Ports or Ubuntu Touch but adapted to the needs of smartwatches. The architecture of those project will briefly be compared during the presentation.

Based on Migen, MiSoC is a library of cores and a system-on-chip integration system to build gateware for various applications. MiSoC is lightweight (runs on FPGA devices as small as Spartan-6 LX9 with 32-bit RISC CPU and SDRAM), portable (demonstrated on Xilinx, Altera and Lattice devices) and high performance (e.g. contains the fastest open source DDR3 solution we are aware of). Designing and integrating cores is facilitated by Python and Migen features. Current MiSoC applications include LTE base stations, video processing (Numato Opsis) and experiment control system (ARTIQ).

Nemo Mobile is a long time FOSS operating system. Created in 2012 as continuation to Meego Community Edition, it has been actively developed since then. The newest iteration of it is to use Glacier UI as its renewed User Interface, along with its Qt Components. These components are now used in the NemoTablet adaptation using Raspberry Pi2 as underlying hardware and its plethora of possible peripherals to create a true DIY tablet derived from SailPi project.

With Raspberry Pi 2 introduction in February 2015, it was then possible to create an adaptation for it. This enables the myriad of functionality it offers, with its hardware provided. Initial adaptation was done originally for SailfishOS, but Nemo Mobile had the first run and checking that everything worked, before a closed system was installed. Nemo Mobile, however, was then not tried until later. The idea came once the official touchscreen by Raspberry Pi Foundation was released, so that a FOSS tablet could be built by anyone and used. Raspberry Pi 2 has non-free hardware, but Nemo Mobile itself is FOSS completely. As with all other adaptations, the questions regarding hardware freedom limitations rise for a good reason.

Libreboot is a free software BIOS replacement (boot firmware), based on coreboot, for Intel, AMD and ARM based systems. Backed by the Free Software Foundation, the aim of the Libreboot project is to provide individuals and companies with an escape from proprietary firmware in their computing. Libreboot is also being reviewed for entry as an official component of the GNU system.

Boot firmware is the low-level software that runs when you turn your computer on, which initializes the hardware and starts a bootloader for your operating system. Libreboot currently supports laptops and servers, on x86 (Intel and AMD) and ARM (Rockchip RK3288), with more hardware support on the horizon. The purpose of this talk is to describe the history of the project, why it started, why it’s important, where it’s going and, most importantly, to tell people how they can get involved.

Francis also runs the Minifree (formerly Gluglug), a company that sells computers with libreboot and Trisquel GNU/Linux pre-installed.

No abstract, but it’s clear about Olimex’s Allwinner A64 A64-OlinuXino board to be used in the company’s open source hardware laptop.

A brief discussion about the stable release branch 4 of KiCad as well as goals for the next development cycle and beyond.

The WPANKit is a ptxdist based Open-Source 6LoWPAN Board Support Package (BSP). The main focus is to provide a software development kit for the linux-wpan project. The linux-wpan project aims to implement a 6LoWPAN inside the mainline Linux kernel.

This talk will present the WPANKit: An Open-Source Linux BSP to develop 6LoWPAN IoT applications. It contains support for various common platforms such Raspberry Pi’s and Beaglebones. Additional components like the openlabs 802.15.4 transceiver SPI transceiver or BTLE USB dongles gives you a getting started platform into the Linux 6LoWPAN world.

The WPANKit will directly build a current mainline 6LoWPAN kernel, which is the official bluetooth-next tree. This is important, because the mainline 6LoWPAN development is still much in development. Additional the WPANKit offers a large of userspace IoT software collection e.g. tshark for sniffing network traffic, libcoap, etc. On top of this BSP you can develop your IoT application, setting up a Border-Router or help at the current mainline 6LoWPAN Linux-kernel development.

Through the power of ptxdist you can easily add new own packages for cross-compiling. As well we accept patches to integrate new software into the official WPANKit repository, so we getting more and more new IoT capable software into the WPANKit which can be used by other ptxdist users.

An AdaCore intern has rewritten the CrazyFlie drone software, originally in C, into SPARK. In addition to fixing some bugs, this allowed to prove absence of runtime errors. Various techniques used to achieve that result will be presented, as well as a live demo of free fall detection.

This talk will take us through the available FOSS software stacks that are available for automotive. This last year has produced a lot of working software from fiber-optic networking drivers in the Linux kernel, complete In-Vehicle Infotainment stacks, to a newly released Qt Automotive. There has also been a change in available hardware to run this software on, new boards like the Minnowboard Max, Renesas’ Porter board, and even the Raspberry Pi 2. This talk will try and cover the entire software ecosystem and how it matches to hardware, how you can get involved today, and what the future holds.

Turris Omnia aims to bring to the market affordable, powerful and secure SOHO router which is completely open-source and open-hardware. As a operating system it uses our own fork of OpenWrt which has some additional features such as automatic security updates. This talk will cover few topics such as motivation for starting this project and developing of our own hardware and software.

FROSTED is an acronym for “FRee Operating System for Tiny Embedded Devices”. The goal of this project is to provide a free kernel for embedded systems based on ARM Cortex-M CPU family, which exposes a POSIX-compliant system call API. Even if it runs on small systems with no MMU and limited resources, Frosted has a VFS, UNIX command line tools and a HW abstraction layer which makes it easy to support new platforms and device drivers.

This talk will cover why the project was started, the approach taken to separate the kernel and user-space on ARM Cortex-M CPU’s without MMU, the collaboration with the libopencm3 project to provide a high quality hardware abstraction layer and the future goals of the project. Of course there will a demo showing the latest developments: dynamic loading of applications and possibly TCP/IP communication.

Sunday

Yocto project has been used at Open-RnD for building a number of IoT related products. The talk will go though the details of integration of Poky build system and OpenEmbedded layers into 3 projects carried out at Open-RnD:

  • an autonomous parking space monitoring system
  • a distributed 3D steroscopic image acquisition system
  • a gadget for acquisition of metabolic parameters of professional athletes

The presentation will approach to building software, automation and upstreaming of fixes. Only widely available hardware platforms such as BeagleBone Black, Raspberry Pi, Wandboard or Gateworks GW5400 (not as widely used as the previous ones, but still fully supported) were used in the project, hence all the points made during presentation are directly applicable by professionals and hobbyists alike.

Tizen is an open source GNU/Linux based software platform for mobile, wearable and embedded devices as well as Internet of Things. Tizen:Common provides a generic development environment for Tizen 3 which key features include, Wayland, Weston, EFL UI/UX toolkit, and a web runtime for safely running standalone HTML5 apps. Yocto Project offers tools to easily expends features of Tizen:Common by creating layers for new profiles. This talk will focus the Tizen architecture and it will provide guidelines for creating and building new Tizen profiles, based on Tizen:Common, using the Yocto Project for devices with Intel or ARM processors. It will also provide information about hidden gems in Tizen on Yocto and practical examples for packaging and deploying HTML5 applications through Yocto recipes for the open source hardware development boards like Raspberry PI2 or HummingBoard (Freescale I.MX6 ARM SoC) or MinnowBoard Max (Intel).

Finally, since Tizen aims to because the OS of everything, we will illustrate this by extending Tizen Distro with new connectivity features provided by IoTivity library, the open source implementation of OpenInterConnect’s standard.

This session will show you how to build your own retro hand-held console that is powered by Java, runs on a Raspberry Pi, and is printed on a 3D printer. Some of the topics covered include:

  • Hacking Java on the Raspberry Pi
  • Rigging input devices with Pi4J
  • Insane performance tuning on the JVM
  • Why your boss [or SO] needs to buy you a 3D printer!

And of course your retro gaming mettle will be put to the test, so make sure to dust off your old 8 and 16 bit consoles to prepare.

How to roll your own build and extend the Fairphone 2 hardware

The kernelci.org project is currently doing hundreds of build and boot tests for upstream kernels on a wide variety of hardware. This session will provide an introduction to the kernelci.org system, some live demos and how to start consuming its results, and be a forum for further discussions.

Distributed boards farms across the world are working together to deliver unified build, boot, and test results for every merge of an upstream Linux kernel tree. A community based architecture agnostic effort, kernelci.org aims to detect regressions in a timely manner and report back to kernel developers with a concise summary of the issues found. On every merge, all defconfigs for x86, arm, and arm64 are built, booted, and tested on over 300 real or virtual hardware platforms. Come join in the discussion and help make Linux better!

Hardware is funny stuff. It is often documented to work one way when it actually works a slightly different way. Different revisions of the hardware may have different bugs that require different sets of work-arounds. Programming it even slightly incorrectly can lead to software crashes or system hangs. Sometimes some versions of the hardware work fine, but the version not on the developer’s desk crashes. Failure modes are often opaque and give no clues for fixing the problem. Writing robust, reliable software to run directly on hardware is hard.

Software simulation of hardware is a technique that, in many cases, can alleviate some of this pain. Teams that develop hardware will often create a simulator as a by-product of hardware synthesis. Not ever developer is fortunate to have access to such tools. Those who do have access often find them slow or difficult to use. After all, these simulators are generally created as an aid for the hardware developers themselves. Much of the benefit of a full hardware simulator can be attained by developing the simulator independently from the hardware development. When the correct techniques are applied, it’s not even that hard.

This talk will present a variety of techniques based on experience with several “home grown” simulation environments. Techniques for both developing and validating the simulator and techniques for integrating simulation in the regular development process will be described.

  • 16:00 – 17:00 – PHP7 by Derick Rethans

With PHP 7 having been released, it is time to show what’s in there. Speed, scalar type hints and spaceships.

These are just a few selection from the complete schedule. Last year, most FOSDEM 2015 videos were available in mid-March, so I’d expect FOSDEM 2016 videos to be available in about the same time frame.

As usual, the event will be free, and does not require registration, so you just need to show up at the Université libre de Bruxelles in order to attend.

How to Unbrick MeegoPad T01 (Intel Atom Z3735F) HDMI TV Stick

May 21st, 2015 10 comments

When you use one of the Intel Atom Z3735F mini PCs, there’s very little chance to brick it as long as you use the pre-installed operating systems. But if you play around with the BIOS, or use one of the recent dual boot firmware that re-flash the BIOS when you switch OS, there’s a real possibility to completely brick your device. Ian Morrison (Linuxium) and Deadhp1 posted separate instructions to flash the BIOS and recover their devices.

MeegoPad T01 Connected to Flash Writer

MeegoPad T01 Connected to Flash Writer

Both bricked MeegoPad T01, and deadhp1 used CH341a USB programmer which only supports 3.3V/5V, while the SPI flash on T01 only support 1.8V. It worked for him, but it could potentially fry the flash. So it’s probably better to with Ian’s solution involving EZP_XPro USB Programmer and some SOIC8 Test Clips.

Once you get the hardware, you’ll need to download on install EZP XPro Flash 1.4 on a Windows PC. Now follow the steps below:

  1. Ttake out MeegoPad T01 out of its casing, and disconnect the battery.
  2. Assemble the test clips with the socket adapter and plug into the programmer
  3. Connect the programmer’s USB cable to your PC and attach the test clips to the BIOS chip (pin 1 must be correctly aligned)
  4. Run “EZ” program which should automatically detect the BIOS (flash) chip
  5. Load the BIOS (for example that one for MeegoPad T01) using the “brower” button
  6. Finally click on “Erase”, “Program”, and “Verify”

Ian made a video with the steps to follow with EZ software.

Once all is done, simply disconnect the test clips, re-plug the battery and put back the board in the casing, connect Meegopad T01 and check it can boot again. Good luck!