Firmware — Dtb

The workflow involves writing a human-readable source file (.dts) and compiling it into the binary format (.dtb) that the firmware understands.

Tool: dtc (Device Tree Compiler)

Compile Command:

dtc -I dts -O dtb -o my_board.dtb my_board.dts

Decompile Command (Reverse Engineering): dtb firmware

dtc -I dtb -O dts -o my_board.dts my_board.dtb

The Device Tree is a data structure that describes the hardware components of a computer system. It lists CPUs, memory addresses, interrupt controllers, UARTs, I2C buses, GPIO pins, and peripheral devices. The Device Tree Blob (DTB) is the compiled, binary version of the Device Tree Source (DTS) file. The Linux kernel reads this blob at boot time to understand what hardware it is running on. The workflow involves writing a human-readable source file (

DTB firmware, therefore, refers to the practice of storing, loading, and passing the Device Tree Blob to the kernel via the firmware or bootloader. It is not a separate type of firmware; rather, it is a critical data payload that the firmware delivers to the operating system. Decompile Command (Reverse Engineering): dtc -I dtb -O

Using the Device Tree Compiler (dtc) from the kernel source:

dtc -I dts -O dtb -o my-board.dtb my-board.dts