SmartAudio/lichee/brandy/u-boot-2014.07/lib/libufdt/dtbo_img.h

47 lines
2.2 KiB
C
Raw Normal View History

2018-12-13 10:48:25 +00:00
#ifndef __DTBO_IMG_H__
#define __DTBO_IMG_H__
#define DT_TABLE_MAGIC 0xd7b7ab1e
struct dt_table_header {
uint32_t magic; /*DT_TABLE_MAGIC*/
uint32_t total_size; /*includes dt_table_header + all dt_table_entry*/
/*and all dtb/dtbo*/
uint32_t header_size; /*sizeof(dt_table_header)*/
uint32_t dt_entry_size; /*sizeof(dt_table_entry)*/
uint32_t dt_entry_count; /*number of dt_table_entry*/
uint32_t dt_entries_offset; /*offset to the first dt_table_entry*/
/*from head of dt_table_header*/
uint32_t page_size; /*flash page size we assume*/
uint32_t version; /*must be zero*/
};
struct dt_table_entry {
uint32_t dt_size;
uint32_t dt_offset; /*offset from head of dt_table_header*/
uint32_t id; /*optional, must be zero if unused*/
uint32_t rev; /*optional, must be zero if unused*/
uint32_t custom[4]; /*optional, must be zero if unused*/
};
#define dt_table_header_get_header(dtboimg, field)\
(fdt32_to_cpu(((const struct dt_table_header *)(dtboimg))->field))
#define dt_table_header_magic(dtboimg) (dt_table_header_get_header(dtboimg, magic))
#define dt_table_header_total_size(dtboimg) (dt_table_header_get_header(dtboimg, total_size))
#define dt_table_header_header_size(dtboimg) (dt_table_header_get_header(dtboimg, header_size))
#define dt_table_header_dt_entry_size(dtboimg) (dt_table_header_get_header(dtboimg, dt_entry_size))
#define dt_table_header_dt_entry_count(dtboimg) (dt_table_header_get_header(dtboimg, dt_entry_count))
#define dt_table_header_dt_entries_offset(dtboimg) (dt_table_header_get_header(dtboimg, dt_entries_offset))
#define dt_table_entry_get_header(dtboimg, field)\
(fdt32_to_cpu(((const struct dt_table_entry *)(dtboimg))->field))
#define dt_table_entry_dt_size(dtboimg) (dt_table_entry_get_header(dtboimg, dt_size))
#define dt_table_entry_dt_offset(dtboimg) (dt_table_entry_get_header(dtboimg, dt_offset))
#define dt_table_entry_id(dtboimg) (dt_table_entry_get_header(dtboimg, id))
#define dt_table_entry_rev(dtboimg) (dt_table_entry_get_header(dtboimg, rev))
#define dt_table_entry_custom(dtboimg, n) (dt_table_entry_get_header(dtboimg, custom[n]))
#endif