"Session ID: HKG18-309
Session Name: HKG18-309 - Introduction to Linaro and 96Boards for Engineers
Speaker: Robert Wolff
Track: 96Boards;Ecosystem Day
★ Session Summary ★
Having been around for so long already, many who view keynotes and sessions are jumping in at a bit of a learning curve. This session will take the explanation of Linaro and 96Boards back to basics. Focusing on the what, why, and how things get done within these two segments at a very high level.
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/hkg18/hkg18-309/
Presentation: http://connect.linaro.org.s3.amazonaws.com/hkg18/presentations/hkg18-309.pdf
Video: http://connect.linaro.org.s3.amazonaws.com/hkg18/videos/hkg18-309.mp4
---------------------------------------------------
★ Event Details ★
Linaro Connect Hong Kong 2018 (HKG18)
19-23 March 2018
Regal Airport Hotel Hong Kong
---------------------------------------------------
Keyword: 96Boards;Ecosystem Day
'http://www.linaro.org'
'http://connect.linaro.org'
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961"
2. Introduction to Linaro
➢ Founded June 2010
● Connects the Industry and Open Source
community
● Collaborates on key projects
● Delivers great tools
● Reduce industry wide fragmentation and
redundant effort
● Provide common software foundations
● http://www.linaro.org/about/
● https://en.wikipedia.org/wiki/Linaro
3. Introduction to 96Boards
➢ Founded February 2015
● 96Boards is a part of Linaro
● Series of open hardware specifications
● ARM 32-bit and 64-bit developer boards
● Community enabled open source software
development
● http://www.96boards.org
Social Media: @96Boards
4. 96Boards Initiatives
● Family of Open “Hardware Specifications”
● 96Boards OpenHours
● Mezzanine Community
● Projects Community
● Open Source Academics
● 96Boards standardized libraries
6. What is a Mezzanine ?
96Boards mezzanine are add on boards that let you
expand your Consumer Edition or Enterprise Edition
96Boards with new interfaces for IoT, industrial control,
and other embedded applications.
UART Mezzanine STM32 Sensor Mezzanine
7. What is The Mezzanine Community ?
A community based initiative to
facilitate discussion, design and
development of 96Boards Mezzanine.
8. The Mezzanine Community
GOALS:
● Provide Open-Source templates and examples to serve as
starting point in order to accelerate the mezzanine
ecosystem.
● Host Open-Source design files for mezzanines.
● Host Ideas.
● Discuss and collaborate on mezzanine ideas suggested
by the 96Boards Community.
9. More on the Mezzanine Community
● Hosted at: https://github.com/96boards/mezzanine-community/
● Lead Maintainer: Michael Welling, founder of QWERTY Embedded Design.
● Bi-Weekly community meeting for updates on on-going projects and discuss
new ideas.
https://github.com/96boards/mezzanine-community#meeting-notes
● Each mezzanine has individual License to the contributors choice.
Contribution Policy: https://github.com/96boards/mezzanine-
community/blob/master/CONTRIBUTE.md
10. More on the mezzanine-community repo...
Divided into 3 Parts:
● Boards
○ Categorized by the CAD software used
● Meetings (Depreciated/Legacy)
● Templates
○ Categorized by the CAD software used
11. Mezzanines from the community...
GPS Mezzanine by Michael Welling
● Based on PA6H GPS Module
● Designed using KiCAD
● External Antenna Support
● Backup Battery
● Soon to be sold via Crowdfunding - GroupGets
12. Proto Mezzanine by Barry Byford
● Provides a Breadboard-Like structure to test mezzanine designs.
● Designed on KiCAD
● Cheap to manufacture.
Mezzanines from the community...
13. IoT-6LoWPAN-gateway-v01 by Rafael Christ,
Gustavo Pinheiro and Anderson Vedoveto
● First Board on the repo.
● 6loWPAN ( IPv6 over Low-Power Wireless Personal
Area Networks) Sub-1GHz Radio (CC1310).
● 3G modem (Telit HE910-EUD).
● Circuitry for automatic switch between AC
Adapter power supply and backup battery.
● Ultra-low power MCU to manage the board,
monitor voltages, and works as an external
watchdog with capability to reset the
DragonBoard in case of error.
● Noise, short circuit and overvoltage protection
● Shutdown and reset relay
● Power on LED
● A internal 3.3V regulator to power radio module
and board circuitry.
Mezzanines from the community...
14. How to Contribute?
● Not talking about CONTRIBUTE.md
● Contribute by reportng issues
● Contribute by submitting new boards
● Contribute by Submitting Ideas
16. Handling DT overlays
● Discussed during last Mezzanine Ecosystem session at
SFO17
● Needed a mechanism for merging board specific overlays
with base Device Tree
● Overlay merging from kernel space is preferred (to avoid
security concerns)
● Not much progress so far…
● Options currently available:
○ Userspace: DT-Update tool
○ Kernel: ConfigFS interface
○ Bootloader: UBoot, LK etc...
17. DT-Update - Userspace DT tool
● Created by Loic Poulain from Support and Solutions team of Linaro
● Modifies the DT blobs stored in root file system
● Currently implemented for Dragonboard410c
● Two tools are provided:
○ dbootimg
○ dtbtool
● dbootimg - Extract/update DT blobs and kernel image from DB410c boot
image stored in RFS
● dtbtool - Edit the extracted device tree blob (add nodes, modify properties ...)
● Requires restart in order to see changes taking effect
● https://github.com/96boards/dt-update
18. ConfigFS interface
● Initially proposed by Pantelis of Konsulko group
● Modification requested by Grant for fixing the security issues
● No update since then
● Still being used in Rpi and BBB downstream kernels
● We decided to respin this patch and address security concerns
● Proposal:
○ Introducing ‘enable-overlay’ property in base DT for allowing nodes to be modified by overlay
○ ConfigFS interface will check the overlay’s target-node against this property
○ Kernel will have direct control over which nodes can be modified during runtime
○ Proposal not yet submitted upstream for review
○ Need to test it rigorously on most of 96Boards CE platforms
○ Currently tested only on Bubblegum-96 running 4.15-rc2
19. Overlay support in Bootloader
● Handle DT overlay merging in bootloader itself
● Support added by Bootlin (Formerly Free Electrons)
● Currently implemented for Uboot
● Not all 96Boards CE platforms support UBoot
● Should be possible to implement on all libfdt based bootloaders
● Overlay will be merged before handling the DT blob to kernel
● Mostly preferred
21. DT connector
● Required for using board agnostic DT overlays for the
Mezzanines
● Adds one layer of indirect for making connections to
GPIO, I2C, SPI etc… defined in terms of connectors
● Patch submitted by Stephen Boyd for GPIO connector
● Base DT has to implement a connector node for allowing
remapping of GPIO specifiers in overlay to multiple GPIO
providers in SoC
● Need to implement it for the rest of peripherals