[PATCH v4 09/27] lmb: allow lmb module to be used in SPL
Ilias Apalodimas
ilias.apalodimas at linaro.org
Tue Aug 27 08:25:40 CEST 2024
On Mon, 26 Aug 2024 at 15:00, Sughosh Ganu <sughosh.ganu at 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 at linaro.org>
> Reviewed-by: Simon Glass <sjg at 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 at linaro.org>
More information about the U-Boot
mailing list