Posts Tagged ‘mips’

Ingenic T10 is a MIPS Based Video Processor for 720p Cameras

June 13th, 2016 2 comments

Ingenic has been designing MIPS based SoCs using their Xburst processor engine for several years, which are found in tablets, development boards, and wearables. The company has now launched T10 smart video processor based on the same MIPS32 processor but mobile camera, security survey, video talking, video analysis and so on with image resolution up to 1280×960 (datasheet says 1280×1024), and videos up to 720p30 or VGA @ 30fps.

Ingenic T10 Block Diagram (Click to Enlarge)

Ingenic T10 Block Diagram (Click to Enlarge)

Ingenic T10 specifications:

  • CPU – XBurst single core MIPS32 processor up to 1GHz with FPU, 32KB L1 I-cache, 32KB L1 D-cache, and 128KB L2 unified cache.
  • Memory – Embedded [email protected] up to 512Mbit
  • Encoder engine -H.264 baseline, main profile; MJPEG/JPEG Baseline
  • Encode Performance
    • Max resolution 1280×960
    • Up to H.264 [email protected] encode
    • H.264 multiple streams
      • [email protected] + [email protected] + [email protected]
      • [email protected] + [email protected] + [email protected]
    • 8 ROIs (Regions of Interest)
    • 5-layer OSD with hardware
  • ISP
    • AE, AWB (automatic white balance), AF
    • Lens shading correction
    • Advanced spatial noise reduction
    • Motion-adaptive temporal noise reduction (3D de-noise)
    • Multi-exposure HDR image fusion (WDR)
    • Space-variant HDR processing
    • Host tuning tools
  • Computer Vision – Motion Detection/Perimeter Protection, Face Detection,Human Detection, People Counting, License Plate Recognition, etc…
  • CMOS Sensor Interface
    • Maximum 12 bit HSYNC/VSYNC (DVP)
    • I2C sensor control, Flash and DC control
    • Programmable sensor clock output
    • Up to 100M pixels/s input
  • Audio – Embedded audio CODEC; AAC, G726, G711, PCM encoding; Echo cancellation
  • On-chip Peripherals
    • POR, RTC, WDT
    • 2 channel ADC
    • 2x UART, 2x SMB, 2x SPI, 12x GPIO
    • 2x SDIO supporting SDHC
    • 4x PWM
    • USB OTG
    • RMII EMAC, supporting PHY clock output.
  • Security
    • Hardware AES/DES/3DES
    • Global unique Chip ID
    • 32Byte customer OTP
  • Power Consumption – Less than 400mW power consumption including DDRII
  • Package – TFBGA181 ROHS, ball pitch of 0.65mm, 10 x 10 mm package
  • Process – 40 nm CMOS low power

The company provides support for Linux-3.10 for the SoC. There’s no information about evaluation or development kits/boards for the video processor. You can find more details on Ingenic T10 product page where you’ll find the datasheet in English.

Thanks to Victor for the tip.

Categories: Ingenic, Linux Tags: camera, ingenic, Linux, mips

Imagination Solution to FCC Rules for WiFi Routers: Run OpenWrt / DD-WRT and the WiFi Driver in Separate Virtual Machines

June 10th, 2016 9 comments

About a year ago, discussions started about new rules from the FCC that could prevent routers from installing open source third party operating systems such as OpenWrt or DDWRT. Despite the FCC assurance that the rules were meant to prevent some users from illegally tweaking the RF settings, and that it would not have to impact installing of open source alternatives, the reality is that companies such as TP-Link ended up locking their routers up due to the new rules, while Linksys would only ensure OpenWrt/ DD-WRT compatibility on some of their routers, but not all. Companies are probably doing that due to the extra work that would be required to separate the RF settings which need to be locked, and the rest of the firmware. But Imagination Technology’s prpl security group has a solution for their MIPS Warrior P-Class processors using hardware virtualization.


In order to show the concept works, they’ve developed the solution on an evaluation board based on Baikal T1 dual core MIPS P5600 communication processor, and using a Realtek RTL8192 WiFi adapter and the Ethernet port (WAN) for communications. The serial port was used for debugging Linux.

One the software side, they run an hypervisor, and three virtual machines (VM) leveraging the processor hardware capabilities:

  • Open source L4Re hypervisor comprised of an L4 microkernel that can run trusted native applications and act as a trusted hypervisor for operating systems.
  • Open VM for OpenWrt running OpenWrt and providing the main interface to the router facilities
  • Isolated VM for the Wi-Fi driver without direct access to the driver from other VMs, except through the virtual network connection using ports 85 for http, 449 for https or 29 for ssh. That’s the important part to comply with the FCC rules.
  • Dedicated VM for third party applications acting as a sandbox for running third party applications that provide additional functionality such as home automation apps.

Here’s the demo.

Of course, this will not solve the issues for existing cheap routers, but this could be a solution for future not-so-low-end WiFi routers.

Linux 4.6 Release – Main Changes, ARM and MIPS Architectures

May 16th, 2016 2 comments

Linus Torvalds released Linux Kernel 4.6 earlier today:

It’s just as well I didn’t cut the rc cycle short, since the last week ended up getting a few more fixes than expected, but nothing in there feels all that odd or out of line. So 4.6 is out there at the normal schedule, and that obviously also means that I’ll start doing merge window pull requests for 4.7 starting tomorrow.

Since rc7, there’s been small noise all over, with driver fixes being the bulk of it, but there is minor noise all over (perf tooling, networking, filesystems,  documentation, some small arch fixes..)

The appended shortlog will give you a feel for what’s been going on during the last week. The 4.6 kernel on the whole was a fairly big release – more commits than we’ve had in a while. But it all felt fairly calm despite that.

Linux 4.5 added support for GCC’s Undefined Behavior Sanitizer flag (-fsanitize=undefined) which should make the Linux kernel even more secure,an implementation of the next generation media controller, some performance improvements for file systems, etc…

Linux 4.6 brings many changes including:

  • USB 3.1 SuperSpeedPlus (10Gbps) support  – This release adds support for the USB 3.1 SuperSpeedPlus 10 Gbps speeds for usb core and xHCI host controller, meaning that a USB 3.1 mass storage connected to a USB 3.1 capable xHCI host should work with 10Gbps speeds.
  • Improve the reliability of the Out Of Memory task killer – The OOM killer kills tasks in order to free memory, but some tasks may take a long time before freeing up the memory, for example if it is stuck into an uninterruptible state. Linux 4.6 kernel adds oom_reaper thread that tries to reclaim memory by preemptively reaping the anonymous or swapped out memory owned by the OOM victim.
  • OrangeFS, a new distributed file system – OrangeFS is an LGPL scale-out parallel storage system used in applications such as HPC, BigData, Streaming Video, Genomics, Bioinformatics. You can read The OrangeFS distributed filesystem LWN article for more details.
  • 802.1AE MAC-level encryption (MACsec)MACsec standard provides encryption for all traffic over Ethernet using GCM-AES-128.
  • BATMAN V protocol – B.A.T.M.A.N. (Better Approach To Mobile Adhoc Networking) adds support for the V protocol, which does not rely on packet loss anymore, but the estimated throughput.

ARM architecture improvements and new features:

  • Allwinner:
    • Allwinner A83T support – Initial bringup; timer, watchdog and reboot
    • Allwinner H3 – R_PIO support
    • Allwinner A64 – Initial support
    •  NAND – ECC layout definition rework (partially) and randomizer support. Note: For devices that use eMMC, old device trees may no longer work with this version (i.e. you have to rebuild your .dtb files). Expect eMMC I/O errors otherwise.
    • ASoC – A10/A20 SPDIF driver
    • AXP223 PMIC support
    • Added board – Allwinner A83TDevBoard, Cubietruck Plus, Itead Ibox, Lamobo R1
  • Rockchip:
    • Rockchip rk3399 support for the rockchip-io-domain adaptive voltage scaling (AVS) driver
    • Rockchip rk3368 gains power domain support
    • Add Rockchip mailbox drive
    • pl330 updates to support DMAFLUSHP for Rockchip platforms
    • SPI controller bug fixes
    • Add driver for rockchip Display Port PHY
    • Add driver for the Rockchip SoC internal eMMC PHY
    • Add usb-uart functionality in rockchip-usb
  • Amlogic
    • Support for Amlogic S905 SoC and Tronsmart  Vega S95 boxes
    • Enable Amlogic Meson GXBaby platform
  • Samsung
    • Samsung exynos5433 updates for clk id errors, HDMI support, suspend/resume simplifications
    • Enable Samsung MFD and related configs
    • Fix for the Samsung I2S driver locking
    • Samsung Exynos ARM64 improvements – Remove separate ARCH_EXYNOS7 symbol and consolidate it into one ARCH_EXYNOS
    • Samsung Exynos (and older platforms) improvements
      • Split out Exynos PMU driver implementation from arm/mach-exynos to the drivers/soc/samsung which will allow re-use of it on ARM64.
      • Use generic DT cpufreq driver on Exynos542x/5800.
      • Minor cleanups.
    • Device tree updates
      • Split common reboot/poweroff node to separate DTSI
      • Don’t overheat Odroid XU3 by cooling CPU with cpufreq
      • Add SROM controller device nodes.
      • Add Ethernet chip as child of SROM controller on SMDK5410.
      • Allow simultaneous usage exynos-rng and s5p-sss drivers on Exynos5.
      • Cleanup CPU configuration on Exynos542x/5800.
      • Add necessary nodes for cpufreq-dt driver on Exynos542x/5800 (OPPs, regulator supplies) which allows frequency and voltage scaling of this SoC.
      • Minor cleanups
  • Qualcomm
    • ARM64 – Added support for Qualcomm MSM8996 SoC support, updates & cleanups for Qualcomm APQ8064, MSM8974, MSM8916, and others
    • Revert of patches for the Qualcomm BAM, these need to be reworked for 4.7 to avoid breaking boards other than the one they were intended for
    • Add Qualcomm NAND controller driver
    • ASoC capture support for Qualcomm drivers
    • Add Qualcomm Technologies HIDMA channel & HIDMA management drivers
    • Qualcomm IPQ4019 support in pinctrl
    • Qualcomm ARM Based Device Tree Updates:
      • Add documentation for Kryo
      • Add RPMCC node for APQ8064
      • Updates for MSM8974
      • Add board clocks
      • Add support for Nexus7 device
      • Fixup pmic reg properties
      • Various updates/cleanups for APQ8064 based boards
  • Mediatek
    • Added support for  Mediatek MT7623 SoC
    • SMP support for Mediatek mt2701
    • Revert part of the power domain initialization changes that broke mt8173-evb
    • Introduce Mediatek thermal driver
    • New Mediatek IOMMU driver
    • ASoC – New machine driver for Mediatek systems with RT5650 CODECs
    •  Add Mediatek MT8173 EFUSE driver
  • Texas Instruments
    • Improved support for Nokia N900 and other OMAP machines
    •  DaVinci & OMAP now uses the new DMA engine dma_slave_map
  • Other new ARM hardware or SoCs – 96Boards Husky board, AMD Overdrive board, Annapurna Labs Alpine family and development board, Broadcom Vulcan servers, Broadcom Northstar 2 SoC, Marvell Armada 3700 family and development board,   Axis Artpec-6 SoC, TI Keystone K2G SoC, ST Microelectronics stm32f469, ARM Juno R2,  Buffalo Linkstation LS-QVL and LS-GL, D-Link DIR-885L, ARM RealView PB1176 and PB11MPCore,  Google Nexus 7, Homlet v2,  LG Optimus Black, Logicpd DM3730, Raspberry Pi Model A, NXP i.MX6QP

MIPS pull request included the following changes:

  • Fix spelling mistakes all over arch/mips
  • Provide __bswapsi2 so XZ kernel compression will build with older GCC
  • ATH79 clock fixes.
  • Fix clock-rated copy-paste erros in ATH79 DTS.
  • Fix gisb-arb compatible string for 7435 BMIPS
  • Enable NAND and UBIFS support in CI20.
  • Fix BUG() assertion caused by inapropriate smp_processor_id() use.
  • Fix exception handling issues for the sake of debuggers
  • Fix the last remaining instance of irq_to_gpio in the db1xxx_ss PCMCIA code
  • Fix MSA unaligned load failures
  • Panic if kernel is configured for a not TLB-supported page size
  • Bail out on unsupported relocs in modules.
  • Partial fix for Qemu breakage after recent IPI rewrite
  • Wire up the preadv2 and pwrite2 syscalls
  • Fix the ar724x clock calculation

I’ve generated Linux 4.6 changelog with comments only using git log v4.5..v4.6 --stat, but you might as well as just read the changelog on which is also detailed and includes links to relevant articles.

Imagination Releases OpenWrt and LWM2M Stack Source Code for MIPS Creator Ci40 Development Board

March 25th, 2016 No comments

MIPS Creator Ci40 is a development board made by Imagination technology that features the company’s Creator cXT200 “Pistachio” SoC with a dual core MIPS interAptiv processor @ 550MHz and Ensigma C4500 RPU for 802.11ac/ BT 4.1 LE connectivity. The boards are supposed to be shipped to Kickstarter backers in April, but in the meantime, the company has released the source code for OpenWrt distribution as well as LWM2M stack for the board.


OpenWRT source code is available in OpenWrt repo in FlowM2M gitbub account. Building the code for MIPS Creator Ci40 is quite straightforward:


Select IMG MIPS Pistachio in make menuconfig, save the settings, and then run make to build OpenWrt for the board. This will also build the toolchain, so you don’t need to install any before hand.

LWM2M stands for Lightweight Machine to Machine, and is a protocol from the Open Mobile Alliance (OMA) for M2M / IoT device management, which defines the application layer communication protocol between a LWM2M Server and a LWM2M Client running on LWM2M Device. Imagination implementation is called Awa LWM2M. It’s a development suite that provides a number of components and tools.  For example a gateway will run both LWM2M daemon and client, but a sensor node would only run the client, Creator Ci40 board would communicate with sensors over 6LoWPAN using MikroElektronica 6LoWPAN Clicker boards.

Click to Enlarge

Click to Enlarge

You can find the source code and documentation on Awa LWM2M github repo.

Linux 4.5 Released – Main Changes, ARM and MIPS Architectures

March 15th, 2016 1 comment

Linus Torvalds released Linux Kernel 4.5 on Sunday:

So this is later on a Sunday than my usual schedule, because I just couldn’t make up my mind whether I should do another rc8 or not, and kept just waffling about it. In the end, I obviously decided not to,but it could have gone either way.

We did have one nasty regression that got fixed yesterday, and the networking pull early in the week was larger than I would have wished for. But the block  layer should be all good now, and David went through all his networking commits an extra time just to make me feel comfy about it, so in the end I didn’t see any point to making the release cycle any longer than usual.

And on the whole, everything here is pretty small. The diffstat looks a bit larger for an xfs fix, because that fix has three cleanup refactoring patches that precedes it. And there’s a access type pattern fix in the sound layer that generated lots of noise, but is all very simple in the end.

In addition to the above, there’s random small fixes all over-shortlog appended for people who want to skim the details as usual.

Go test, and obviously with 4.5 released, I’ll start the merge window for 4.6.

Linux 4.4 added support for a faster and leaner loop device, 3D support in virtual GPU driver, TCP improvements, various file systems improvements for BTRFS, EXT-4, CIFS, XFS etc… Some notable changes made to Linux 4.5 include:

  • Copy offloading with new copy_file_range(2) system call – Performance improvements on local file systems are marginal, but for networked file systems such as NFS, you could copy a file internally on a server drive without transferring file data over the network.
  • Experimental PowerPlay for amdgpu driver
  • Btrfs free space handling scalability improvements – New, experimental way of representing the free space cache that takes less work overall to update on each commit and fixes the scalability issues for large drives (30TB+). It can be enabled with -o space_cache=v2 mount option, and you can revert to the one method with -o clear_cache,space_cache=v1.
  • Support for GCC’s Undefined Behavior Sanitizer (-fsanitize=undefined) UBSAN (Undefined Behaviour SANitizer) is a debugging tool available since GCC 4.9. It inserts instrumentation code during compilation that will perform checks at runtime before operations that could cause undefined behaviors. Linux 4.5 supports compiling the kernel with the Undefined Behavior Sanitizer enabled.
  • Next gen media controller whose “goal is to improve the media controller to allow proper support for other types of Video4Linux devices (radio and TV ones) and to extend the media controller functionality to allow it to be used by other subsystems like DVB, ALSA and IIO”. See lkml for details

Some new features and improvements specific to the ARM architecture:

  • Allwinner:
    • Allwinner A80 support – IR receiver driver, NMI controller,PRCM driver, R_PIO support, and RSB driver
    • Allwinner H3 SoC support – H3 USB PHY clocks
    • A10/A20 Video Engine clocks
    • MIC1 capture for sun4i codec
    • Audio codec enabled on various boards
    • Added board – Orange Pi Plus
  • Rockchip:
    • Crypto module and io-domain driver enabled in multi_v7_defconfig
    • Tweaks for RK3368 SoC and eval board
    • Added Rockchip RK3228 SoC and eval board
    • New RK3228 subdriver in pinctrl
    • SPI driver fix
    • Added support for RK3399 in thermal driver
    • RK3036: Added SMP support, emac support
    • Expose USB PHY PLLs
  • Amlogic
    • Device tree changes – Add watchdog node to meson8b, add status LED for ODROID-C1
    • Watchdog timer modifications
  • Samsung
    • eMMC/SDIO minor fixes usage of bindings on Snow and Peach chromebooks.
    • Remove FIMD from Odroid XU3-family because on XU3 it cannot be used yet and on XU3-Lite and XU4 it is not supported.
    • Remove deprecated since June 2013 samsung,exynos5-hdmi.
    • Add support for Pseudo Random Generator on Exynos4 (Trats2 for now). This depends on new SSS clock.
    • Add rotator nodes for Exynos4 and Exynos5.
    • Switch DWC3_1 on Odroid XU3 and XU3-Lite to peripheral mode because  now it cannot be used as OTG.
    • Cleanup the G2D usage on Exynos4 and add it to a proper domain in case of Exynos4210.
    • Put MDMA1 in proper domain on Exynos4210 as well.
    • Minor cleanups
  • Qualcomm
    • New pinctrl subdrivers for Qualcomm MSM8996, PM8994,  PM8994 MPP support
    • Added Qualcomm PCIe controller driver
    • Qualcomm ARM64:  Add fixed rate oscillators to dts, fixup PMIC alias and properties, change 8916-MTP compatible to be compliant with new scheme, fix 8×16 UART pinctrl configuration, add SMEM, RPM/SMD, and PM8916 support on MSM8916
  • ARM SoC multiplatform code – “This branch is the culmination of 5 years of effort to bring the ARMv6 and ARMv7 platforms together such that they can all be enabled and boot the same kernel”
  • ARM64 – hugetlb: add support for PTE contiguous bit; perf: add support for Cortex-A72;
  • Other new hardware or SoCs – Sigma Designs ARM Cortex-A9 Tango4 “Secure Media Processor” platforms (SMP8756, SMP8758, and SMP8759), TI-based DM3730 from LogicPD (Torpedo), Cosmic+ M4 (nommu) initial support (Freescale Vybrid), Veyron-mickey (ASUS Chromebit), BCM2836 and Raspberry Pi 2 B.

MIPS changes:

  • Add support for PIC32MZDA platform
  • bcm963xx: Add Broadcom BCM963xx board nvram data structure
  • dts: Add initial DTS for the PIC32MZDA Starter Kit
  • math-emu: Add IEEE Std 754-2008 ABS.fmt and NEG.fmt emulation
  • math-emu: Add IEEE Std 754-2008 NaN encoding emulation
  • math-emu: Add IEEE Std 754 conformance mode selection
  • pci: Add MT7620a PCIE driver
  • ralink: add MT7621 support
  • zboot: Add support for serial debug using the PROM

If you want to get the full details, I’ve generated Linux 4.5 Changelog with comments only (12.2MB) using git log v4.4..v4.5 --stat, but it’s probably a better idea to simply check out Linux 4.5 changelog on

Tavolga Terminal TP-T22BT Debian 8 All-in-One Computer is Powered by Baikal-T1 MIPS Processor

March 3rd, 2016 6 comments

A Russian company called Baikal Electronics announced it was working on Baikal T1 dual core MIPS P5600 to provide an alternative to US based Intel and AMD processor last year, not too long after Edwards Snowden revaluations about the NSA malpractices. Good progress has been made as T-Platforms has now launched Tavolga Terminal TP-T22BT All-in-One computer with a 21.5″ display, up to 8 GB RAM, and the Baikal T1 processor running Debian 8.

Tavolga_Terminal_TB-T22BTTP-T22BT specifications (derived from product brief in Russian):

  • Processor – Baikal dual core MIPS 5600 processor @ 1.0 GHz with 1MB L2 cache
  • GPU – Silicon Motion SM750 GPU with 16MB video memory, 2D graphics acceleration
  • System Memory – 2 to 8GB DDR3
  • Storage – Optional 8GB NAND flash, optional 8GB SSD, and optional 2.5″ SATA drive (Baikal-T1 has a built-in SATA interface)
  • Display – 21.5″ IPS Full HD (1920×1080) display with LED backlight
  • Audio – PCM2912A codec, 2x 2.5W speakers, 3.5mm headphone jack
  • Connectivity – 2x Gigabit Ethernet RJ45 ports, and 1x SFP module (100/1000M)
  • USB – 4x USB 2.0 ports
  • Misc – 1x PS/2 port, Kensington lock
  • Power Supply – 110-230V, 50/60Hz AC

The terminal ships with a USB keyboard and mouse, and comes with a 3-year warranty. The GPU appears to be pretty weak, without 3D graphics, nor VPU, so it will probably mostly be used as a thin client or for office tasks.

T-Platforms also demonstrated SMARC 1.1 compliant SF-BT1 system-on-module used inside the terminal at Mobile World Congress and Embedded World 2016 with  2 to 8GB RAM, and all Baikal-T1 interfaces via the MXM 3 edge connector: 2x SATA 3.0, 1x PCie Gen3 x4, GPIOs, 1x 10 GbE, 2x GbE, etc..


The module supports Linux 3.19.

The computer can be purchased / pre-ordered now, but price has not been disclosed, and  delivery is scheduled to start in Q2 2016, while the SMARC module with be available with 2GB and the full SDK in Q2 2016 as well, but other configurations will come a little later. More details can be found on TP-T22BT and SF-BT1 product pages, as well as on Imagination Blog.

Categories: Debian, Linux, Processors Tags: baikal, debian, Linux, mips, smarc, som

Two Contests for Makers with BeagleBone Green (ARM) and Creator CI20 (MIPS) Boards

February 12th, 2016 3 comments

I’ve noticed Hackster hardware community has helped organizing several challenges for makers, and the most two recent one are sponsored by Imagination Technologies with their Creator CI20 MIPS board, and SeeedStudio and with BeagleBone Green board.

“Terminate the competition with Creator Ci20!”

Creator_CI40_BoardThat’s the title for Imagination Technologies contest, who basically wants you to create our robot overloads using their MIPS board, or at least design a Terminator inspired robot or hack using the board.

You’ll need to submit your idea by March 4, 2016, and the company will give 50 Creator Ci20 to the best 50 ideas, aftwer which you have until April 29, 2016 to complete your project, and write about it on Hackster with photos, code and schematics. Three winners will be selected by May 6, 2016 to get one of the three prizes:

  • 1st place (worth $400) – A bag of Imagination-powered goodies, including a Meizu MX5 smartphone, the upcoming Creator Ci40 development board, and other accessories and add-on boards from MikroEletronika
  • 2nd place (worth $200) – A Securifi Almond router and a Creator Ci40 board
  • 3rd place (worth $150) – A chipKIT Wi-FIRE development board and a Creator Ci40 board

BeagleBone Green (BBG) Contest

BeagleBone_GreenThere’s no particular theme for this contest, and the organizers simply ask you to submit any idea using BBG by February 22, 2016, where 20 contestants will win a BBG board each, and 100 more get a 20% discount coupon valid on SeeedStudio. Winners of the pre-contest will be announced on February 27. You’ll then have until March 31 to submit your complete project with hardware design files, source code, and pictures, and 3 winners will be selected by April 2. The three prizes will take you to Shenzhen Maker Faire:

  • 1st place – Paid Trip to Maker Faire Shenzhen 2016 ($3,000) + $900 SeeedStudio Store coupon + Designed for Manufacturing Review
  • 2nd place – Paid Trip to Maker Faire Shenzhen 2016 ($3,000) + $400 SeeedStudio Store coupon + Designed for Manufacturing Review
  • 3rd place – Paid Trip to Maker Faire Shenzhen ($3,000) + $200 SeeedStudio Store coupon + Designed for Manufacturing Review

I could not find the exact dates for Shenzhen Maker Faire 2016, but last year it took place on June 19 to 21. [Update: I’ve been told it will take place mid-October this year, with exact date to be decided]

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.


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.


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.


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 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 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, 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.