Skip to content

Device Tree on ARCH_BCM2708

notro edited this page Jul 21, 2014 · 3 revisions

This page details the work getting Device Tree support on ARCH_BCM2708 (used in the official RPi kernel).
The work is done in parallel with the Upstreaming (ARCH_BCM2835) effort.
Moving to ARCH_BCM2835 can take some time, so this aims at giving Device Tree support sooner.

Status

Basic Device Tree support is added.
Devices that can be added: platform_device

Drivers

These drivers are needed to give full Device Tree support for the end user

ARCH_BCM2708 ARCH_BCM2835 Status
bcm2708_gpio pinctrl-bcm2835 pinctrl-bcm2708 is added
spi-bcm2708 spi-bcm2835 Work in progress
i2c-bcm2708 i2c-bcm2835 Work in progress

Other drivers

ARCH_BCM2708 ARCH_BCM2835 Status
bcm2708_wdog bcm2835_wdt
bcm2708-rng bcm2835-rng
bcm2708-i2s bcm2835-i2s

Build a Device Tree enabled kernel

How to build: http://elinux.org/RPi_Kernel_Compilation

Kernel config

Enable Device Tree

ARCH=arm make bcmrpi_defconfig
ARCH=arm make menuconfig
# System Type  --->  Broadcom BCM2708 Implementations  --->  [*]   BCM2708 Device Tree support

The quick way including debug option

ARCH=arm make bcmrpi_defconfig
scripts/config --enable BCM2708_DT
# Device Tree contents in /proc/device-tree/
scripts/config --enable PROC_DEVICETREE
yes "" | ARCH=arm make oldconfig

Bootloader setup

Add to /boot/config.txt

device_tree=bcm2708-rpi-b.dtb
device_tree_address=0x100
kernel_address=0x8000
disable_commandline_tags=2

Pull Request history

Clone this wiki locally