SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
LEADING
COLLABORATION
IN THE ARM
ECOSYSTEM
New Zephyr features
LWM2M / FOTA Framework
Marti Bolivar <marti.bolivar@linaro.org>
David Brown <david.brown@linaro.org>
Ricardo Salveti <ricardo.salveti@linaro.org>
Mike Scott <michael.scott@linaro.org>
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Zephyr and LTD
“changing at an alarming pace”
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Version Changesets Changed lines
1.1.0 481 15,798(+) 9,205(-)
1.2.0 482 37,176(+) 11,044(-)
1.3.0 456 37,216(+) 15,452(-)
1.4.0 473 289,223(+) 14,585(-)
1.5.0 970 179,485(+) 18,732(-)
1.6.0 3,188 1,706,583(+) 131,887(-)
1.7.0 1,839 1,126,493(+) 336,555(-)
1.8.0 1,692 858,467(+) 239,250(-)
Since Zephyr v1.0.0 (February 8)
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
FOTA at last Connect
● MCUBoot talk given by David
○ Introduce the bootloader
○ Discuss the Zephyr port, work with Runtime, etc
○ A more detailed update was given earlier today in SFO17-118, so just some Zep
updates to discuss today
● hawkBit keynote demo
○ FOTA updates of devices which live-streamed temperature data
○ An updated demo was given at today’s keynote
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Zephyr work since then
● Firmware over the air (FOTA) framework
● LWM2M subsystem and example applications
● Today’s keynote demos
○ hawkBit
○ LWM2M
○ BT Mesh lights
Work in progress, in collaboration with other groups and companies.
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
MCUBoot + FOTA framework
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Desiderata
● Should be possible to add SoC or board support for
mcuboot without changing mcuboot repository
● Should be possible to portably share system configuration
○ The bootloader,
○ Applications which are chain-loaded by it
○ Bootloader and application build systems (including flashing
and debug)
In short, mcuboot should be “easy”.
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Booting with MCUBoot
Application image
area
Other
Application
update area
TMPMCUBoot Etc
MCUBoot’s job is to move a new image in the update
area to the main application image area, using the
temporary (TMP) scratch space to avoid data loss.
It and apps need to know various details about the
flash device, and peacefully coexist with other
partitions.
MCUBoot
header
Vector table
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Flash specifics to know about (apps and bootloader)
Sector
0
Sector
1
Sector 2 Sector n - 1...Sector
3
● Map between sectors and “partitions” / image areas
● Nonuniform sector sizes (e.g. STM32)
● Widely varying “write block sizes” (1, 4, 8 common)
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Support issues on Zephyr
Zephyr (or other RTOS)
Kernel Flash driver
Bootutil library
(bootloader core)
Board header (flash layout,
WBS, sector sizes)
Small application, mostly defers to bootutil
HAL (for mynewt compatibility)
One header file per board with
flash layout, sector “size”, etc.
This information is duplicated
again in every application that
needs to manage FOTA updates
with mcuboot.
This is tedious and error-prone.
Also, what happens when you
want to change the config?
Partitions in DTS now, but more
remains for writing apps.
Other issues around flashing, etc.
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
MCUBoot with Zephyr + “FOTA framework”
Zephyr
Kernel Flash driver + device
tree (partition / sector
map, write block size)
Bootutil library (bootloader core)
Small application, mostly defers to bootutil
HAL (flash layout, WBS, variable sector size support)
MCUBoot /
DFU manager
MCUBoot’s HAL will allow
target-specific hacks, but
supports obtaining everything
from the OS.
Target-specific behavior from DTS and
the flash driver.
MCUBoot manager allows apps and
bootloader to start sharing code.
Makefile.exports for build systems, but
more work needed to make this easy.
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
LWM2M
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
LWM2M from 10,000 ft (3048 m)
UDP, L2, PHY
CoAP [+DTLS]
LWM2M
IPSO objects
Application callbacks, etc.
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
LWM2M and IPSO
● LWM2M: 18 base objects managed via OMA Working Groups with room for
expansion up to object id 1023. Security (0), Server (1), Device (3), Firmware (5) ...
● IPSO: Hundreds of standard and vendor-defined objects starting with object id
2048. Examples: Light control (3311) used in keynote demo, also presence
(3302), humidity (3304), accelerometer (3313), magnetometer (3314), …
● These well-defined objects / resources increase interoperability.
More details in the OMA registry.
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Resource Name Read/write Number Required? Type
5850 On/Off RW Single Mandatory Boolean
5851 Dimmer RW Single Optional Integer
5852 On Time RW Single Optional Integer
5805 Cumulative
active power
R Single Optional
5820 Power Factor R Single Optional Float
5706 Colour RW Single Optional String
5701 Sensor Units R Single Optional String
IPSO Light Control Object Resources
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
IPSO Light Control in Source Form
static struct lwm2m_engine_obj_field fields[] = {
OBJ_FIELD_DATA(LIGHT_ON_OFF_ID, RW, BOOL),
OBJ_FIELD_DATA(LIGHT_DIMMER_ID, RW, U8),
OBJ_FIELD_DATA(LIGHT_ON_TIME_ID, RW, S32),
OBJ_FIELD_DATA(LIGHT_CUMULATIVE_ACTIVE_POWER_ID, R,
FLOAT32),
OBJ_FIELD_DATA(LIGHT_POWER_FACTOR_ID, R, FLOAT32),
OBJ_FIELD_DATA(LIGHT_COLOUR_ID, RW, STRING),
OBJ_FIELD_DATA(LIGHT_SENSOR_UNITS_ID, R, STRING),
};
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Instance-specific data declarations
/* Initialize instance resource data. */
INIT_OBJ_RES_DATA(res[avail], i, LIGHT_ON_OFF_ID,
&on_off_value[avail], sizeof(*on_off_value));
INIT_OBJ_RES_DATA(res[avail], i, LIGHT_DIMMER_ID,
&dimmer_value[avail], sizeof(*dimmer_value));
[...]
INIT_OBJ_RES_DATA(res[avail], i, LIGHT_SENSOR_UNITS_ID,
units[avail], LIGHT_STRING_SHORT);
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Application level
/* Resource initialization */
lwm2m_engine_set_string("3/0/0", CLIENT_MANUFACTURER);
lwm2m_engine_set_string("3/0/1", CLIENT_MODEL_NUMBER);
[...]
/* Engine startup */
ret = lwm2m_rd_client_start(&client, CONFIG_NET_APP_PEER_IPV6_ADDR,
CONFIG_LWM2M_PEER_PORT, CONFIG_BOARD,
rd_client_event);
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
End to End Demo System
● Control an LED and do a FOTA
update via LWM2M
● Canned Docker containers and
build system glue to get moving
quickly
● http://ltd-docs.readthedocs.io/
en/ltd-17.09/iotfoundry/lwm2m
-howto.html
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
How to play with the Zephyr LWM2M Client locally
● Download the latest Leshan Demo Server build and start
○ $ wget
https://hudson.eclipse.org/leshan/job/leshan/lastSuccessfulBuild/artifact/
leshan-server-demo.jar
○ $ java -jar ./leshan-server-demo.jar
○ Open a web browser to: http://localhost:8080
● Run the Zephyr LWM2M Client via QEMU
○ Follow “Getting Started” Guide
○ Follow “Networking with QEMU” Docs
○ $ make -C samples/net/lwm2m_client run
LEADING COLLABORATION
IN THE ARM ECOSYSTEM
Zephyr LWM2M Roadmap
In Zephyr v1.9
● LWM2M Engine to manage
registering smart object and
handling read/write/create/delete
operations.
● Registration device client state
machine (DTLS not supported yet)
● 4 OMA LWM2M objects: Security,
Server, Device and Firmware
● Support for firmware update via
both direct resource write and pull
via URL resource.
Coming in the future
● Migrate to new Zephyr CoAP APIs.
● LWM2M Engine to support DTLS.
● Registration client to support
bootstrap state machine.
● Add more OMA standard smart
objects: Access Controls, Location
…
● Add more IPSO Smart Objects.
● Optimization!

Weitere ähnliche Inhalte

Was ist angesagt?

Emanuele Faranda - Creating network overlays with IoT devices using N2N
Emanuele Faranda - Creating network overlays with IoT devices using N2NEmanuele Faranda - Creating network overlays with IoT devices using N2N
Emanuele Faranda - Creating network overlays with IoT devices using N2N
linuxlab_conf
 
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systemsClaudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
linuxlab_conf
 
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
linuxlab_conf
 

Was ist angesagt? (20)

OpenWrt From Top to Bottom
OpenWrt From Top to BottomOpenWrt From Top to Bottom
OpenWrt From Top to Bottom
 
Emanuele Faranda - Creating network overlays with IoT devices using N2N
Emanuele Faranda - Creating network overlays with IoT devices using N2NEmanuele Faranda - Creating network overlays with IoT devices using N2N
Emanuele Faranda - Creating network overlays with IoT devices using N2N
 
BKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and ProgressBKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
BKK16-211 Internet of Tiny Linux (io tl)- Status and Progress
 
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systemsClaudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
 
BUD17 Socionext SC2A11 ARM Server SoC
BUD17 Socionext SC2A11 ARM Server SoCBUD17 Socionext SC2A11 ARM Server SoC
BUD17 Socionext SC2A11 ARM Server SoC
 
The Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast StorageThe Linux Block Layer - Built for Fast Storage
The Linux Block Layer - Built for Fast Storage
 
BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE
 
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
Valerio Di Giampietro - Introduction To IoT Reverse Engineering with an examp...
 
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
 
Andrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profitAndrea Righi - Spying on the Linux kernel for fun and profit
Andrea Righi - Spying on the Linux kernel for fun and profit
 
LAS16-407: Internet of Tiny Linux (IoTL): the sequel.
LAS16-407: Internet of Tiny Linux (IoTL): the sequel.LAS16-407: Internet of Tiny Linux (IoTL): the sequel.
LAS16-407: Internet of Tiny Linux (IoTL): the sequel.
 
F9 Microkernel code reading - part 1
F9 Microkernel code reading - part 1F9 Microkernel code reading - part 1
F9 Microkernel code reading - part 1
 
Mirko Damiani - An Embedded soft real time distributed system in Go
Mirko Damiani - An Embedded soft real time distributed system in GoMirko Damiani - An Embedded soft real time distributed system in Go
Mirko Damiani - An Embedded soft real time distributed system in Go
 
Linux Interrupts
Linux InterruptsLinux Interrupts
Linux Interrupts
 
Kernel Recipes 2015: Greybus
Kernel Recipes 2015: GreybusKernel Recipes 2015: Greybus
Kernel Recipes 2015: Greybus
 
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and ApproachesBUD17-104: Scripting Languages in IoT: Challenges and Approaches
BUD17-104: Scripting Languages in IoT: Challenges and Approaches
 
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
 
Libpcap
LibpcapLibpcap
Libpcap
 
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device ConfigurationLAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
LAS16-300: Mini Conference 2 Cortex-M Software - Device Configuration
 
Kernel Proc Connector and Containers
Kernel Proc Connector and ContainersKernel Proc Connector and Containers
Kernel Proc Connector and Containers
 

Ähnlich wie New Zephyr features: LWM2M / FOTA Framework - SFO17-113

Extending oracle tools final
Extending oracle tools finalExtending oracle tools final
Extending oracle tools final
InSync Conference
 
Acpi and smi handlers some limits to trusted computing
Acpi and smi handlers some limits to trusted computingAcpi and smi handlers some limits to trusted computing
Acpi and smi handlers some limits to trusted computing
UltraUploader
 
Georgy Nosenko - An introduction to the use SMT solvers for software security
Georgy Nosenko - An introduction to the use SMT solvers for software securityGeorgy Nosenko - An introduction to the use SMT solvers for software security
Georgy Nosenko - An introduction to the use SMT solvers for software security
DefconRussia
 
Configuring ee (enterprise extender) between two ibm system i systems tech ...
Configuring ee (enterprise extender) between two ibm system i systems   tech ...Configuring ee (enterprise extender) between two ibm system i systems   tech ...
Configuring ee (enterprise extender) between two ibm system i systems tech ...
jbharo
 
RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1
Serge Amougou
 

Ähnlich wie New Zephyr features: LWM2M / FOTA Framework - SFO17-113 (20)

ARM® Cortex™ M Bootup_CMSIS_Part_2_3
ARM® Cortex™ M Bootup_CMSIS_Part_2_3ARM® Cortex™ M Bootup_CMSIS_Part_2_3
ARM® Cortex™ M Bootup_CMSIS_Part_2_3
 
RTOS implementation
RTOS implementationRTOS implementation
RTOS implementation
 
Freertos based environmental data acquisition using arm cortex m4 f core
Freertos based environmental data acquisition using arm cortex m4 f coreFreertos based environmental data acquisition using arm cortex m4 f core
Freertos based environmental data acquisition using arm cortex m4 f core
 
Embedded system apsd
Embedded system apsdEmbedded system apsd
Embedded system apsd
 
Extending oracle tools final
Extending oracle tools finalExtending oracle tools final
Extending oracle tools final
 
PrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems ModelingPrismTech Integrated Communications Systems Modeling
PrismTech Integrated Communications Systems Modeling
 
IRJET - Positioning and Tracking of a Person using Embedded Controller in a D...
IRJET - Positioning and Tracking of a Person using Embedded Controller in a D...IRJET - Positioning and Tracking of a Person using Embedded Controller in a D...
IRJET - Positioning and Tracking of a Person using Embedded Controller in a D...
 
MemVerge: The Software Stack for CXL Environments
MemVerge: The Software Stack for CXL EnvironmentsMemVerge: The Software Stack for CXL Environments
MemVerge: The Software Stack for CXL Environments
 
Lab6 rtos
Lab6 rtosLab6 rtos
Lab6 rtos
 
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
Christchurch Embedded .NET User Group - Introduction to Microsoft Embedded pl...
 
Acpi and smi handlers some limits to trusted computing
Acpi and smi handlers some limits to trusted computingAcpi and smi handlers some limits to trusted computing
Acpi and smi handlers some limits to trusted computing
 
Lucas apa pacsec slides
Lucas apa pacsec slidesLucas apa pacsec slides
Lucas apa pacsec slides
 
Georgy Nosenko - An introduction to the use SMT solvers for software security
Georgy Nosenko - An introduction to the use SMT solvers for software securityGeorgy Nosenko - An introduction to the use SMT solvers for software security
Georgy Nosenko - An introduction to the use SMT solvers for software security
 
Project Report On Micro-controller Embedded System
Project Report On Micro-controller Embedded SystemProject Report On Micro-controller Embedded System
Project Report On Micro-controller Embedded System
 
Configuring ee (enterprise extender) between two ibm system i systems tech ...
Configuring ee (enterprise extender) between two ibm system i systems   tech ...Configuring ee (enterprise extender) between two ibm system i systems   tech ...
Configuring ee (enterprise extender) between two ibm system i systems tech ...
 
RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1
 
RTBN
RTBNRTBN
RTBN
 
MYS-8MMX Single Board Computer
MYS-8MMX Single Board ComputerMYS-8MMX Single Board Computer
MYS-8MMX Single Board Computer
 
Android Things in action
Android Things in actionAndroid Things in action
Android Things in action
 
Armboot process zeelogic
Armboot process zeelogicArmboot process zeelogic
Armboot process zeelogic
 

Mehr von Linaro

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
Linaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
Linaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
Linaro
 

Mehr von Linaro (20)

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 

Kürzlich hochgeladen

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

New Zephyr features: LWM2M / FOTA Framework - SFO17-113

  • 1. LEADING COLLABORATION IN THE ARM ECOSYSTEM New Zephyr features LWM2M / FOTA Framework Marti Bolivar <marti.bolivar@linaro.org> David Brown <david.brown@linaro.org> Ricardo Salveti <ricardo.salveti@linaro.org> Mike Scott <michael.scott@linaro.org>
  • 2. LEADING COLLABORATION IN THE ARM ECOSYSTEM Zephyr and LTD “changing at an alarming pace”
  • 3. LEADING COLLABORATION IN THE ARM ECOSYSTEM Version Changesets Changed lines 1.1.0 481 15,798(+) 9,205(-) 1.2.0 482 37,176(+) 11,044(-) 1.3.0 456 37,216(+) 15,452(-) 1.4.0 473 289,223(+) 14,585(-) 1.5.0 970 179,485(+) 18,732(-) 1.6.0 3,188 1,706,583(+) 131,887(-) 1.7.0 1,839 1,126,493(+) 336,555(-) 1.8.0 1,692 858,467(+) 239,250(-) Since Zephyr v1.0.0 (February 8)
  • 4. LEADING COLLABORATION IN THE ARM ECOSYSTEM FOTA at last Connect ● MCUBoot talk given by David ○ Introduce the bootloader ○ Discuss the Zephyr port, work with Runtime, etc ○ A more detailed update was given earlier today in SFO17-118, so just some Zep updates to discuss today ● hawkBit keynote demo ○ FOTA updates of devices which live-streamed temperature data ○ An updated demo was given at today’s keynote
  • 5. LEADING COLLABORATION IN THE ARM ECOSYSTEM Zephyr work since then ● Firmware over the air (FOTA) framework ● LWM2M subsystem and example applications ● Today’s keynote demos ○ hawkBit ○ LWM2M ○ BT Mesh lights Work in progress, in collaboration with other groups and companies.
  • 6. LEADING COLLABORATION IN THE ARM ECOSYSTEM MCUBoot + FOTA framework
  • 7. LEADING COLLABORATION IN THE ARM ECOSYSTEM Desiderata ● Should be possible to add SoC or board support for mcuboot without changing mcuboot repository ● Should be possible to portably share system configuration ○ The bootloader, ○ Applications which are chain-loaded by it ○ Bootloader and application build systems (including flashing and debug) In short, mcuboot should be “easy”.
  • 8. LEADING COLLABORATION IN THE ARM ECOSYSTEM Booting with MCUBoot Application image area Other Application update area TMPMCUBoot Etc MCUBoot’s job is to move a new image in the update area to the main application image area, using the temporary (TMP) scratch space to avoid data loss. It and apps need to know various details about the flash device, and peacefully coexist with other partitions. MCUBoot header Vector table
  • 9. LEADING COLLABORATION IN THE ARM ECOSYSTEM Flash specifics to know about (apps and bootloader) Sector 0 Sector 1 Sector 2 Sector n - 1...Sector 3 ● Map between sectors and “partitions” / image areas ● Nonuniform sector sizes (e.g. STM32) ● Widely varying “write block sizes” (1, 4, 8 common)
  • 10. LEADING COLLABORATION IN THE ARM ECOSYSTEM Support issues on Zephyr Zephyr (or other RTOS) Kernel Flash driver Bootutil library (bootloader core) Board header (flash layout, WBS, sector sizes) Small application, mostly defers to bootutil HAL (for mynewt compatibility) One header file per board with flash layout, sector “size”, etc. This information is duplicated again in every application that needs to manage FOTA updates with mcuboot. This is tedious and error-prone. Also, what happens when you want to change the config? Partitions in DTS now, but more remains for writing apps. Other issues around flashing, etc.
  • 11. LEADING COLLABORATION IN THE ARM ECOSYSTEM MCUBoot with Zephyr + “FOTA framework” Zephyr Kernel Flash driver + device tree (partition / sector map, write block size) Bootutil library (bootloader core) Small application, mostly defers to bootutil HAL (flash layout, WBS, variable sector size support) MCUBoot / DFU manager MCUBoot’s HAL will allow target-specific hacks, but supports obtaining everything from the OS. Target-specific behavior from DTS and the flash driver. MCUBoot manager allows apps and bootloader to start sharing code. Makefile.exports for build systems, but more work needed to make this easy.
  • 12. LEADING COLLABORATION IN THE ARM ECOSYSTEM LWM2M
  • 13. LEADING COLLABORATION IN THE ARM ECOSYSTEM LWM2M from 10,000 ft (3048 m) UDP, L2, PHY CoAP [+DTLS] LWM2M IPSO objects Application callbacks, etc.
  • 14. LEADING COLLABORATION IN THE ARM ECOSYSTEM LWM2M and IPSO ● LWM2M: 18 base objects managed via OMA Working Groups with room for expansion up to object id 1023. Security (0), Server (1), Device (3), Firmware (5) ... ● IPSO: Hundreds of standard and vendor-defined objects starting with object id 2048. Examples: Light control (3311) used in keynote demo, also presence (3302), humidity (3304), accelerometer (3313), magnetometer (3314), … ● These well-defined objects / resources increase interoperability. More details in the OMA registry.
  • 15. LEADING COLLABORATION IN THE ARM ECOSYSTEM Resource Name Read/write Number Required? Type 5850 On/Off RW Single Mandatory Boolean 5851 Dimmer RW Single Optional Integer 5852 On Time RW Single Optional Integer 5805 Cumulative active power R Single Optional 5820 Power Factor R Single Optional Float 5706 Colour RW Single Optional String 5701 Sensor Units R Single Optional String IPSO Light Control Object Resources
  • 16. LEADING COLLABORATION IN THE ARM ECOSYSTEM IPSO Light Control in Source Form static struct lwm2m_engine_obj_field fields[] = { OBJ_FIELD_DATA(LIGHT_ON_OFF_ID, RW, BOOL), OBJ_FIELD_DATA(LIGHT_DIMMER_ID, RW, U8), OBJ_FIELD_DATA(LIGHT_ON_TIME_ID, RW, S32), OBJ_FIELD_DATA(LIGHT_CUMULATIVE_ACTIVE_POWER_ID, R, FLOAT32), OBJ_FIELD_DATA(LIGHT_POWER_FACTOR_ID, R, FLOAT32), OBJ_FIELD_DATA(LIGHT_COLOUR_ID, RW, STRING), OBJ_FIELD_DATA(LIGHT_SENSOR_UNITS_ID, R, STRING), };
  • 17. LEADING COLLABORATION IN THE ARM ECOSYSTEM Instance-specific data declarations /* Initialize instance resource data. */ INIT_OBJ_RES_DATA(res[avail], i, LIGHT_ON_OFF_ID, &on_off_value[avail], sizeof(*on_off_value)); INIT_OBJ_RES_DATA(res[avail], i, LIGHT_DIMMER_ID, &dimmer_value[avail], sizeof(*dimmer_value)); [...] INIT_OBJ_RES_DATA(res[avail], i, LIGHT_SENSOR_UNITS_ID, units[avail], LIGHT_STRING_SHORT);
  • 18. LEADING COLLABORATION IN THE ARM ECOSYSTEM Application level /* Resource initialization */ lwm2m_engine_set_string("3/0/0", CLIENT_MANUFACTURER); lwm2m_engine_set_string("3/0/1", CLIENT_MODEL_NUMBER); [...] /* Engine startup */ ret = lwm2m_rd_client_start(&client, CONFIG_NET_APP_PEER_IPV6_ADDR, CONFIG_LWM2M_PEER_PORT, CONFIG_BOARD, rd_client_event);
  • 19. LEADING COLLABORATION IN THE ARM ECOSYSTEM End to End Demo System ● Control an LED and do a FOTA update via LWM2M ● Canned Docker containers and build system glue to get moving quickly ● http://ltd-docs.readthedocs.io/ en/ltd-17.09/iotfoundry/lwm2m -howto.html
  • 20. LEADING COLLABORATION IN THE ARM ECOSYSTEM How to play with the Zephyr LWM2M Client locally ● Download the latest Leshan Demo Server build and start ○ $ wget https://hudson.eclipse.org/leshan/job/leshan/lastSuccessfulBuild/artifact/ leshan-server-demo.jar ○ $ java -jar ./leshan-server-demo.jar ○ Open a web browser to: http://localhost:8080 ● Run the Zephyr LWM2M Client via QEMU ○ Follow “Getting Started” Guide ○ Follow “Networking with QEMU” Docs ○ $ make -C samples/net/lwm2m_client run
  • 21. LEADING COLLABORATION IN THE ARM ECOSYSTEM Zephyr LWM2M Roadmap In Zephyr v1.9 ● LWM2M Engine to manage registering smart object and handling read/write/create/delete operations. ● Registration device client state machine (DTLS not supported yet) ● 4 OMA LWM2M objects: Security, Server, Device and Firmware ● Support for firmware update via both direct resource write and pull via URL resource. Coming in the future ● Migrate to new Zephyr CoAP APIs. ● LWM2M Engine to support DTLS. ● Registration client to support bootstrap state machine. ● Add more OMA standard smart objects: Access Controls, Location … ● Add more IPSO Smart Objects. ● Optimization!