Re: [PATCH 04/24] spl: Allow disabling binman symbols in SPL
On 08/02/2022 21:49, Simon Glass wrote: > When CONFIG_SPL_FIT is enabled we do not access U-Boot directly in > the image, since it is embedded in a FIT which is parsed at runtime. > > Provide a CONFIG option to drop the symbols in this case. > > Signed-off-by: Simon Glass > --- > > common/spl/Kconfig | 24 > common/spl/spl.c | 4 > 2 files changed, 28 insertions(+) > Applied to u-boot-dm, thanks!
Re: [PATCH 04/24] spl: Allow disabling binman symbols in SPL
On 08/02/2022 21:49, Simon Glass wrote: > When CONFIG_SPL_FIT is enabled we do not access U-Boot directly in > the image, since it is embedded in a FIT which is parsed at runtime. > > Provide a CONFIG option to drop the symbols in this case. > > Signed-off-by: Simon Glass > --- > > common/spl/Kconfig | 24 > common/spl/spl.c | 4 > 2 files changed, 28 insertions(+) > > diff --git a/common/spl/Kconfig b/common/spl/Kconfig > index e0d0a6f77b..9418d37b2e 100644 > --- a/common/spl/Kconfig > +++ b/common/spl/Kconfig > @@ -101,6 +101,18 @@ config SPL_SHOW_ERRORS > > This adds a small amount to SPL code size, perhaps 100 bytes. > > +config SPL_BINMAN_SYMBOLS > + bool "Declare binman symbols in SPL" > + depends on SPL_FRAMEWORK && BINMAN > + default y > + help > + This enables use of symbols in SPL which refer to U-Boot, enabling SPL > + to obtain the location of U-Boot simply by calling spl_get_image_pos() > + and spl_get_image_size(). > + > + For this to work, you must have a U-Boot image in the binman image, so > + binman can update SPL with the location of it. > + > menu "PowerPC and LayerScape SPL Boot options" > > config SPL_NAND_BOOT > @@ -1321,6 +1333,18 @@ config TPL_SIZE_LIMIT > Specifies the maximum length of the U-Boot TPL image. > If this value is zero, it is ignored. > > +config TPL_BINMAN_SYMBOLS > + bool "Declare binman symbols in SPL" SPL -> TPL here and two more in the help text. > + depends on SPL_FRAMEWORK && BINMAN > + default y > + help > + This enables use of symbols in TPL which refer to U-Boot, enabling SPL > + to obtain the location of U-Boot simply by calling spl_get_image_pos() > + and spl_get_image_size(). > + > + For this to work, you must have a U-Boot image in the binman image, so > + binman can update SPL with the location of it. > + > config TPL_FRAMEWORK > bool "Support TPL based upon the common SPL framework" > default y if SPL_FRAMEWORK > diff --git a/common/spl/spl.c b/common/spl/spl.c > index 444907432c..b452d4feeb 100644 > --- a/common/spl/spl.c > +++ b/common/spl/spl.c > @@ -49,9 +49,11 @@ DECLARE_GLOBAL_DATA_PTR; > > u32 *boot_params_ptr = NULL; > > +#if CONFIG_IS_ENABLED(BINMAN_SYMBOLS) > /* See spl.h for information about this */ > binman_sym_declare(ulong, u_boot_any, image_pos); > binman_sym_declare(ulong, u_boot_any, size); > +#endif > > #ifdef CONFIG_TPL > binman_sym_declare(ulong, u_boot_spl, image_pos); > @@ -140,6 +142,7 @@ void spl_fixup_fdt(void *fdt_blob) > #endif > } > > +#if CONFIG_IS_ENABLED(BINMAN_SYMBOLS) > ulong spl_get_image_pos(void) > { > return spl_phase() == PHASE_TPL ? > @@ -153,6 +156,7 @@ ulong spl_get_image_size(void) > binman_sym(ulong, u_boot_spl, size) : > binman_sym(ulong, u_boot_any, size); > } > +#endif /* BINMAN_SYMBOLS */ > > ulong spl_get_image_text_base(void) > {
[PATCH 04/24] spl: Allow disabling binman symbols in SPL
When CONFIG_SPL_FIT is enabled we do not access U-Boot directly in the image, since it is embedded in a FIT which is parsed at runtime. Provide a CONFIG option to drop the symbols in this case. Signed-off-by: Simon Glass --- common/spl/Kconfig | 24 common/spl/spl.c | 4 2 files changed, 28 insertions(+) diff --git a/common/spl/Kconfig b/common/spl/Kconfig index e0d0a6f77b..9418d37b2e 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -101,6 +101,18 @@ config SPL_SHOW_ERRORS This adds a small amount to SPL code size, perhaps 100 bytes. +config SPL_BINMAN_SYMBOLS + bool "Declare binman symbols in SPL" + depends on SPL_FRAMEWORK && BINMAN + default y + help + This enables use of symbols in SPL which refer to U-Boot, enabling SPL + to obtain the location of U-Boot simply by calling spl_get_image_pos() + and spl_get_image_size(). + + For this to work, you must have a U-Boot image in the binman image, so + binman can update SPL with the location of it. + menu "PowerPC and LayerScape SPL Boot options" config SPL_NAND_BOOT @@ -1321,6 +1333,18 @@ config TPL_SIZE_LIMIT Specifies the maximum length of the U-Boot TPL image. If this value is zero, it is ignored. +config TPL_BINMAN_SYMBOLS + bool "Declare binman symbols in SPL" + depends on SPL_FRAMEWORK && BINMAN + default y + help + This enables use of symbols in TPL which refer to U-Boot, enabling SPL + to obtain the location of U-Boot simply by calling spl_get_image_pos() + and spl_get_image_size(). + + For this to work, you must have a U-Boot image in the binman image, so + binman can update SPL with the location of it. + config TPL_FRAMEWORK bool "Support TPL based upon the common SPL framework" default y if SPL_FRAMEWORK diff --git a/common/spl/spl.c b/common/spl/spl.c index 444907432c..b452d4feeb 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -49,9 +49,11 @@ DECLARE_GLOBAL_DATA_PTR; u32 *boot_params_ptr = NULL; +#if CONFIG_IS_ENABLED(BINMAN_SYMBOLS) /* See spl.h for information about this */ binman_sym_declare(ulong, u_boot_any, image_pos); binman_sym_declare(ulong, u_boot_any, size); +#endif #ifdef CONFIG_TPL binman_sym_declare(ulong, u_boot_spl, image_pos); @@ -140,6 +142,7 @@ void spl_fixup_fdt(void *fdt_blob) #endif } +#if CONFIG_IS_ENABLED(BINMAN_SYMBOLS) ulong spl_get_image_pos(void) { return spl_phase() == PHASE_TPL ? @@ -153,6 +156,7 @@ ulong spl_get_image_size(void) binman_sym(ulong, u_boot_spl, size) : binman_sym(ulong, u_boot_any, size); } +#endif /* BINMAN_SYMBOLS */ ulong spl_get_image_text_base(void) { -- 2.35.0.263.gb82422642f-goog