Skip to content

How to boot using device tree

spartacus06 edited this page Jun 22, 2012 · 9 revisions

Table of Contents

Bootloader Configuration

  • Use these config.txt parameters:
 device_tree=bcm2835.dtb
 device_tree_address=0x100
 kernel_address=0x8000
 disable_commandline_tags=1
 init_uart_baud=115200
 init_uart_clock=3000000
 init_emmc_clock=50000000

Kernel

  • Build a kernel from lp0/rpi-linear
  • Copy arch/arm/boot/zImage to kernel.img
  • Run make dtbs

Configuration

 Device Drivers
 |- Misc devices
 |  `- Broadcom VideoCore Mailbox Support
 |- Character devices
 |  `- Serial drivers
 |     `- ARM AMBA PL011 serial port support
 |        `- Support for console on AMBA serial port
 |- Network device support
 |  `- USB Network Adapters
 |     `- Multi-purpose USB Networking Framework
 |        `- SMSC LAN95XX based USB 2.0 10/100 ethernet devices
 |- I2C support
 |  `- I2C Hardware Bus support
 |     `- BCM2708 BSC
 |- SPI support
 |  `- BCM2708 SPI controller driver (SPI0)
 |- Pin controllers
 |  |- Support pin multiplexing controllers
 |  `- Broadcom BCM2708 GPIO pin controller driver
 |- GPIO Support
 |  `- Broadcom VideoCore Doorbell Support
 |- Watchdog Timer Support
 |  `- BCM2708 Watchdog
 |- Voltage and Current Regulator Support
 |  `- Broadcom VideoCore regulator
 |- Graphics support
 |  |- Support for frame buffer devices
 |  |  `- BCM2708 framebuffer support
 |  `- Bootup logo
 |     `- 224-color Raspberry Pi logo
 |- DMA Engine support
 |  `- BCM2708 DMA support
 |- MMC/SD/SDIO card support
 |  |- Secure Digital Host Controller Interface support
 |  `- SDHCI platform and OF driver helper
 |     `- Broadcom BCM2708 SDHCI support
 |        `- DMA support on BCM2708 SDHCI (NEW)
 |- LED Support
 |  |- LED Class Support
 |  `- LED Trigger support
 |     `- LED Default ON Trigger

Device Tree

  • Until Issue #24 is completed you need to manually configure the device tree file
    • Using ftdput from git://git.jdl.com/software/dtc.git:
 fdtput arch/arm/boot/bcm2835-rpi-b.dtb /system revision 2
 fdtput -t x arch/arm/boot/bcm2835-rpi-b.dtb /system serial 0 0
 fdtput -t hhx arch/arm/boot/bcm2835-rpi-b.dtb /axi/usb/hub/ethernet mac-address 02 00 00 00 00 00
 fdtput arch/arm/boot/bcm2835-rpi-b.dtb /display broadcom,width 1920
 fdtput arch/arm/boot/bcm2835-rpi-b.dtb /display broadcom,height 1200
 fdtput arch/arm/boot/bcm2835-rpi-b.dtb /display broadcom,depth 16
 fdtput -t x arch/arm/boot/bcm2835-rpi-b.dtb /axi/dma broadcom,channels 783c
    • If you want to use 192MB instead of the default 128MB:
 (echo -ne "\x00\x00\x00\x00\x0c\x00\x00\x00"; echo -e "\x00\x00\x00\x00\x04\x00\x00\x00") \
 | dd conv=notrunc bs=8 count=2 seek=5 of=arch/arm/boot/bcm2835-rpi-b.dtb
  • Copy arch/arm/boot/bcm2835-rpi-b.dtb to bcm2835.dtb