mirror of
https://github.com/u-boot/u-boot.git
synced 2025-05-08 19:11:53 +00:00
binman: Add a library to access binman entries
SPL and TPL can access information about binman entries using link-time symbols but this is not available in U-Boot proper. Of course it could be made available, but the intention is to just read the device tree. Add support for this, so that U-Boot can locate entries. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
553cb06887
commit
3c10dc95bd
5 changed files with 114 additions and 0 deletions
45
include/binman.h
Normal file
45
include/binman.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
/* SPDX-License-Identifier: Intel */
|
||||
/*
|
||||
* Access to binman information at runtime
|
||||
*
|
||||
* Copyright 2019 Google LLC
|
||||
* Written by Simon Glass <sjg@chromium.org>
|
||||
*/
|
||||
|
||||
#ifndef _BINMAN_H_
|
||||
#define _BINMAN_H_
|
||||
|
||||
/**
|
||||
*struct binman_entry - information about a binman entry
|
||||
*
|
||||
* @image_pos: Position of entry in the image
|
||||
* @size: Size of entry
|
||||
*/
|
||||
struct binman_entry {
|
||||
u32 image_pos;
|
||||
u32 size;
|
||||
};
|
||||
|
||||
/**
|
||||
* binman_entry_find() - Find a binman symbol
|
||||
*
|
||||
* This searches the binman information in the device tree for a symbol of the
|
||||
* given name
|
||||
*
|
||||
* @name: Path to entry to examine (e.g. "/read-only/u-boot")
|
||||
* @entry: Returns information about the entry
|
||||
* @return 0 if OK, -ENOENT if the path is not found, other -ve value if the
|
||||
* binman information is invalid (missing image-pos or size)
|
||||
*/
|
||||
int binman_entry_find(const char *name, struct binman_entry *entry);
|
||||
|
||||
/**
|
||||
* binman_init() - Set up the binman symbol information
|
||||
*
|
||||
* This locates the binary symbol information in the device tree ready for use
|
||||
*
|
||||
* @return 0 if OK, -ENOMEM if out of memory, -EINVAL if there is no binman node
|
||||
*/
|
||||
int binman_init(void);
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue