#devices #fdt #dtb


Crate to parse Flattened Device Trees (FDT) / Device Tree Blobs (DTB) in a no_std environment

2 releases

0.1.1 Apr 26, 2023
0.1.0 Apr 26, 2023

#581 in Operating systems

Download history 5/week @ 2023-12-11 46/week @ 2024-01-08 24/week @ 2024-01-15 50/week @ 2024-01-22 2/week @ 2024-01-29 210/week @ 2024-02-05 98/week @ 2024-02-12 123/week @ 2024-02-19 140/week @ 2024-02-26 50/week @ 2024-03-04 78/week @ 2024-03-11 48/week @ 2024-03-18

317 downloads per month
Used in libhermit-rs


301 lines


Crate to parse Flattened Device Trees (FDT)/Device Tree Blobs (DTB) in a no_std environment. Performs no dynamic memory allocations and can therefore be universally used for operating system development. Originally written for the AArch64 port of HermitCore-rs, hence the name.


  • Enumerating subnodes of a given path.
  • Enumerating properties of a given path.
  • Getting the data of a specific property.
  • Finding incomplete paths (e.g. looking for /uart@ reliably yields /uart@fe001000 if that is the only UART device).
  • Written in mostly safe Rust. unsafe is only used when accessing the in-memory DTB in the first place (unavoidable) and for performance reasons (e.g. str::from_utf8_unchecked).
  • parse_dtb example tool to demonstrate the features.


  • Implement an iterator for the memory reservation block.
  • Implement a method to fetch the boot_cpuid_phys value.



The hermit-dtb crate has been written by Colin Finck (colin.finck@rwth-aachen.de).

No runtime deps