mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-16 01:44:34 +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);
|
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)
|
const char *file_cbfs_name(const struct cbfs_cachenode *file)
|
||||||
{
|
{
|
||||||
cbfs_s.result = CBFS_SUCCESS;
|
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,
|
int file_cbfs_find_uncached(ulong end_of_rom, const char *name,
|
||||||
struct cbfs_cachenode *node);
|
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.
|
* file_cbfs_name() - Get the name of a file in CBFS.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue