Message ID | 20240826115940.3233167-10-sughosh.ganu@linaro.org |
---|---|
State | Accepted |
Commit | 6942bdb42aefdc7e5bdf17624408e49df725fa45 |
Headers | show |
Series | Make LMB memory map global and persistent | expand |
On Mon, 26 Aug 2024 at 15:00, Sughosh Ganu <sughosh.ganu@linaro.org> wrote: > > With the introduction of separate config symbols for the SPL phase of > U-Boot, the condition checks need to be tweaked so that platforms that > enable the LMB module in SPL are also able to call the LMB API's. Use > the appropriate condition checks to achieve this. > > Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org> > Reviewed-by: Simon Glass <sjg@chromium.org> > --- > Changes since V3: None > > board/xilinx/common/board.c | 2 +- > boot/bootm.c | 4 ++-- > boot/image-board.c | 2 +- > fs/fs.c | 4 ++-- > lib/Makefile | 2 +- > net/tftp.c | 40 ++++++++++++++++++------------------- > net/wget.c | 4 ++-- > 7 files changed, 29 insertions(+), 29 deletions(-) > > diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c > index 4056884400..f04c92a70f 100644 > --- a/board/xilinx/common/board.c > +++ b/board/xilinx/common/board.c > @@ -665,7 +665,7 @@ int embedded_dtb_select(void) > } > #endif > > -#if defined(CONFIG_LMB) > +#if IS_ENABLED(CONFIG_LMB) > > #ifndef MMU_SECTION_SIZE > #define MMU_SECTION_SIZE (1 * 1024 * 1024) > diff --git a/boot/bootm.c b/boot/bootm.c > index d47feddb9b..e244b9b410 100644 > --- a/boot/bootm.c > +++ b/boot/bootm.c > @@ -239,7 +239,7 @@ static int boot_get_kernel(const char *addr_fit, struct bootm_headers *images, > return 0; > } > > -#ifdef CONFIG_LMB > +#if CONFIG_IS_ENABLED(LMB) > static void boot_start_lmb(void) > { > phys_addr_t mem_start; > @@ -1036,7 +1036,7 @@ int bootm_run_states(struct bootm_info *bmi, int states) > } > } > #endif > -#if CONFIG_IS_ENABLED(OF_LIBFDT) && defined(CONFIG_LMB) > +#if CONFIG_IS_ENABLED(OF_LIBFDT) && CONFIG_IS_ENABLED(LMB) > if (!ret && (states & BOOTM_STATE_FDT)) { > boot_fdt_add_mem_rsv_regions(images->ft_addr); > ret = boot_relocate_fdt(&images->ft_addr, &images->ft_len); > diff --git a/boot/image-board.c b/boot/image-board.c > index 1f8c1ac69f..99ee7968ba 100644 > --- a/boot/image-board.c > +++ b/boot/image-board.c > @@ -883,7 +883,7 @@ int image_setup_linux(struct bootm_headers *images) > int ret; > > /* This function cannot be called without lmb support */ > - if (!IS_ENABLED(CONFIG_LMB)) > + if (!CONFIG_IS_ENABLED(LMB)) > return -EFAULT; > if (CONFIG_IS_ENABLED(OF_LIBFDT)) > boot_fdt_add_mem_rsv_regions(*of_flat_tree); > diff --git a/fs/fs.c b/fs/fs.c > index 2c835eef86..3fb00590be 100644 > --- a/fs/fs.c > +++ b/fs/fs.c > @@ -526,7 +526,7 @@ int fs_size(const char *filename, loff_t *size) > return ret; > } > > -#ifdef CONFIG_LMB > +#if CONFIG_IS_ENABLED(LMB) > /* Check if a file may be read to the given address */ > static int fs_read_lmb_check(const char *filename, ulong addr, loff_t offset, > loff_t len, struct fstype_info *info) > @@ -567,7 +567,7 @@ static int _fs_read(const char *filename, ulong addr, loff_t offset, loff_t len, > void *buf; > int ret; > > -#ifdef CONFIG_LMB > +#if CONFIG_IS_ENABLED(LMB) > if (do_lmb_check) { > ret = fs_read_lmb_check(filename, addr, offset, len, info); > if (ret) > diff --git a/lib/Makefile b/lib/Makefile > index 81b503ab52..d300249f57 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -118,7 +118,7 @@ obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdtdec.o fdtdec_common.o > obj-y += hang.o > obj-y += linux_compat.o > obj-y += linux_string.o > -obj-$(CONFIG_LMB) += lmb.o > +obj-$(CONFIG_$(SPL_TPL_)LMB) += lmb.o > obj-y += membuff.o > obj-$(CONFIG_REGEX) += slre.o > obj-y += string.o > diff --git a/net/tftp.c b/net/tftp.c > index c0a6210b9d..99b2ab9fca 100644 > --- a/net/tftp.c > +++ b/net/tftp.c > @@ -82,9 +82,7 @@ static ulong tftp_block_wrap; > static ulong tftp_block_wrap_offset; > static int tftp_state; > static ulong tftp_load_addr; > -#ifdef CONFIG_LMB > static ulong tftp_load_size; > -#endif > #ifdef CONFIG_TFTP_TSIZE > /* The file size reported by the server */ > static int tftp_tsize; > @@ -160,19 +158,20 @@ static inline int store_block(int block, uchar *src, unsigned int len) > ulong store_addr = tftp_load_addr + offset; > void *ptr; > > -#ifdef CONFIG_LMB > - ulong end_addr = tftp_load_addr + tftp_load_size; > + if (CONFIG_IS_ENABLED(LMB)) { > + ulong end_addr = tftp_load_addr + tftp_load_size; > > - if (!end_addr) > - end_addr = ULONG_MAX; > + if (!end_addr) > + end_addr = ULONG_MAX; > > - if (store_addr < tftp_load_addr || > - store_addr + len > end_addr) { > - puts("\nTFTP error: "); > - puts("trying to overwrite reserved memory...\n"); > - return -1; > + if (store_addr < tftp_load_addr || > + store_addr + len > end_addr) { > + puts("\nTFTP error: "); > + puts("trying to overwrite reserved memory...\n"); > + return -1; > + } > } > -#endif > + > ptr = map_sysmem(store_addr, len); > memcpy(ptr, src, len); > unmap_sysmem(ptr); > @@ -716,17 +715,18 @@ static void tftp_timeout_handler(void) > /* Initialize tftp_load_addr and tftp_load_size from image_load_addr and lmb */ > static int tftp_init_load_addr(void) > { > -#ifdef CONFIG_LMB > - phys_size_t max_size; > + if (CONFIG_IS_ENABLED(LMB)) { > + phys_size_t max_size; > > - lmb_init_and_reserve(gd->bd, (void *)gd->fdt_blob); > + lmb_init_and_reserve(gd->bd, (void *)gd->fdt_blob); > > - max_size = lmb_get_free_size(image_load_addr); > - if (!max_size) > - return -1; > + max_size = lmb_get_free_size(image_load_addr); > + if (!max_size) > + return -1; > + > + tftp_load_size = max_size; > + } > > - tftp_load_size = max_size; > -#endif > tftp_load_addr = image_load_addr; > return 0; > } > diff --git a/net/wget.c b/net/wget.c > index c1cd8216bc..241465b9b4 100644 > --- a/net/wget.c > +++ b/net/wget.c > @@ -98,7 +98,7 @@ static inline int store_block(uchar *src, unsigned int offset, unsigned int len) > ulong newsize = offset + len; > uchar *ptr; > > - if (IS_ENABLED(CONFIG_LMB)) { > + if (CONFIG_IS_ENABLED(LMB)) { > ulong end_addr = image_load_addr + wget_load_size; > > if (!end_addr) > @@ -495,7 +495,7 @@ void wget_start(void) > debug_cond(DEBUG_WGET, > "\nwget:Load address: 0x%lx\nLoading: *\b", image_load_addr); > > - if (IS_ENABLED(CONFIG_LMB)) { > + if (CONFIG_IS_ENABLED(LMB)) { > if (wget_init_load_size()) { > printf("\nwget error: "); > printf("trying to overwrite reserved memory...\n"); > -- > 2.34.1 > Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c index 4056884400..f04c92a70f 100644 --- a/board/xilinx/common/board.c +++ b/board/xilinx/common/board.c @@ -665,7 +665,7 @@ int embedded_dtb_select(void) } #endif -#if defined(CONFIG_LMB) +#if IS_ENABLED(CONFIG_LMB) #ifndef MMU_SECTION_SIZE #define MMU_SECTION_SIZE (1 * 1024 * 1024) diff --git a/boot/bootm.c b/boot/bootm.c index d47feddb9b..e244b9b410 100644 --- a/boot/bootm.c +++ b/boot/bootm.c @@ -239,7 +239,7 @@ static int boot_get_kernel(const char *addr_fit, struct bootm_headers *images, return 0; } -#ifdef CONFIG_LMB +#if CONFIG_IS_ENABLED(LMB) static void boot_start_lmb(void) { phys_addr_t mem_start; @@ -1036,7 +1036,7 @@ int bootm_run_states(struct bootm_info *bmi, int states) } } #endif -#if CONFIG_IS_ENABLED(OF_LIBFDT) && defined(CONFIG_LMB) +#if CONFIG_IS_ENABLED(OF_LIBFDT) && CONFIG_IS_ENABLED(LMB) if (!ret && (states & BOOTM_STATE_FDT)) { boot_fdt_add_mem_rsv_regions(images->ft_addr); ret = boot_relocate_fdt(&images->ft_addr, &images->ft_len); diff --git a/boot/image-board.c b/boot/image-board.c index 1f8c1ac69f..99ee7968ba 100644 --- a/boot/image-board.c +++ b/boot/image-board.c @@ -883,7 +883,7 @@ int image_setup_linux(struct bootm_headers *images) int ret; /* This function cannot be called without lmb support */ - if (!IS_ENABLED(CONFIG_LMB)) + if (!CONFIG_IS_ENABLED(LMB)) return -EFAULT; if (CONFIG_IS_ENABLED(OF_LIBFDT)) boot_fdt_add_mem_rsv_regions(*of_flat_tree); diff --git a/fs/fs.c b/fs/fs.c index 2c835eef86..3fb00590be 100644 --- a/fs/fs.c +++ b/fs/fs.c @@ -526,7 +526,7 @@ int fs_size(const char *filename, loff_t *size) return ret; } -#ifdef CONFIG_LMB +#if CONFIG_IS_ENABLED(LMB) /* Check if a file may be read to the given address */ static int fs_read_lmb_check(const char *filename, ulong addr, loff_t offset, loff_t len, struct fstype_info *info) @@ -567,7 +567,7 @@ static int _fs_read(const char *filename, ulong addr, loff_t offset, loff_t len, void *buf; int ret; -#ifdef CONFIG_LMB +#if CONFIG_IS_ENABLED(LMB) if (do_lmb_check) { ret = fs_read_lmb_check(filename, addr, offset, len, info); if (ret) diff --git a/lib/Makefile b/lib/Makefile index 81b503ab52..d300249f57 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -118,7 +118,7 @@ obj-$(CONFIG_$(SPL_TPL_)OF_LIBFDT) += fdtdec.o fdtdec_common.o obj-y += hang.o obj-y += linux_compat.o obj-y += linux_string.o -obj-$(CONFIG_LMB) += lmb.o +obj-$(CONFIG_$(SPL_TPL_)LMB) += lmb.o obj-y += membuff.o obj-$(CONFIG_REGEX) += slre.o obj-y += string.o diff --git a/net/tftp.c b/net/tftp.c index c0a6210b9d..99b2ab9fca 100644 --- a/net/tftp.c +++ b/net/tftp.c @@ -82,9 +82,7 @@ static ulong tftp_block_wrap; static ulong tftp_block_wrap_offset; static int tftp_state; static ulong tftp_load_addr; -#ifdef CONFIG_LMB static ulong tftp_load_size; -#endif #ifdef CONFIG_TFTP_TSIZE /* The file size reported by the server */ static int tftp_tsize; @@ -160,19 +158,20 @@ static inline int store_block(int block, uchar *src, unsigned int len) ulong store_addr = tftp_load_addr + offset; void *ptr; -#ifdef CONFIG_LMB - ulong end_addr = tftp_load_addr + tftp_load_size; + if (CONFIG_IS_ENABLED(LMB)) { + ulong end_addr = tftp_load_addr + tftp_load_size; - if (!end_addr) - end_addr = ULONG_MAX; + if (!end_addr) + end_addr = ULONG_MAX; - if (store_addr < tftp_load_addr || - store_addr + len > end_addr) { - puts("\nTFTP error: "); - puts("trying to overwrite reserved memory...\n"); - return -1; + if (store_addr < tftp_load_addr || + store_addr + len > end_addr) { + puts("\nTFTP error: "); + puts("trying to overwrite reserved memory...\n"); + return -1; + } } -#endif + ptr = map_sysmem(store_addr, len); memcpy(ptr, src, len); unmap_sysmem(ptr); @@ -716,17 +715,18 @@ static void tftp_timeout_handler(void) /* Initialize tftp_load_addr and tftp_load_size from image_load_addr and lmb */ static int tftp_init_load_addr(void) { -#ifdef CONFIG_LMB - phys_size_t max_size; + if (CONFIG_IS_ENABLED(LMB)) { + phys_size_t max_size; - lmb_init_and_reserve(gd->bd, (void *)gd->fdt_blob); + lmb_init_and_reserve(gd->bd, (void *)gd->fdt_blob); - max_size = lmb_get_free_size(image_load_addr); - if (!max_size) - return -1; + max_size = lmb_get_free_size(image_load_addr); + if (!max_size) + return -1; + + tftp_load_size = max_size; + } - tftp_load_size = max_size; -#endif tftp_load_addr = image_load_addr; return 0; } diff --git a/net/wget.c b/net/wget.c index c1cd8216bc..241465b9b4 100644 --- a/net/wget.c +++ b/net/wget.c @@ -98,7 +98,7 @@ static inline int store_block(uchar *src, unsigned int offset, unsigned int len) ulong newsize = offset + len; uchar *ptr; - if (IS_ENABLED(CONFIG_LMB)) { + if (CONFIG_IS_ENABLED(LMB)) { ulong end_addr = image_load_addr + wget_load_size; if (!end_addr) @@ -495,7 +495,7 @@ void wget_start(void) debug_cond(DEBUG_WGET, "\nwget:Load address: 0x%lx\nLoading: *\b", image_load_addr); - if (IS_ENABLED(CONFIG_LMB)) { + if (CONFIG_IS_ENABLED(LMB)) { if (wget_init_load_size()) { printf("\nwget error: "); printf("trying to overwrite reserved memory...\n");