[PATCH v5 20/26] fdt: Drop #ifdefs with MULTI_DTB_FIT
Ilias Apalodimas
ilias.apalodimas at linaro.org
Fri Oct 29 07:55:45 CEST 2021
Hi Simon,
likewise, since this is a pretty big patchset split it of in
refactoring/new code patchsets so we can actually review it.
Thanks
/Ilias
On Mon, Oct 25, 2021 at 06:23:38PM -0600, Simon Glass wrote:
> Refactor the code to drop the #ifdefs for this feature.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> (no changes since v1)
>
> dts/Kconfig | 1 -
> include/asm-generic/global_data.h | 8 ++++++++
> lib/fdtdec.c | 31 +++++++++++--------------------
> 3 files changed, 19 insertions(+), 21 deletions(-)
>
> diff --git a/dts/Kconfig b/dts/Kconfig
> index 20ddc534a61..0f7e3ad7db7 100644
> --- a/dts/Kconfig
> +++ b/dts/Kconfig
> @@ -176,7 +176,6 @@ endchoice
>
> config MULTI_DTB_FIT_UNCOMPRESS_SZ
> hex "Size of memory reserved to uncompress the DTBs"
> - depends on (MULTI_DTB_FIT_GZIP || MULTI_DTB_FIT_LZO)
> default 0x8000
> help
> This is the size of this area where the DTBs are uncompressed.
> diff --git a/include/asm-generic/global_data.h b/include/asm-generic/global_data.h
> index 16fd305a65c..99daa20c765 100644
> --- a/include/asm-generic/global_data.h
> +++ b/include/asm-generic/global_data.h
> @@ -512,6 +512,14 @@ static_assert(sizeof(struct global_data) == GD_SIZE);
> #define gd_acpi_ctx() NULL
> #endif
>
> +#if CONFIG_IS_ENABLED(MULTI_DTB_FIT)
> +#define gd_multi_dtb_fit() gd->multi_dtb_fit
> +#define gd_set_multi_dtb_fit(_dtb) gd->multi_dtb_fit = _dtb
> +#else
> +#define gd_multi_dtb_fit() NULL
> +#define gd_set_multi_dtb_fit(_dtb)
> +#endif
> +
> /**
> * enum gd_flags - global data flags
> *
> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
> index 58ea8f70cfe..15a990e5b98 100644
> --- a/lib/fdtdec.c
> +++ b/lib/fdtdec.c
> @@ -1146,11 +1146,10 @@ int fdtdec_setup_mem_size_base_lowest(void)
> return 0;
> }
>
> -#if CONFIG_IS_ENABLED(MULTI_DTB_FIT)
> -# if CONFIG_IS_ENABLED(MULTI_DTB_FIT_GZIP) ||\
> - CONFIG_IS_ENABLED(MULTI_DTB_FIT_LZO)
> static int uncompress_blob(const void *src, ulong sz_src, void **dstp)
> {
> +#if CONFIG_IS_ENABLED(MULTI_DTB_FIT_GZIP) ||\
> + CONFIG_IS_ENABLED(MULTI_DTB_FIT_LZO)
> size_t sz_out = CONFIG_VAL(MULTI_DTB_FIT_UNCOMPRESS_SZ);
> bool gzip = 0, lzo = 0;
> ulong sz_in = sz_src;
> @@ -1175,11 +1174,11 @@ static int uncompress_blob(const void *src, ulong sz_src, void **dstp)
> return -ENOMEM;
> }
> } else {
> -# if CONFIG_IS_ENABLED(MULTI_DTB_FIT_USER_DEFINED_AREA)
> +# if CONFIG_IS_ENABLED(MULTI_DTB_FIT_USER_DEFINED_AREA)
> dst = (void *)CONFIG_VAL(MULTI_DTB_FIT_USER_DEF_ADDR);
> -# else
> +# else
> return -ENOTSUPP;
> -# endif
> +# endif
> }
>
> if (CONFIG_IS_ENABLED(GZIP) && gzip)
> @@ -1197,16 +1196,12 @@ static int uncompress_blob(const void *src, ulong sz_src, void **dstp)
> return -EBADMSG;
> }
> *dstp = dst;
> - return 0;
> -}
> -# else
> -static int uncompress_blob(const void *src, ulong sz_src, void **dstp)
> -{
> +#else
> + *dstp = (void *)src;
> *dstp = (void *)src;
> +#endif
> return 0;
> }
> -# endif
> -#endif
>
> #if defined(CONFIG_OF_BOARD) || defined(CONFIG_OF_SEPARATE)
> /*
> @@ -1603,7 +1598,6 @@ __weak int fdtdec_board_setup(const void *fdt_blob)
> */
> static void setup_multi_dtb_fit(void)
> {
> -# if CONFIG_IS_ENABLED(MULTI_DTB_FIT)
> void *blob;
>
> /*
> @@ -1621,10 +1615,9 @@ static void setup_multi_dtb_fit(void)
> */
> blob = locate_dtb_in_fit(gd->fdt_blob);
> if (blob) {
> - gd->multi_dtb_fit = gd->fdt_blob;
> + gd_set_multi_dtb_fit(gd->fdt_blob);
> gd->fdt_blob = blob;
> }
> -#endif /* # MULTI_DTB_FIT */
> }
>
> int fdtdec_setup(void)
> @@ -1659,7 +1652,6 @@ int fdtdec_setup(void)
> return ret;
> }
>
> -#if CONFIG_IS_ENABLED(MULTI_DTB_FIT)
> int fdtdec_resetup(int *rescan)
> {
> void *fdt_blob;
> @@ -1670,8 +1662,8 @@ int fdtdec_resetup(int *rescan)
> * FIT image stillpresent there. Save the time and space
> * required to uncompress it again.
> */
> - if (gd->multi_dtb_fit) {
> - fdt_blob = locate_dtb_in_fit(gd->multi_dtb_fit);
> + if (gd_multi_dtb_fit()) {
> + fdt_blob = locate_dtb_in_fit(gd_multi_dtb_fit());
>
> if (fdt_blob == gd->fdt_blob) {
> /*
> @@ -1695,7 +1687,6 @@ int fdtdec_resetup(int *rescan)
> *rescan = 0;
> return 0;
> }
> -#endif
>
> int fdtdec_decode_ram_size(const void *blob, const char *area, int board_id,
> phys_addr_t *basep, phys_size_t *sizep,
> --
> 2.33.0.1079.g6e70778dc9-goog
>
More information about the U-Boot
mailing list