mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-24 06:24:17 +00:00
cbfs: Allow reading a file from a CBFS given its base addr
Currently we support reading a file from CBFS given the address of the end of the ROM. Sometimes we only know the start of the CBFS. Add a function to find a file given that. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
924e346a66
commit
03d4c298fa
2 changed files with 27 additions and 0 deletions
|
@ -413,6 +413,19 @@ int file_cbfs_find_uncached(ulong end_of_rom, const char *name,
|
|||
return find_uncached(&priv, name, start, node);
|
||||
}
|
||||
|
||||
int file_cbfs_find_uncached_base(ulong base, const char *name,
|
||||
struct cbfs_cachenode *node)
|
||||
{
|
||||
struct cbfs_priv priv;
|
||||
int ret;
|
||||
|
||||
ret = cbfs_load_header_ptr(&priv, base);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return find_uncached(&priv, name, (void *)base, node);
|
||||
}
|
||||
|
||||
const char *file_cbfs_name(const struct cbfs_cachenode *file)
|
||||
{
|
||||
cbfs_s.result = CBFS_SUCCESS;
|
||||
|
|
|
@ -174,6 +174,20 @@ int cbfs_init_mem(ulong base, ulong size, struct cbfs_priv **privp);
|
|||
int file_cbfs_find_uncached(ulong end_of_rom, const char *name,
|
||||
struct cbfs_cachenode *node);
|
||||
|
||||
/**
|
||||
* file_cbfs_find_uncached_base() - Find a file in CBFS given the base address
|
||||
*
|
||||
* Note that @node should be declared by the caller. This design is to avoid
|
||||
* the need for allocation here.
|
||||
*
|
||||
* @base: Points to the base of the CBFS
|
||||
* @name: The name to search for
|
||||
* @node: Returns the contents of the node if found (i.e. copied into *node)
|
||||
* @return 0 on success, -ENOENT if not found, -EFAULT on bad header
|
||||
*/
|
||||
int file_cbfs_find_uncached_base(ulong base, const char *name,
|
||||
struct cbfs_cachenode *node);
|
||||
|
||||
/**
|
||||
* file_cbfs_name() - Get the name of a file in CBFS.
|
||||
*
|
||||
|
|
Loading…
Add table
Reference in a new issue