SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
Best practices for long-term
support and security of the
device-tree
Alison Chaiken
Mentor Embedded Software
October 24, 2013
alison_chaiken@mentor.com

mentor.com/embedded
Android is a trademark of Google Inc. Use of this trademark is subject to
Google Permissions.
Agenda



How DT complicates updates



Strategies for updates including DTBs



Best practices in creating DTS





Tools to make DT comprehensible to
non-experts
Best-practice summary

mentor.com/embedded
Android is a trademark of Google Inc. Use of this trademark is subject to
Google Permissions.
Updates are already tricky without DTB

3

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Consider security patch in 2025 for 2015MY car

New kernel needed; will device-tree update be required?
How to match and manage the files?
4

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Advocate changing DTB? No, but . . .


Consider battery upgrades: many MCUs.



2013MY: 5-year battery warranty.



DT's are supposed to be HW description.



Lots of configuration already in DT's:
—



5

MTD partition tables; boot device selection; pinmux.

Newer kernels have features old DTs won't support.
© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Why DTB updates
are hard

6

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Multiple processors in a LAN may need update

Copyright Renesas, “Introduction to CAN”, with permission.

2014 Mercedes S-Class: 200 MCUs on Ethernet, CAN-FD and LIN.
7

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Careful: DTS and Kconfig must be
compatible

Drivers move and CONFIG options change name over time.
8

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Unintentionally changing drivers






Obvious: driver behavior is modified when its DT
node is.
Less obvious: Driver behavior changes if clock,
pinmux or PS voltage are modified by another
driver's DT node.
Koen Kooi:
—

9

“IMPORTANT: booting the existing am335x-bone.dts will
blow up the HDMI transceiver after a dozen boots with an
uSD card inserted because LDO will be at 3.3V instead of
1.8.
MMC support for AM335x still isn't in . . .”

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Three possible approaches

10

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Flattened Image Tree addresses LTS
problems






.its files record versions of DTS, kernel, misc. files
and their CRCs.
Enables OTA with one transferred archive.
ChromeOS “Verified Boot” provides extensions for
signed images.



Glass added signing of .itb's to U-boot.



Introduced by Fernandes at ELC2013.



11

Alternative: record selections in Bitbake recipe or
Android-like manifest.
© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
DTS runtime configurability via Overlays




Implements hot-plug for “capes”.
Proposal: use overlays as a DTB update
method.
—

—



12

Not suitable for security improvements or
boot devices.
Similar in spirit to unionfs in Knoppix.

See Pantelis' talk and paper.

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Hypervisors in device-tree

From: Andre Przywara Date: Tue, 03 Sep 2013

Another path to safe updates?
13

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Making DTS more
maintainable

14

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
15

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Proposal: explicit inheritance in design
Create schemata matching device classes: board,
cpu, platdev, <arch>
— Each CPU node would validate against cpu.schema,


—

each ARM core node against arm.schema,

—

each V4L2 camera against v4l2_capture.schema.



Validated DTSI compiled into top-level DTS.



New validator enforces inheritance.

16

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Consider XML for DT schema?
●

●

Lots of existing manipulation tools for XML.

●

17

Suggested on LKML by Arend van Spriel

Reaction basically favorable:

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
“JSON is a natural representation of data for the C family of programming languages.”

"translated into Chinese, French, German, Italian, Japanese, Korean,
and Spanish. . . . formalized in RFC 4627. . . . support for . . . C, C+
+, C#, . . . Erlang, Haskell, Java, . . . Lua, Perl, Objective-C, . . .
PHP, Python,. . . Ruby, ."
18

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Level separation






19

Explicit inheritance in nesting of device-trees:
$ grep okay linux/arch/arm/boot/dts/*dtsi | wc
181 732 11530
$ grep chosen linux/arch/arm/boot/dts/*.dtsi | wc
22
80 1103
Decisions about shared resources in low-level
include files = premature optimization!
Caution with status “okay”, “chosen,”
“config-on-boot” and configuration of
(power-supply, pinmux and clocks) at “leaf” level.

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Tools: existing and desirable


DTC extensions for schema validation.



Verbose mode for DTC.



Tools to answer the questions:
—

“Do my Kconfig and DTS match?”

—

“Which of this huge set of DTS files can produce
the DTB in the shipping product?”





Graphviz/dotty extensions to visualize FDT.



Support for signing DTBs which are not appended.



20

lshw-like tool to present /proc DT state.

Put dt.gz in /boot along with other config.gz?
© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
What DTS output does preprocessor
produce? makedts for ARM and x86
Advantage over fdtdump: outputs strings as characters, not
ASCII codes.
Invoke with 'makedts <full-path-to-dts-file>' :
#!/bin/bash
DTC_CPP_FLAGS="-E -Wp,-MD,$BASE.pre.tmp -nostdinc /
-Iarch/$SRCARCH/boot/dts -Iarch/$SRCARCH/boot/dts/include /
-undef -D__DTS__ -x assembler-with-cpp"
#run C preprocessor
$CC $DTC_CPP_FLAGS -o $BASE.tmp $1
#run DTC
scripts/dtc/dtc -O dts -o $BASE.out.dts -b 0 -i arch/arm/boot/dts /
-d $BASE.dtc.tmp $BASE.tmp

For x86, script first compiles dtc itself.
21

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Summary: Best practice candidates


Preserving sets of {bootloader configs, DTS sets,
Kconfig and kernel sources}
—



FIT? BB recipes? Android-style “repo” manifests?

Validation of device-trees:
—

—



Via new schemata and Warren's binding checklist.
CRC-based via bootloader.

Design of maintainable device-trees via
—

—

Overlays as update mechanism to failsafe DTB.

—

22

Level separation.

Update into hypervisor domains.

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Conclusions





23

DT = application of agreed best practices to
kernel.
Much criticized, but change is hard!

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Following slides are extras

24

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
x86 users will want DTS, too

GigaOm, 9/10/2013

25

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Implications of “Device trees as
ABI”


Export all bindings to header file?



Put dt.gz in /boot along with other config files?



26

Warn about unstable bindings with dtc or require
explicit dtc switch to include unstable bindings?

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded

26
A book about design patterns for
embedded

27

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded
Uncle Bob Martin's 5 Agile Design
Principles
1. Dependency Inversion Principle
2. Interface Segregation Principle
3. Liskov Substitution Principle
4. Open-Closed Principle
5. Single Responsibility Principle
From 1998, C++ Report, available at objectmentor.com

28

© 2013 Mentor Graphics Corp. Company Confidential

mentor.com/embedded

Contenu connexe

Tendances

Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialAnne Nicolas
 
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?Distro Recipes 2013: What&rsquo;s new in gcc 4.8?
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?Anne Nicolas
 
EclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soupEclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soupBruce Griffith
 
Bareos Python Plugins Hacking Workshop by Maik Aussendorf & Stephan Duehr
Bareos Python Plugins Hacking Workshop by Maik Aussendorf & Stephan DuehrBareos Python Plugins Hacking Workshop by Maik Aussendorf & Stephan Duehr
Bareos Python Plugins Hacking Workshop by Maik Aussendorf & Stephan DuehrNETWAYS
 
Windows7: Video Improvements
Windows7: Video ImprovementsWindows7: Video Improvements
Windows7: Video Improvementswonderu
 
Porting linux on ARM
Porting linux on ARMPorting linux on ARM
Porting linux on ARMSatpal Parmar
 
Dalvik Vm &amp; Jit
Dalvik Vm &amp; JitDalvik Vm &amp; Jit
Dalvik Vm &amp; JitAnkit Somani
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overviewQA Club Kiev
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Anne Nicolas
 
Kernel Recipes 2014 - Testing Video4Linux Applications and Drivers
Kernel Recipes 2014 - Testing Video4Linux Applications and DriversKernel Recipes 2014 - Testing Video4Linux Applications and Drivers
Kernel Recipes 2014 - Testing Video4Linux Applications and DriversAnne Nicolas
 
HSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben GasterHSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben GasterAMD Developer Central
 
Getting the maximum performance in distributed clusters Intel Cluster Studio XE
Getting the maximum performance in distributed clusters Intel Cluster Studio XEGetting the maximum performance in distributed clusters Intel Cluster Studio XE
Getting the maximum performance in distributed clusters Intel Cluster Studio XEIntel Software Brasil
 
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and Docker
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and DockerFast Scalable Easy Machine Learning with OpenPOWER, GPUs and Docker
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and DockerIndrajit Poddar
 
Introduction to Android by Demian Neidetcher
Introduction to Android by Demian NeidetcherIntroduction to Android by Demian Neidetcher
Introduction to Android by Demian NeidetcherMatthew McCullough
 
Wonho Park_20151209
Wonho Park_20151209Wonho Park_20151209
Wonho Park_20151209Wonho Park
 

Tendances (20)

Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less special
 
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?Distro Recipes 2013: What&rsquo;s new in gcc 4.8?
Distro Recipes 2013: What&rsquo;s new in gcc 4.8?
 
EclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soupEclipseCon 2011: Deciphering the CDT debugger alphabet soup
EclipseCon 2011: Deciphering the CDT debugger alphabet soup
 
Bareos Python Plugins Hacking Workshop by Maik Aussendorf & Stephan Duehr
Bareos Python Plugins Hacking Workshop by Maik Aussendorf & Stephan DuehrBareos Python Plugins Hacking Workshop by Maik Aussendorf & Stephan Duehr
Bareos Python Plugins Hacking Workshop by Maik Aussendorf & Stephan Duehr
 
TULIKA KESHRI (1)
TULIKA KESHRI (1)TULIKA KESHRI (1)
TULIKA KESHRI (1)
 
Windows7: Video Improvements
Windows7: Video ImprovementsWindows7: Video Improvements
Windows7: Video Improvements
 
HOW Series: Knights Landing
HOW Series: Knights LandingHOW Series: Knights Landing
HOW Series: Knights Landing
 
Porting linux on ARM
Porting linux on ARMPorting linux on ARM
Porting linux on ARM
 
Dalvik Vm &amp; Jit
Dalvik Vm &amp; JitDalvik Vm &amp; Jit
Dalvik Vm &amp; Jit
 
Build Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVMBuild Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVM
 
Lab manual
Lab manualLab manual
Lab manual
 
Skype testing overview
Skype testing overviewSkype testing overview
Skype testing overview
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
 
Kernel Recipes 2014 - Testing Video4Linux Applications and Drivers
Kernel Recipes 2014 - Testing Video4Linux Applications and DriversKernel Recipes 2014 - Testing Video4Linux Applications and Drivers
Kernel Recipes 2014 - Testing Video4Linux Applications and Drivers
 
Balancing Power & Performance Webinar
Balancing Power & Performance WebinarBalancing Power & Performance Webinar
Balancing Power & Performance Webinar
 
HSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben GasterHSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben Gaster
 
Getting the maximum performance in distributed clusters Intel Cluster Studio XE
Getting the maximum performance in distributed clusters Intel Cluster Studio XEGetting the maximum performance in distributed clusters Intel Cluster Studio XE
Getting the maximum performance in distributed clusters Intel Cluster Studio XE
 
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and Docker
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and DockerFast Scalable Easy Machine Learning with OpenPOWER, GPUs and Docker
Fast Scalable Easy Machine Learning with OpenPOWER, GPUs and Docker
 
Introduction to Android by Demian Neidetcher
Introduction to Android by Demian NeidetcherIntroduction to Android by Demian Neidetcher
Introduction to Android by Demian Neidetcher
 
Wonho Park_20151209
Wonho Park_20151209Wonho Park_20151209
Wonho Park_20151209
 

Similaire à Best practices for long-term support and security of the device-tree

Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1drusso
 
C# Production Debugging Made Easy
 C# Production Debugging Made Easy C# Production Debugging Made Easy
C# Production Debugging Made EasyAlon Fliess
 
Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyBenjamin Zores
 
DCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDocker, Inc.
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For DevelopmentLaura Frank Tacho
 
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning AccelerationclCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning AccelerationIntel® Software
 
Optimizing Direct X On Multi Core Architectures
Optimizing Direct X On Multi Core ArchitecturesOptimizing Direct X On Multi Core Architectures
Optimizing Direct X On Multi Core Architecturespsteinb
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Codemotion
 
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...Intel® Software
 
Systemd for developers
Systemd for developersSystemd for developers
Systemd for developersAlison Chaiken
 
Legacy of Void*
Legacy of Void*Legacy of Void*
Legacy of Void*Adam Crain
 
Speeding up Programs with OpenACC in GCC
Speeding up Programs with OpenACC in GCCSpeeding up Programs with OpenACC in GCC
Speeding up Programs with OpenACC in GCCinside-BigData.com
 
Debugging of (C)Python applications
Debugging of (C)Python applicationsDebugging of (C)Python applications
Debugging of (C)Python applicationsRoman Podoliaka
 
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)Ron Munitz
 
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing WorldCloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing WorldOmer Kilic
 
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)Ron Munitz
 

Similaire à Best practices for long-term support and security of the device-tree (20)

Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1Ese 2008 RTSC Draft1
Ese 2008 RTSC Draft1
 
Resume
ResumeResume
Resume
 
C# Production Debugging Made Easy
 C# Production Debugging Made Easy C# Production Debugging Made Easy
C# Production Debugging Made Easy
 
DinakaraPandian_9+
DinakaraPandian_9+DinakaraPandian_9+
DinakaraPandian_9+
 
Droidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform AnatomyDroidcon 2013 France - Android Platform Anatomy
Droidcon 2013 France - Android Platform Anatomy
 
Resume_Natesh-1
Resume_Natesh-1Resume_Natesh-1
Resume_Natesh-1
 
DCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker ContainersDCEU 18: Developing with Docker Containers
DCEU 18: Developing with Docker Containers
 
Using Docker For Development
Using Docker For DevelopmentUsing Docker For Development
Using Docker For Development
 
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning AccelerationclCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
 
Optimizing Direct X On Multi Core Architectures
Optimizing Direct X On Multi Core ArchitecturesOptimizing Direct X On Multi Core Architectures
Optimizing Direct X On Multi Core Architectures
 
Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!Lab Handson: Power your Creations with Intel Edison!
Lab Handson: Power your Creations with Intel Edison!
 
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...
Dynamic Resolution Techniques for Intel® Processor Graphics | SIGGRAPH 2018 T...
 
Systemd for developers
Systemd for developersSystemd for developers
Systemd for developers
 
Legacy of Void*
Legacy of Void*Legacy of Void*
Legacy of Void*
 
Speeding up Programs with OpenACC in GCC
Speeding up Programs with OpenACC in GCCSpeeding up Programs with OpenACC in GCC
Speeding up Programs with OpenACC in GCC
 
Debugging of (C)Python applications
Debugging of (C)Python applicationsDebugging of (C)Python applications
Debugging of (C)Python applications
 
Cuda 2011
Cuda 2011Cuda 2011
Cuda 2011
 
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)
Building Android for the Cloud: Android as a Server (Mobile World Congress 2014)
 
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing WorldCloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
Cloud, Distributed, Embedded: Erlang in the Heterogeneous Computing World
 
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
 

Plus de Alison Chaiken

Not breaking userspace: the evolving Linux ABI
Not breaking userspace: the evolving Linux ABINot breaking userspace: the evolving Linux ABI
Not breaking userspace: the evolving Linux ABIAlison Chaiken
 
Supporting SW Update via u-boot and GPT/EFI
Supporting SW Update via u-boot and GPT/EFISupporting SW Update via u-boot and GPT/EFI
Supporting SW Update via u-boot and GPT/EFIAlison Chaiken
 
Two C++ Tools: Compiler Explorer and Cpp Insights
Two C++ Tools: Compiler Explorer and Cpp InsightsTwo C++ Tools: Compiler Explorer and Cpp Insights
Two C++ Tools: Compiler Explorer and Cpp InsightsAlison Chaiken
 
V2X Communications: Getting our Cars Talking
V2X Communications: Getting our Cars TalkingV2X Communications: Getting our Cars Talking
V2X Communications: Getting our Cars TalkingAlison Chaiken
 
Practical Challenges to Deploying Highly Automated Vehicles
Practical Challenges to Deploying Highly Automated VehiclesPractical Challenges to Deploying Highly Automated Vehicles
Practical Challenges to Deploying Highly Automated VehiclesAlison Chaiken
 
Linux: the first second
Linux: the first secondLinux: the first second
Linux: the first secondAlison Chaiken
 
Functional AI and Pervasive Networking in Automotive
 Functional AI and Pervasive Networking in Automotive Functional AI and Pervasive Networking in Automotive
Functional AI and Pervasive Networking in AutomotiveAlison Chaiken
 
Flash in Vehicles: an End-User's Perspective
Flash in Vehicles: an End-User's PerspectiveFlash in Vehicles: an End-User's Perspective
Flash in Vehicles: an End-User's PerspectiveAlison Chaiken
 
Linux: the first second
Linux: the first secondLinux: the first second
Linux: the first secondAlison Chaiken
 
IRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the PreemptibleIRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the PreemptibleAlison Chaiken
 
Automotive Linux, Cybersecurity and Transparency
Automotive Linux, Cybersecurity and TransparencyAutomotive Linux, Cybersecurity and Transparency
Automotive Linux, Cybersecurity and TransparencyAlison Chaiken
 
LISA15: systemd, the Next-Generation Linux System Manager
LISA15: systemd, the Next-Generation Linux System Manager LISA15: systemd, the Next-Generation Linux System Manager
LISA15: systemd, the Next-Generation Linux System Manager Alison Chaiken
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemdAlison Chaiken
 
Tuning systemd for embedded
Tuning systemd for embeddedTuning systemd for embedded
Tuning systemd for embeddedAlison Chaiken
 
Developing Automotive Linux
Developing Automotive LinuxDeveloping Automotive Linux
Developing Automotive LinuxAlison Chaiken
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveAlison Chaiken
 
Technology, Business and Regulation of the Connected Car
Technology, Business and Regulation of the Connected CarTechnology, Business and Regulation of the Connected Car
Technology, Business and Regulation of the Connected CarAlison Chaiken
 
The “Telematics Horizon” V2V and V2I Networking
The “Telematics Horizon” V2V and V2I NetworkingThe “Telematics Horizon” V2V and V2I Networking
The “Telematics Horizon” V2V and V2I NetworkingAlison Chaiken
 
Developing automotive Linux
Developing automotive LinuxDeveloping automotive Linux
Developing automotive LinuxAlison Chaiken
 
Automotive Free Software 2013: "Right to Repair" and Privacy
Automotive Free Software 2013: "Right to Repair" and PrivacyAutomotive Free Software 2013: "Right to Repair" and Privacy
Automotive Free Software 2013: "Right to Repair" and PrivacyAlison Chaiken
 

Plus de Alison Chaiken (20)

Not breaking userspace: the evolving Linux ABI
Not breaking userspace: the evolving Linux ABINot breaking userspace: the evolving Linux ABI
Not breaking userspace: the evolving Linux ABI
 
Supporting SW Update via u-boot and GPT/EFI
Supporting SW Update via u-boot and GPT/EFISupporting SW Update via u-boot and GPT/EFI
Supporting SW Update via u-boot and GPT/EFI
 
Two C++ Tools: Compiler Explorer and Cpp Insights
Two C++ Tools: Compiler Explorer and Cpp InsightsTwo C++ Tools: Compiler Explorer and Cpp Insights
Two C++ Tools: Compiler Explorer and Cpp Insights
 
V2X Communications: Getting our Cars Talking
V2X Communications: Getting our Cars TalkingV2X Communications: Getting our Cars Talking
V2X Communications: Getting our Cars Talking
 
Practical Challenges to Deploying Highly Automated Vehicles
Practical Challenges to Deploying Highly Automated VehiclesPractical Challenges to Deploying Highly Automated Vehicles
Practical Challenges to Deploying Highly Automated Vehicles
 
Linux: the first second
Linux: the first secondLinux: the first second
Linux: the first second
 
Functional AI and Pervasive Networking in Automotive
 Functional AI and Pervasive Networking in Automotive Functional AI and Pervasive Networking in Automotive
Functional AI and Pervasive Networking in Automotive
 
Flash in Vehicles: an End-User's Perspective
Flash in Vehicles: an End-User's PerspectiveFlash in Vehicles: an End-User's Perspective
Flash in Vehicles: an End-User's Perspective
 
Linux: the first second
Linux: the first secondLinux: the first second
Linux: the first second
 
IRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the PreemptibleIRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the Preemptible
 
Automotive Linux, Cybersecurity and Transparency
Automotive Linux, Cybersecurity and TransparencyAutomotive Linux, Cybersecurity and Transparency
Automotive Linux, Cybersecurity and Transparency
 
LISA15: systemd, the Next-Generation Linux System Manager
LISA15: systemd, the Next-Generation Linux System Manager LISA15: systemd, the Next-Generation Linux System Manager
LISA15: systemd, the Next-Generation Linux System Manager
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemd
 
Tuning systemd for embedded
Tuning systemd for embeddedTuning systemd for embedded
Tuning systemd for embedded
 
Developing Automotive Linux
Developing Automotive LinuxDeveloping Automotive Linux
Developing Automotive Linux
 
Systemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to loveSystemd: the modern Linux init system you will learn to love
Systemd: the modern Linux init system you will learn to love
 
Technology, Business and Regulation of the Connected Car
Technology, Business and Regulation of the Connected CarTechnology, Business and Regulation of the Connected Car
Technology, Business and Regulation of the Connected Car
 
The “Telematics Horizon” V2V and V2I Networking
The “Telematics Horizon” V2V and V2I NetworkingThe “Telematics Horizon” V2V and V2I Networking
The “Telematics Horizon” V2V and V2I Networking
 
Developing automotive Linux
Developing automotive LinuxDeveloping automotive Linux
Developing automotive Linux
 
Automotive Free Software 2013: "Right to Repair" and Privacy
Automotive Free Software 2013: "Right to Repair" and PrivacyAutomotive Free Software 2013: "Right to Repair" and Privacy
Automotive Free Software 2013: "Right to Repair" and Privacy
 

Dernier

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Dernier (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Best practices for long-term support and security of the device-tree

  • 1. Best practices for long-term support and security of the device-tree Alison Chaiken Mentor Embedded Software October 24, 2013 alison_chaiken@mentor.com mentor.com/embedded Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.
  • 2. Agenda  How DT complicates updates  Strategies for updates including DTBs  Best practices in creating DTS   Tools to make DT comprehensible to non-experts Best-practice summary mentor.com/embedded Android is a trademark of Google Inc. Use of this trademark is subject to Google Permissions.
  • 3. Updates are already tricky without DTB 3 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 4. Consider security patch in 2025 for 2015MY car New kernel needed; will device-tree update be required? How to match and manage the files? 4 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 5. Advocate changing DTB? No, but . . .  Consider battery upgrades: many MCUs.  2013MY: 5-year battery warranty.  DT's are supposed to be HW description.  Lots of configuration already in DT's: —  5 MTD partition tables; boot device selection; pinmux. Newer kernels have features old DTs won't support. © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 6. Why DTB updates are hard 6 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 7. Multiple processors in a LAN may need update Copyright Renesas, “Introduction to CAN”, with permission. 2014 Mercedes S-Class: 200 MCUs on Ethernet, CAN-FD and LIN. 7 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 8. Careful: DTS and Kconfig must be compatible Drivers move and CONFIG options change name over time. 8 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 9. Unintentionally changing drivers    Obvious: driver behavior is modified when its DT node is. Less obvious: Driver behavior changes if clock, pinmux or PS voltage are modified by another driver's DT node. Koen Kooi: — 9 “IMPORTANT: booting the existing am335x-bone.dts will blow up the HDMI transceiver after a dozen boots with an uSD card inserted because LDO will be at 3.3V instead of 1.8. MMC support for AM335x still isn't in . . .” © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 10. Three possible approaches 10 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 11. Flattened Image Tree addresses LTS problems    .its files record versions of DTS, kernel, misc. files and their CRCs. Enables OTA with one transferred archive. ChromeOS “Verified Boot” provides extensions for signed images.  Glass added signing of .itb's to U-boot.  Introduced by Fernandes at ELC2013.  11 Alternative: record selections in Bitbake recipe or Android-like manifest. © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 12. DTS runtime configurability via Overlays   Implements hot-plug for “capes”. Proposal: use overlays as a DTB update method. — —  12 Not suitable for security improvements or boot devices. Similar in spirit to unionfs in Knoppix. See Pantelis' talk and paper. © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 13. Hypervisors in device-tree From: Andre Przywara Date: Tue, 03 Sep 2013 Another path to safe updates? 13 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 14. Making DTS more maintainable 14 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 15. 15 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 16. Proposal: explicit inheritance in design Create schemata matching device classes: board, cpu, platdev, <arch> — Each CPU node would validate against cpu.schema,  — each ARM core node against arm.schema, — each V4L2 camera against v4l2_capture.schema.  Validated DTSI compiled into top-level DTS.  New validator enforces inheritance. 16 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 17. Consider XML for DT schema? ● ● Lots of existing manipulation tools for XML. ● 17 Suggested on LKML by Arend van Spriel Reaction basically favorable: © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 18. “JSON is a natural representation of data for the C family of programming languages.” "translated into Chinese, French, German, Italian, Japanese, Korean, and Spanish. . . . formalized in RFC 4627. . . . support for . . . C, C+ +, C#, . . . Erlang, Haskell, Java, . . . Lua, Perl, Objective-C, . . . PHP, Python,. . . Ruby, ." 18 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 19. Level separation    19 Explicit inheritance in nesting of device-trees: $ grep okay linux/arch/arm/boot/dts/*dtsi | wc 181 732 11530 $ grep chosen linux/arch/arm/boot/dts/*.dtsi | wc 22 80 1103 Decisions about shared resources in low-level include files = premature optimization! Caution with status “okay”, “chosen,” “config-on-boot” and configuration of (power-supply, pinmux and clocks) at “leaf” level. © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 20. Tools: existing and desirable  DTC extensions for schema validation.  Verbose mode for DTC.  Tools to answer the questions: — “Do my Kconfig and DTS match?” — “Which of this huge set of DTS files can produce the DTB in the shipping product?”   Graphviz/dotty extensions to visualize FDT.  Support for signing DTBs which are not appended.  20 lshw-like tool to present /proc DT state. Put dt.gz in /boot along with other config.gz? © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 21. What DTS output does preprocessor produce? makedts for ARM and x86 Advantage over fdtdump: outputs strings as characters, not ASCII codes. Invoke with 'makedts <full-path-to-dts-file>' : #!/bin/bash DTC_CPP_FLAGS="-E -Wp,-MD,$BASE.pre.tmp -nostdinc / -Iarch/$SRCARCH/boot/dts -Iarch/$SRCARCH/boot/dts/include / -undef -D__DTS__ -x assembler-with-cpp" #run C preprocessor $CC $DTC_CPP_FLAGS -o $BASE.tmp $1 #run DTC scripts/dtc/dtc -O dts -o $BASE.out.dts -b 0 -i arch/arm/boot/dts / -d $BASE.dtc.tmp $BASE.tmp For x86, script first compiles dtc itself. 21 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 22. Summary: Best practice candidates  Preserving sets of {bootloader configs, DTS sets, Kconfig and kernel sources} —  FIT? BB recipes? Android-style “repo” manifests? Validation of device-trees: — —  Via new schemata and Warren's binding checklist. CRC-based via bootloader. Design of maintainable device-trees via — — Overlays as update mechanism to failsafe DTB. — 22 Level separation. Update into hypervisor domains. © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 23. Conclusions   23 DT = application of agreed best practices to kernel. Much criticized, but change is hard! © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 24. Following slides are extras 24 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 25. x86 users will want DTS, too GigaOm, 9/10/2013 25 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 26. Implications of “Device trees as ABI”  Export all bindings to header file?  Put dt.gz in /boot along with other config files?  26 Warn about unstable bindings with dtc or require explicit dtc switch to include unstable bindings? © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded 26
  • 27. A book about design patterns for embedded 27 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded
  • 28. Uncle Bob Martin's 5 Agile Design Principles 1. Dependency Inversion Principle 2. Interface Segregation Principle 3. Liskov Substitution Principle 4. Open-Closed Principle 5. Single Responsibility Principle From 1998, C++ Report, available at objectmentor.com 28 © 2013 Mentor Graphics Corp. Company Confidential mentor.com/embedded