Hi Simon, On Wed, May 13, 2020 at 10:24 PM Simon Glass <s...@chromium.org> wrote: > > 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 <s...@chromium.org> > --- > > fs/cbfs/cbfs.c | 13 +++++++++++++ > include/cbfs.h | 11 +++++++++++ > 2 files changed, 24 insertions(+) > > diff --git a/fs/cbfs/cbfs.c b/fs/cbfs/cbfs.c > index 76613fa871..1603409a8f 100644 > --- a/fs/cbfs/cbfs.c > +++ b/fs/cbfs/cbfs.c > @@ -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, (u8 *)base, node);
(void *)base > +} > + > const char *file_cbfs_name(const struct cbfs_cachenode *file) > { > cbfs_s.result = CBFS_SUCCESS; > diff --git a/include/cbfs.h b/include/cbfs.h > index 4dd3c0795d..b1a8d2cad2 100644 > --- a/include/cbfs.h > +++ b/include/cbfs.h > @@ -173,6 +173,17 @@ 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() - Find a file in CBFS without using the heap file_cbfs_find_uncached_base(), and the description is wrong > + * > + * @base: Points to the base of the CBFS > + * @name: The name to search for > + * @node: Returns the node if found > + * @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. > * Regards, Bin