Skip to content

Instantly share code, notes, and snippets.

@alanyih
Created December 12, 2013 14:24
Show Gist options
  • Save alanyih/7928678 to your computer and use it in GitHub Desktop.
Save alanyih/7928678 to your computer and use it in GitHub Desktop.
How to boot using device tree
How to boot using device tree
https://github.com/raspberrypi/linux/wiki/How-to-boot-using-device-tree
Table of Contents
Bootloader Configuration
Kernel
Configuration
Device Tree
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
Last edited by spartacus06, a year ago
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment