Announce: Linux Kernel Porting Workshop
The much awaited "Linux Kernel Porting Workshop" is here! The objective of the workshop is to provide better understanding of the Linux device model, the device tree, and the changes required to port the kernel to a new board. This workshop deals with Board Level Porting. To understand terminologies associated with porting, please read our article titled Linux Kernel Porting, Jargon Buster
Date and Time
-
Sep 10, 9:00 AM to 6:00 PM
-
Sep 11, 9:00 AM to 6:00 PM
Venue
The workshop venue address is provided below
Innoart Technologies,
116, Pasumpon Muthuramalinga Tevar Rd,
Nandanam Extension, Nandanam,
Chennai
Location of the venue on Google maps: here
Workshop Ticket
This is a paid workshop, and the workshop ticket price starts from Rs. 4000 (inclusive of lunch).
Target Audience
Embedded Linux BSP Engineers
-
The kernel is a fast moving target, and engineers need to catch-up with kernel improvements from time to time.
-
This workshop will help engineers to migrate from pre-DT kernels to the current Device Tree based kernels.
Linux Device Driver Developers
-
Device detection and handling in embedded systems is tricky, when compared to traditional busses like PCI and USB.
-
The workshop will help developers who have worked on hot-plugable busses like PCI and USB, to get up to speed with device tree and how devices are handled in embedded systems.
SoC VLSI Engineers
-
SoC engineers generally make customizations to existing SoCs.
-
The workshop enables engineers to make corresponding modifications to the kernel, and test their hardware changes on FPGAs and other emulators.
Hardware Board Designers
-
Hardware designers create a new board designs based on reference board designs.
-
The workshop enables hardware engineers to work in tandem with software engineers during board bring-up, by suggesting required modifications to the device tree and the kernel.
Trainers
-
Vijay Kumar, Technologist at Zilogic Systems
-
Profile: On LinkedIn
-
-
Deepak, Technologist at Zilogic Systems
-
Profile: On LinkedIn
-
Pre-requisites
-
Should be familiar with the Linux command-line
-
Should be familiar with microprocessors
-
Should be familiar with C programming
-
Should be familiar with Linux system programming
Hardware Requirements
Participants are required to bring their own Laptop
-
Should have minimum 2GB RAM
-
Should have minimum 10GB free Harddisk space
Software Requirements
-
Supported operating systems: Windows / Linux
-
Should have the following software installed
-
Vagrant == 1.6.5
-
VirtualBox == 4.3.36
-
Tentative Schedule
Day 1
Time | Session |
---|---|
09:00 |
Setup and Introduction |
10:00 |
Kernel Introduction |
10:30 |
Tea Break |
10:45 |
Devices Interfacing |
11:45 |
Application Driver Interface |
01:00 |
Lunch Break |
02:00 |
Kernel Frameworks |
02:30 |
Bus Model & Sysfs |
03:30 |
Tea Break |
03:45 |
Kernel Module Autoloading |
04:45 |
Device Tree Intro and Syntax |
Day 2
Time | Session |
---|---|
09:00 |
SoC Architecture |
09:30 |
Device Tree Bindings |
10:30 |
Tea Break |
10:45 |
Flash |
11:15 |
Ethernet |
11:45 |
I2C LCD & Keypad |
12:15 |
LCD Display |
01:00 |
Lunch Break |
02:00 |
GPIOs & LEDs |
02:30 |
Pin Control Subsystem: pinctrl |
03:30 |
Tea Break |
03:45 |
Driver & Device Tree |
04:15 |
Device Tree Boot |
04:45 |
Debugging with Log Messages |
05:15 |
Debugging Driver Binding |
Syllabus
Kernel Introduction
-
Kernel configuration
-
Building the kernel
-
Booting the kernel
Devices Interfacing
-
Memory Interfacing
-
Device Interfacing
-
MMIO
-
Controller Based IO
-
Controlling LEDs from Userspace
Application Driver Interface
-
Unix/Linux Device Abstraction
-
Device Files
-
Types of Drivers
-
Keypad and LCD example
-
Kernel Frameworks
Bus Model & Sysfs
-
Hotpluggable Bus
-
Bus Model
-
Device and Driver Binding
-
Platform Bus
-
I2C Bus
Kernel Module Autoloading
-
Kernel Modules
-
Modalias
-
depmod
-
UDev and Module Loading
Device Tree Intro and Syntax
-
History
-
Role of Device Tree
-
Open Firmware
-
Linux Support
-
Bootloader Support
-
-
Syntax
-
Data Types
-
Tree Representation
-
Overlays
-
Includes
-
Preprocessor
-
SoC Architecture
-
System Bus
-
On-chip Peripherals
-
Interrupt Tree
Device Tree Bindings
-
Board
compatible
-
CPU
-
Memory
-
System Bus
-
Peripherals
-
Registers
-
Interrupts
-
-
Boot Parameters
-
Device
compatible
Flash
-
NOR Flash
-
Partitions
-
Range
-
Labels
-
Read-only
-
-
Testing with JFFS2
Ethernet
-
Phy Interface
-
Data
-
Control
-
-
MAC Address
-
Testing with ifconfig / wget
I2C LCD & Keypad
-
I2C Device
-
Addressing
-
Interrupts
-
Testing with Char Device
LCD Display
-
Video Interface
-
Configuration Parameters
-
Testing with Frame Buffer Console
GPIOs & LEDs
-
Refering GPIOs
-
LED Triggers
-
GPIO LEDs
-
Testing with Triggers
Pin Control Subsystem
-
Pin Muxing
-
Pin Configuration
-
Testing with Visualizer
Driver & Device Tree
-
Platform Device
-
Platform Data
-
Platform Resources
-
Kernel OpenFirmware APIs
Device Tree Boot
-
Machine DT
-
ATAGs and DT Boot
-
Appended DTB
Debugging with Log Messages
-
Console device
-
Early Printing
-
Log Buffer
-
Dumping Log Buffer from U-Boot
Debugging Driver Binding
-
Kernel Driver Config.
-
Driver Loading
-
Driver Binding
-
Debugging Probe Failure