SlideShare a Scribd company logo
1 of 36
Download to read offline
Embedded Linux Conference 2014 
Supporting a new ARM platform: the 
Allwinner example 
Maxime Ripard 
Free Electrons 
maxime@free-electrons.com 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 1/36
Maxime Ripard 
I Embedded Linux engineer and trainer at Free Electrons 
I Embedded Linux development: kernel and driver 
development, system integration, boot time and power 
consumption optimization, consulting, etc. 
I Embedded Linux training, Linux driver development training 
and Android system development training, with materials 
freely available under a Creative Commons license. 
I http://free-electrons.com 
I Contributions 
I Kernel support for the sunXi SoCs from Allwinner 
I Contributor to few open-source projects, Buildroot, an 
open-source, simple and fast embedded Linux build system, 
Barebox, a modern bootloader. 
I Living in Toulouse, south west of France 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 2/36
Introduction 
Introduction 
Maxime Ripard 
Free Electrons 

c Copyright 2004-2014, Free Electrons. 
Creative Commons BY-SA 3.0 license. 
Corrections, suggestions, contributions and translations are welcome! 
Embedded Linux 
Developers 
Free Electrons 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 3/36
Allwinner 
I Chinese fabless SoC vendor 
I Founded in 2007, in Zhuhai 
I Always did ARM SoC, starting with ARM9 CPUs 
I Mostly doing multimedia SoCs 
I 550 employees 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 4/36
Tablet Market Share in 2013 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 5/36
SoC Line-up 
I F-Series 
I ARM9-based SoCs 
I Mostly were running a custom OS called MeliOS, except for 
the late SoCs in that family 
I A10 / A10s / A12 / A13 (sun4i/sun5i), A20 (sun7i) 
I Cortex-A8 based for the sun4i/sun5i 
I Dual Cortex-A7 for the A20 
I A31 / A31s (sun6i) 
I Quad Cortex-A7 
I The GPU is Imagination's PowerVR 
I Brand new design, a lot of IPs changed 
I A23/A33 (sun8iw3/sun8iw5) 
I Dual/Quad Cortex-A7 
I An hybrid between the A20 and the A31 
I A80 (sun9i) 
I big.LITTLE with 4 Cortex A15 and 4 Cortex A7 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 6/36
Development / Hacker-friendly boards 
I Olimex Olinuxino 
I Open Source Hardware 
I Access to most of the SoC pins through 0.1" headers 
I Very supportive towards the community 
I Cubieboards 
I Tiny, and cheap 
I A very strong community has been built around it 
I A lot of other boards: pcDuino, Marsboard, Banana Pi, etc. 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 7/36
Boards 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 8/36
Where we were 
Where we were 
Maxime Ripard 
Free Electrons 

c Copyright 2004-2014, Free Electrons. 
Creative Commons BY-SA 3.0 license. 
Corrections, suggestions, contributions and translations are welcome! 
Embedded Linux 
Developers 
Free Electrons 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 9/36
Allwinner's Kernel 
I Allwinner Kernel are mostly based on two kernels: 
I Linux 3.0 for Cortex-A8 based SoCs 
I Linux 3.3/3.4 for Cortex-A7 based SoCs 
I Just like most vendor code, their focus is primarily on making 
that particular kernel version working on one SoC 
I There's one dierent kernel tree for each SoC, even if they are 
really close 
I Apart from that, given the version they're based on, they're in 
pretty decent shape 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 10/36
Allwinner Kernel Issues 
I However, it suers some major issues 
I By today standards, the code is pretty outdated 
I No Common Clock Framework 
I No pinctrl / GPIOlib 
I No dmaengine 
I There's no consolidation at all between the SoCs code 
I You're pretty much stuck with that kernel version 
I ... And there's FEX 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 11/36
FEX 
I It is a binary
le, compiled from a human-readable text
le 
I Passed along the boot chain to the various components 
(bootloaders, kernel) 
I Used to get the hardware con
guration of the board they're 
running on, in a generic way 
I In the FEX script, you get 
I Which device are enabled 
I The memory timings 
I The clocks frequency 
I The pin muxing 
I The regulators voltage 
I Plus, various hardware and con
guration information sq 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 12/36
How it looks like 
[twi1_para] 
twi_used = 1 
twi_scl = port:PH162defaultdefaultdefault 
twi_sda = port:PH172defaultdefaultdefault 
[mmc0_para] 
sdc_used = 1 
sdc_detmode = 2 
sdc_buswidth = 4 
sdc_clk = port:PF02212default 
sdc_cmd = port:PF03212default 
sdc_d0 = port:PF01212default 
sdc_d1 = port:PF00212default 
sdc_d2 = port:PF05212default 
sdc_d3 = port:PF04212default 
sdc_det = port:PA08612default 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 13/36
How it is used 
I It is then compiled by fexc to a binary
le 
I Then, Linux will have hardcoded devices, and each matching 
device will 
I Be probed 
I Lookup the FEX to get if it is allowed to probe 
I Then retrieve whatever parameter it is interested in 
I Even though it is a lot like the device tree, the logic is 
completely backward 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 14/36
Pros / Cons 
I Pros 
I Most of the DT Pros 
I Allows to have a completely generic kernel image 
I Separates the hardware description from the code 
I Allows a very short time-to-boot, even if you're not really a 
kernel developer 
I Cons 
I Completely non-standard 
I Only works for a single platform 
I Not generic enough 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 15/36
FEX moment of glory 
so. 
coming back to what you said earlier: I'm formulating 
what to say to allwinner [and need to pre-send something 
by monday so that they can consider it before the 
meeting]. so far, it consists of: 
* device-tree is what the linux kernel community has 
come up with, it is equivalent to FEX. 
* the linux kernel community would like to apologise 
for not consulting with you (allwinner) on the decision to 
only accept device tree 
(Luke Kenneth Casson Leighton, 6/7/2013) 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 16/36
FEX moment of glory 
Thanks to their script.fex system when i said they 
only need to develop one kernel and one u-boot i really 
wasn't kidding around: they really have got to the point 
which everyone else dreams of with device-tree 
(Luke Kenneth Casson Leighton, 6/7/2013) 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 17/36
FEX moment of glory 
I have a Cubieboard and I have a pca9532 on my 
desk. Now I want to attach this pca9532 to the 
Cubieboard so I wire them together on I2C. How is the 
Allwinner kernel going to load the driver for the 
pca9532? The mainline pca9532 driver does not 
understand fex so it can't read the necessary initialization 
data. (Jon Smirl, 6/6/2013) 
You're immediately outside of the target market for 
which allwinner designed and deployed script.fex. 
(Luke Kenneth Casson Leighton, 6/6/2013) 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 18/36
Boot Process 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 19/36
Community 
Community 
Maxime Ripard 
Free Electrons 

c Copyright 2004-2014, Free Electrons. 
Creative Commons BY-SA 3.0 license. 
Corrections, suggestions, contributions and translations are welcome! 
Embedded Linux 
Developers 
Free Electrons 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 20/36
linux-sunxi 
I A community started around rhombus-tech and their 
EOMA-68 standard in 2010 
I It forked o in 2011, and created http://linux-sunxi.org 
I It's very active these days, with around 600 subscribers on the 
ML, and around 150 persons on IRC (idlers included) 
I Around 10 very active developers, working on dierent areas 
of the SoC support: bootloader, kernel, VPU and GPU reverse 
engineering, distribution support, etc. 
I Libre Software Extremists 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 21/36
Achievements 
I Documentation of the hardware 
I Documentation of the BSP 
I Implementation of needed tools 
I Maintainance of linux and u-boot 
I Bring up of Distributions 
I Reverse engineering of the SoC (NAND, VPU, etc.) 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 22/36
linux-sunxi kernel 
I Maintains a fork of Allwinner's kernel 
I Does all the maintenance work 
I Support most of the SoCs made by Allwinner in one single 
kernel tree 
I Factorizes and cleans up the code 
I Fix bugs 
I Based on a 3.4 (stable) kernel 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 23/36
Community Kernel: Pros and Cons 
I Pros 
I Maintain the code that Allwinner doesn't 
I Allows to run your own Android/Fedora/Buildroot on your 
cheap tablet 
I Slightly better than the Allwinner code 
I Works well for the hobbyist that just wants to play with his 
new toy 
I Cons 
I Stuck in the past 
I Doesn't think about the long-term view 
I Only keeps hacking more without thinking about upstreaming 
changes to lessen their burden 
I Not much better than Allwinner code 
I Support for new generation SoCs? 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 24/36
Mainlining 
Mainlining 
Maxime Ripard 
Free Electrons 

c Copyright 2004-2014, Free Electrons. 
Creative Commons BY-SA 3.0 license. 
Corrections, suggestions, contributions and translations are welcome! 
Embedded Linux 
Developers 
Free Electrons 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 25/36
How it started 
I Started in late 2011 
I First code merged in Linux 3.8, for the Allwinner A13 
I Was not doing much at the time 
I Was only able to boot to an initramfs 
I Other SoCs and features quickly followed 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 26/36
Contributions 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 27/36
Challenges 
I Rewrite most of the core drivers to use the new subsystems: 
CCF, pinctrl, dmaengine 
I Move away from FEX, to DT 
I Clean up the code to make it
t for submission 
I Get the code accepted 
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 28/36
Babel
sh 
I Couldn't boot a generic kernel on every board out there 
anymore 
I Worked on sunxi-babel

More Related Content

What's hot

Windows 3.1 (WFW) on vintage and modern hardware
Windows 3.1 (WFW) on vintage and modern hardwareWindows 3.1 (WFW) on vintage and modern hardware
Windows 3.1 (WFW) on vintage and modern hardwareyeokm1
 
Reflections on Trusting Trust
Reflections on Trusting TrustReflections on Trusting Trust
Reflections on Trusting Trustyeokm1
 
A Science Project: Building a sound card based on the Covox Speech Thing
A Science Project: Building a sound card based on the Covox Speech ThingA Science Project: Building a sound card based on the Covox Speech Thing
A Science Project: Building a sound card based on the Covox Speech Thingyeokm1
 
WebRTC security+more @ KamailioWorld 2018
WebRTC security+more @ KamailioWorld 2018WebRTC security+more @ KamailioWorld 2018
WebRTC security+more @ KamailioWorld 2018Lorenzo Miniero
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDLorenzo Miniero
 
Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Lorenzo Miniero
 
2012 workshop wed_ethernet_servicesoveri_poib
2012 workshop wed_ethernet_servicesoveri_poib2012 workshop wed_ethernet_servicesoveri_poib
2012 workshop wed_ethernet_servicesoveri_poibstrelecru
 
Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Lorenzo Miniero
 
Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Lorenzo Miniero
 
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Paolo Saviano
 
WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022Lorenzo Miniero
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaAnne Nicolas
 
NUS SOC Print
NUS SOC PrintNUS SOC Print
NUS SOC Printyeokm1
 
WebRTC, Whats in it for me?
WebRTC, Whats in it for me?WebRTC, Whats in it for me?
WebRTC, Whats in it for me?SeanDuBois3
 
Raspberry Pi 3 + UART/Bluetooth issues
Raspberry Pi 3 + UART/Bluetooth issuesRaspberry Pi 3 + UART/Bluetooth issues
Raspberry Pi 3 + UART/Bluetooth issuesyeokm1
 
IETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup StockholmIETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup StockholmLorenzo Miniero
 
Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Lorenzo Miniero
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Lorenzo Miniero
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21Lorenzo Miniero
 

What's hot (20)

Windows 3.1 (WFW) on vintage and modern hardware
Windows 3.1 (WFW) on vintage and modern hardwareWindows 3.1 (WFW) on vintage and modern hardware
Windows 3.1 (WFW) on vintage and modern hardware
 
Reflections on Trusting Trust
Reflections on Trusting TrustReflections on Trusting Trust
Reflections on Trusting Trust
 
A Science Project: Building a sound card based on the Covox Speech Thing
A Science Project: Building a sound card based on the Covox Speech ThingA Science Project: Building a sound card based on the Covox Speech Thing
A Science Project: Building a sound card based on the Covox Speech Thing
 
WebRTC security+more @ KamailioWorld 2018
WebRTC security+more @ KamailioWorld 2018WebRTC security+more @ KamailioWorld 2018
WebRTC security+more @ KamailioWorld 2018
 
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONEDScaling WebRTC deployments with multicast @ IETF 110 MBONED
Scaling WebRTC deployments with multicast @ IETF 110 MBONED
 
Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021Janus Workshop pt.2 @ ClueCon 2021
Janus Workshop pt.2 @ ClueCon 2021
 
2012 workshop wed_ethernet_servicesoveri_poib
2012 workshop wed_ethernet_servicesoveri_poib2012 workshop wed_ethernet_servicesoveri_poib
2012 workshop wed_ethernet_servicesoveri_poib
 
Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020Can SFUs and MCUs be friends @ IIT-RTC 2020
Can SFUs and MCUs be friends @ IIT-RTC 2020
 
Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021Can WebRTC help musicians? @ FOSDEM 2021
Can WebRTC help musicians? @ FOSDEM 2021
 
All About IPv6
All About IPv6All About IPv6
All About IPv6
 
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
Talk@JanusCon2019: Janus, WebRTC and ML - Fantastic technologies and how to m...
 
WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022WHIP WebRTC Broadcasting @ FOSDEM 2022
WHIP WebRTC Broadcasting @ FOSDEM 2022
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
 
NUS SOC Print
NUS SOC PrintNUS SOC Print
NUS SOC Print
 
WebRTC, Whats in it for me?
WebRTC, Whats in it for me?WebRTC, Whats in it for me?
WebRTC, Whats in it for me?
 
Raspberry Pi 3 + UART/Bluetooth issues
Raspberry Pi 3 + UART/Bluetooth issuesRaspberry Pi 3 + UART/Bluetooth issues
Raspberry Pi 3 + UART/Bluetooth issues
 
IETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup StockholmIETF remote participation via Meetecho @ WebRTC Meetup Stockholm
IETF remote participation via Meetecho @ WebRTC Meetup Stockholm
 
Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019Simulcast/SVC @ IIT-RTC 2019
Simulcast/SVC @ IIT-RTC 2019
 
Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021Write a SocialTV app @ OpenSIPS 2021
Write a SocialTV app @ OpenSIPS 2021
 
WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21WebRTC, RED and Janus @ ClueCon21
WebRTC, RED and Janus @ ClueCon21
 

Similar to Kernel Recipes 2014 - Supporting a new ARM platform: the Allwinner example

Kernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using BuildrootKernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using BuildrootAnne Nicolas
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)Jaime Barragan
 
Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingStephan Cadene
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded trainingH Ming
 
Kernel Recipes 2013 - ARM support in the Linux kernel
Kernel Recipes 2013 - ARM support in the Linux kernelKernel Recipes 2013 - ARM support in the Linux kernel
Kernel Recipes 2013 - ARM support in the Linux kernelAnne Nicolas
 
Run Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using YoctoRun Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using YoctoMarco Cavallini
 
Linux a free and open source operating system
Linux a free and open source operating systemLinux a free and open source operating system
Linux a free and open source operating systembanwait
 
Linux a free and open source operating system
Linux a free and open source operating systemLinux a free and open source operating system
Linux a free and open source operating systembanwait
 
Essay About ISS 418 Lab 7 And 8
Essay About ISS 418 Lab 7 And 8Essay About ISS 418 Lab 7 And 8
Essay About ISS 418 Lab 7 And 8Paula Smith
 
127 iio a-new-subsystem
127 iio a-new-subsystem127 iio a-new-subsystem
127 iio a-new-subsystemtarak reddy
 
Linux day 2016 Yocto Project
Linux day 2016 Yocto ProjectLinux day 2016 Yocto Project
Linux day 2016 Yocto ProjectMarco Cavallini
 
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorUplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorSatya Harish
 
Getting Started with Buildroot
Getting Started with BuildrootGetting Started with Buildroot
Getting Started with BuildrootTrevor Woerner
 
Petazzoni device-tree-dummies
Petazzoni device-tree-dummiesPetazzoni device-tree-dummies
Petazzoni device-tree-dummiesAlex Cherny
 
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Anne Nicolas
 
How to port Tizen:Common to open source hardware devices?
How to port Tizen:Common to open source hardware devices? How to port Tizen:Common to open source hardware devices?
How to port Tizen:Common to open source hardware devices? Leon Anavi
 
Introduction to GNU/Linux
Introduction to GNU/LinuxIntroduction to GNU/Linux
Introduction to GNU/LinuxRupam Das
 

Similar to Kernel Recipes 2014 - Supporting a new ARM platform: the Allwinner example (20)

Kernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using BuildrootKernel Recipes 2013 - Easy rootfs using Buildroot
Kernel Recipes 2013 - Easy rootfs using Buildroot
 
Embedded linux system development (slides)
Embedded linux system development (slides)Embedded linux system development (slides)
Embedded linux system development (slides)
 
Linux Kernel and Driver Development Training
Linux Kernel and Driver Development TrainingLinux Kernel and Driver Development Training
Linux Kernel and Driver Development Training
 
Yocto project and open embedded training
Yocto project and open embedded trainingYocto project and open embedded training
Yocto project and open embedded training
 
Kernel Recipes 2013 - ARM support in the Linux kernel
Kernel Recipes 2013 - ARM support in the Linux kernelKernel Recipes 2013 - ARM support in the Linux kernel
Kernel Recipes 2013 - ARM support in the Linux kernel
 
Run Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using YoctoRun Qt on Linux embedded systems using Yocto
Run Qt on Linux embedded systems using Yocto
 
Linux a free and open source operating system
Linux a free and open source operating systemLinux a free and open source operating system
Linux a free and open source operating system
 
Linux a free and open source operating system
Linux a free and open source operating systemLinux a free and open source operating system
Linux a free and open source operating system
 
Essay About ISS 418 Lab 7 And 8
Essay About ISS 418 Lab 7 And 8Essay About ISS 418 Lab 7 And 8
Essay About ISS 418 Lab 7 And 8
 
127 iio a-new-subsystem
127 iio a-new-subsystem127 iio a-new-subsystem
127 iio a-new-subsystem
 
127 iio a-new-subsystem
127 iio a-new-subsystem127 iio a-new-subsystem
127 iio a-new-subsystem
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
 
Linux day 2016 Yocto Project
Linux day 2016 Yocto ProjectLinux day 2016 Yocto Project
Linux day 2016 Yocto Project
 
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processorUplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
UplinQ - ubuntu linux on the qualcomm® snapdragon™ 600 processor
 
Getting Started with Buildroot
Getting Started with BuildrootGetting Started with Buildroot
Getting Started with Buildroot
 
Petazzoni device-tree-dummies
Petazzoni device-tree-dummiesPetazzoni device-tree-dummies
Petazzoni device-tree-dummies
 
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
 
tizen-oshw-tds14sh
tizen-oshw-tds14shtizen-oshw-tds14sh
tizen-oshw-tds14sh
 
How to port Tizen:Common to open source hardware devices?
How to port Tizen:Common to open source hardware devices? How to port Tizen:Common to open source hardware devices?
How to port Tizen:Common to open source hardware devices?
 
Introduction to GNU/Linux
Introduction to GNU/LinuxIntroduction to GNU/Linux
Introduction to GNU/Linux
 

More from Anne Nicolas

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstAnne Nicolas
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIAnne Nicolas
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelAnne Nicolas
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyAnne Nicolas
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureAnne Nicolas
 
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 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataAnne Nicolas
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Anne Nicolas
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxAnne Nicolas
 
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
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconAnne Nicolas
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureAnne Nicolas
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayAnne Nicolas
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerAnne Nicolas
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationAnne Nicolas
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingAnne Nicolas
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedAnne Nicolas
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPAnne Nicolas
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Anne Nicolas
 
Kernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easyKernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easyAnne Nicolas
 

More from Anne Nicolas (20)

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream first
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
 
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 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
 
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
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmaker
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integration
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
 
Kernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easyKernel Recipes 2019 - Formal modeling made easy
Kernel Recipes 2019 - Formal modeling made easy
 

Recently uploaded

Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxAS Design & AST.
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...kalichargn70th171
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxSasikiranMarri
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfkalichargn70th171
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdfSteve Caron
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxRTS corp
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 

Recently uploaded (20)

Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Mastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptxMastering Project Planning with Microsoft Project 2016.pptx
Mastering Project Planning with Microsoft Project 2016.pptx
 
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
The Ultimate Guide to Performance Testing in Low-Code, No-Code Environments (...
 
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptxUnderstanding Plagiarism: Causes, Consequences and Prevention.pptx
Understanding Plagiarism: Causes, Consequences and Prevention.pptx
 
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdfPros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
Pros and Cons of Selenium In Automation Testing_ A Comprehensive Assessment.pdf
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
[ CNCF Q1 2024 ] Intro to Continuous Profiling and Grafana Pyroscope.pdf
 
Advantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptxAdvantages of Cargo Cloud Solutions.pptx
Advantages of Cargo Cloud Solutions.pptx
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 

Kernel Recipes 2014 - Supporting a new ARM platform: the Allwinner example

  • 1. Embedded Linux Conference 2014 Supporting a new ARM platform: the Allwinner example Maxime Ripard Free Electrons maxime@free-electrons.com Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 1/36
  • 2. Maxime Ripard I Embedded Linux engineer and trainer at Free Electrons I Embedded Linux development: kernel and driver development, system integration, boot time and power consumption optimization, consulting, etc. I Embedded Linux training, Linux driver development training and Android system development training, with materials freely available under a Creative Commons license. I http://free-electrons.com I Contributions I Kernel support for the sunXi SoCs from Allwinner I Contributor to few open-source projects, Buildroot, an open-source, simple and fast embedded Linux build system, Barebox, a modern bootloader. I Living in Toulouse, south west of France Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 2/36
  • 3. Introduction Introduction Maxime Ripard Free Electrons c Copyright 2004-2014, Free Electrons. Creative Commons BY-SA 3.0 license. Corrections, suggestions, contributions and translations are welcome! Embedded Linux Developers Free Electrons Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 3/36
  • 4. Allwinner I Chinese fabless SoC vendor I Founded in 2007, in Zhuhai I Always did ARM SoC, starting with ARM9 CPUs I Mostly doing multimedia SoCs I 550 employees Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 4/36
  • 5. Tablet Market Share in 2013 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 5/36
  • 6. SoC Line-up I F-Series I ARM9-based SoCs I Mostly were running a custom OS called MeliOS, except for the late SoCs in that family I A10 / A10s / A12 / A13 (sun4i/sun5i), A20 (sun7i) I Cortex-A8 based for the sun4i/sun5i I Dual Cortex-A7 for the A20 I A31 / A31s (sun6i) I Quad Cortex-A7 I The GPU is Imagination's PowerVR I Brand new design, a lot of IPs changed I A23/A33 (sun8iw3/sun8iw5) I Dual/Quad Cortex-A7 I An hybrid between the A20 and the A31 I A80 (sun9i) I big.LITTLE with 4 Cortex A15 and 4 Cortex A7 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 6/36
  • 7. Development / Hacker-friendly boards I Olimex Olinuxino I Open Source Hardware I Access to most of the SoC pins through 0.1" headers I Very supportive towards the community I Cubieboards I Tiny, and cheap I A very strong community has been built around it I A lot of other boards: pcDuino, Marsboard, Banana Pi, etc. Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 7/36
  • 8. Boards Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 8/36
  • 9. Where we were Where we were Maxime Ripard Free Electrons c Copyright 2004-2014, Free Electrons. Creative Commons BY-SA 3.0 license. Corrections, suggestions, contributions and translations are welcome! Embedded Linux Developers Free Electrons Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 9/36
  • 10. Allwinner's Kernel I Allwinner Kernel are mostly based on two kernels: I Linux 3.0 for Cortex-A8 based SoCs I Linux 3.3/3.4 for Cortex-A7 based SoCs I Just like most vendor code, their focus is primarily on making that particular kernel version working on one SoC I There's one dierent kernel tree for each SoC, even if they are really close I Apart from that, given the version they're based on, they're in pretty decent shape Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 10/36
  • 11. Allwinner Kernel Issues I However, it suers some major issues I By today standards, the code is pretty outdated I No Common Clock Framework I No pinctrl / GPIOlib I No dmaengine I There's no consolidation at all between the SoCs code I You're pretty much stuck with that kernel version I ... And there's FEX Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 11/36
  • 12. FEX I It is a binary
  • 13. le, compiled from a human-readable text
  • 14. le I Passed along the boot chain to the various components (bootloaders, kernel) I Used to get the hardware con
  • 15. guration of the board they're running on, in a generic way I In the FEX script, you get I Which device are enabled I The memory timings I The clocks frequency I The pin muxing I The regulators voltage I Plus, various hardware and con
  • 16. guration information sq Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 12/36
  • 17. How it looks like [twi1_para] twi_used = 1 twi_scl = port:PH162defaultdefaultdefault twi_sda = port:PH172defaultdefaultdefault [mmc0_para] sdc_used = 1 sdc_detmode = 2 sdc_buswidth = 4 sdc_clk = port:PF02212default sdc_cmd = port:PF03212default sdc_d0 = port:PF01212default sdc_d1 = port:PF00212default sdc_d2 = port:PF05212default sdc_d3 = port:PF04212default sdc_det = port:PA08612default Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 13/36
  • 18. How it is used I It is then compiled by fexc to a binary
  • 19. le I Then, Linux will have hardcoded devices, and each matching device will I Be probed I Lookup the FEX to get if it is allowed to probe I Then retrieve whatever parameter it is interested in I Even though it is a lot like the device tree, the logic is completely backward Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 14/36
  • 20. Pros / Cons I Pros I Most of the DT Pros I Allows to have a completely generic kernel image I Separates the hardware description from the code I Allows a very short time-to-boot, even if you're not really a kernel developer I Cons I Completely non-standard I Only works for a single platform I Not generic enough Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 15/36
  • 21. FEX moment of glory so. coming back to what you said earlier: I'm formulating what to say to allwinner [and need to pre-send something by monday so that they can consider it before the meeting]. so far, it consists of: * device-tree is what the linux kernel community has come up with, it is equivalent to FEX. * the linux kernel community would like to apologise for not consulting with you (allwinner) on the decision to only accept device tree (Luke Kenneth Casson Leighton, 6/7/2013) Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 16/36
  • 22. FEX moment of glory Thanks to their script.fex system when i said they only need to develop one kernel and one u-boot i really wasn't kidding around: they really have got to the point which everyone else dreams of with device-tree (Luke Kenneth Casson Leighton, 6/7/2013) Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 17/36
  • 23. FEX moment of glory I have a Cubieboard and I have a pca9532 on my desk. Now I want to attach this pca9532 to the Cubieboard so I wire them together on I2C. How is the Allwinner kernel going to load the driver for the pca9532? The mainline pca9532 driver does not understand fex so it can't read the necessary initialization data. (Jon Smirl, 6/6/2013) You're immediately outside of the target market for which allwinner designed and deployed script.fex. (Luke Kenneth Casson Leighton, 6/6/2013) Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 18/36
  • 24. Boot Process Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 19/36
  • 25. Community Community Maxime Ripard Free Electrons c Copyright 2004-2014, Free Electrons. Creative Commons BY-SA 3.0 license. Corrections, suggestions, contributions and translations are welcome! Embedded Linux Developers Free Electrons Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 20/36
  • 26. linux-sunxi I A community started around rhombus-tech and their EOMA-68 standard in 2010 I It forked o in 2011, and created http://linux-sunxi.org I It's very active these days, with around 600 subscribers on the ML, and around 150 persons on IRC (idlers included) I Around 10 very active developers, working on dierent areas of the SoC support: bootloader, kernel, VPU and GPU reverse engineering, distribution support, etc. I Libre Software Extremists Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 21/36
  • 27. Achievements I Documentation of the hardware I Documentation of the BSP I Implementation of needed tools I Maintainance of linux and u-boot I Bring up of Distributions I Reverse engineering of the SoC (NAND, VPU, etc.) Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 22/36
  • 28. linux-sunxi kernel I Maintains a fork of Allwinner's kernel I Does all the maintenance work I Support most of the SoCs made by Allwinner in one single kernel tree I Factorizes and cleans up the code I Fix bugs I Based on a 3.4 (stable) kernel Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 23/36
  • 29. Community Kernel: Pros and Cons I Pros I Maintain the code that Allwinner doesn't I Allows to run your own Android/Fedora/Buildroot on your cheap tablet I Slightly better than the Allwinner code I Works well for the hobbyist that just wants to play with his new toy I Cons I Stuck in the past I Doesn't think about the long-term view I Only keeps hacking more without thinking about upstreaming changes to lessen their burden I Not much better than Allwinner code I Support for new generation SoCs? Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 24/36
  • 30. Mainlining Mainlining Maxime Ripard Free Electrons c Copyright 2004-2014, Free Electrons. Creative Commons BY-SA 3.0 license. Corrections, suggestions, contributions and translations are welcome! Embedded Linux Developers Free Electrons Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 25/36
  • 31. How it started I Started in late 2011 I First code merged in Linux 3.8, for the Allwinner A13 I Was not doing much at the time I Was only able to boot to an initramfs I Other SoCs and features quickly followed Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 26/36
  • 32. Contributions Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 27/36
  • 33. Challenges I Rewrite most of the core drivers to use the new subsystems: CCF, pinctrl, dmaengine I Move away from FEX, to DT I Clean up the code to make it
  • 34. t for submission I Get the code accepted Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 28/36
  • 35. Babel
  • 36. sh I Couldn't boot a generic kernel on every board out there anymore I Worked on sunxi-babel
  • 37. sh, a runtime FEX-to-DT translator I Behaves like a regular u-boot kernel image, and embeds DTSI and the DT-based kernel image I At runtime, will lookup the data from the FEX
  • 38. le, and construct the DT from the skeletons it has, and pass it to the DT kernel I Enables to run a DT-based kernel on every cheap tablet out there, without modifying the bootloader. I Not very used, and support only a few devices I Only to be seen as a legacy solution Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 29/36
  • 39. Babel
  • 40. sh Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 30/36
  • 41. Current Status I All the core stu works, only DMA is missing on the older SoCs I Most of the latest fancy stu: PSCI, Virtualization, etc. I Network works I Storage start to works too: SATA and MMC are merged, MMC is pending I Pretty much everything you need for a headless system works nowadays. I The only things missing are the user-friendly one: Display, Audio, touchscreen, etc. Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 31/36
  • 42. What's next What's next Maxime Ripard Free Electrons c Copyright 2004-2014, Free Electrons. Creative Commons BY-SA 3.0 license. Corrections, suggestions, contributions and translations are welcome! Embedded Linux Developers Free Electrons Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 32/36
  • 43. Allwinner's usage of the code I Latest kernel still based on Linux 3.4 I They are using some of our code though (clock, pinctrl) I Are switching to standard APIs (dmaengine, ASoC) I But are still using FEX I Joined Linaro Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 33/36
  • 44. TODO-List I Pretty much all the hard work now I NAND is working, but is going (slowly) through the mainlining process I Audio is working for some SoCs, and is in the cleanup phase I Video is still an issue I Work on newer SoCs (A33, A80, A83) I Plenty of things to do, you're welcome to join! Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 34/36
  • 45. Lessons Learned I Take your time I Know when to start from scratch and when to clean up I You want documentation I Have as much hardware as you can I You don't want to be alone in there Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 35/36
  • 46. Questions? Maxime Ripard maxime@free-electrons.com Slides under CC-BY-SA 3.0 http://free-electrons.com/pub/conferences/2014/elc/ripard-mainlining- of-out-of-tree-socs/ Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http://free-electrons.com 36/36