duanyu-yu / hermit-dtb

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

hermit-dtb

Documentation License

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 by Colin Finck (colin.finck@rwth-aachen.de) for the AArch64 port of HermitCore-rs, hence the name.

Features

  • 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).
  • parse_dtb example tool to demonstrate the features.

ToDo

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

References

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

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

License:Apache License 2.0


Languages

Language:Rust 100.0%