blob: bda11464335abb2706cb7ae40e9701433597e467 [file] [log] [blame]
Andrew Scullfbc938a2018-08-20 14:09:28 +01001#pragma once
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +01002
3#include <stdbool.h>
Wedson Almeida Filhofed69022018-07-11 15:39:12 +01004#include <stddef.h>
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +01005#include <stdint.h>
6
7struct fdt_node {
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +01008 const struct fdt_header *hdr;
9 const char *begin;
10 const char *end;
11 const char *strs;
12};
13
Wedson Almeida Filhofed69022018-07-11 15:39:12 +010014size_t fdt_header_size(void);
15size_t fdt_total_size(struct fdt_header *hdr);
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +010016void fdt_dump(struct fdt_header *hdr);
Wedson Almeida Filhofdf4afc2018-07-19 15:45:21 +010017bool fdt_root_node(struct fdt_node *node, const struct fdt_header *hdr);
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +010018bool fdt_find_child(struct fdt_node *node, const char *child);
Wedson Almeida Filho87009642018-07-02 10:20:07 +010019bool fdt_first_child(struct fdt_node *node, const char **child_name);
20bool fdt_next_sibling(struct fdt_node *node, const char **sibling_name);
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +010021bool fdt_read_property(const struct fdt_node *node, const char *name,
22 const char **buf, uint32_t *size);
23
Andrew Scull4f170f52018-07-19 12:58:20 +010024void fdt_add_mem_reservation(struct fdt_header *hdr, uint64_t addr,
25 uint64_t len);