https://cdn.explara.com/public/v_10.0/internal-flow/img/event-landing/default_header_img.png

Linux Kernel Porting Workshop

40+ Attendees

Sep 10, 2016 - Sep 11, 2016
09:00 AM - 06:00 PM
Innoart Technologies Private Limited, 116, Pasumpon Muthuramalinga Tevar Road Nandanam Extension,Nandanam
Chennai,India

This event has ended. Please contact organizer for more details.

Report Issues

Register for Upcoming Workshops

Overview

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

Target audience include

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

Organizer

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

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

Social Networking Badges

Let your friends know that you are attending the event, post an update on Facebook, Twitter or LinkedIn, with the following badge. Don't forget to include a link back to this event page.

Credits

The Tux image is from this wikimedia page.

Review

Organiser : Vijay Kumar B

Questions & Answers

Linux Kernel Porting Workshop

Ask Organiser

Report spam or issues