Skip to content

How to boot using device tree

lp0 edited this page Jun 16, 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
    • Character devices
      • Serial drivers
        • ARM AMBA PL011 serial port support
          • Support for console on AMBA serial port
    • I2C support
      • I2C Hardware Bus support
        • BCM2708 BSC
    • SPI support
      • BCM2708 SPI controller driver (SPI0)
    • 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
      • SDHCI platform and OF driver helper
        • Broadcom BCM2708 SDHCI support
          • DMA support on BCM2708 SDHCI

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
Clone this wiki locally