[U-Boot] [U-Boot,v2,04/23] spl: Set up the bloblist in SPL

Simon Glass sjg at chromium.org
Fri Nov 16 00:07:59 UTC 2018


Hi Tom,

On 9 November 2018 at 10:43, Tom Rini <trini at konsulko.com> wrote:
> On Tue, Oct 02, 2018 at 05:22:34AM -0600, Simon Glass wrote:
>> The bloblist is normally set up in SPL ready for use by U-Boot. Add
>> a simple implementation of this to the common SPL code.
>>
>> Signed-off-by: Simon Glass <sjg at chromium.org>
>> ---
>>
>> Changes in v2: None
>>
>>  common/spl/spl.c | 18 ++++++++++++++++--
>>  include/spl.h    | 27 +++++++++++++++++++++++++++
>>  2 files changed, 43 insertions(+), 2 deletions(-)
>>
>> diff --git a/common/spl/spl.c b/common/spl/spl.c
>> index b917624e61d..2ca900ae9ed 100644
>> --- a/common/spl/spl.c
>> +++ b/common/spl/spl.c
>> @@ -7,6 +7,7 @@
>>   */
>>
>>  #include <common.h>
>> +#include <bloblist.h>
>>  #include <binman_sym.h>
>>  #include <dm.h>
>>  #include <spl.h>
>> @@ -345,6 +346,14 @@ static int spl_common_init(bool setup_malloc)
>>               return ret;
>>       }
>>  #endif
>> +     if (CONFIG_IS_ENABLED(BLOBLIST)) {
>> +             ret = bloblist_init();
>> +             if (ret) {
>> +                     debug("%s: Failed to set up bloblist: ret=%d\n",
>> +                           __func__, ret);
>> +                     return ret;
>> +             }
>> +     }
>>       if (CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)) {
>>               ret = fdtdec_setup();
>>               if (ret) {
>> @@ -483,6 +492,7 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
>>               BOOT_DEVICE_NONE,
>>       };
>>       struct spl_image_info spl_image;
>> +     int ret;
>>
>>       debug(">>spl:board_init_r()\n");
>>
>> @@ -529,6 +539,12 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
>>       }
>>
>>       spl_perform_fixups(&spl_image);
>> +     if (CONFIG_IS_ENABLED(BLOBLIST)) {
>> +             ret = bloblist_finish();
>> +             if (ret)
>> +                     printf("Warning: Failed to finish bloblist (ret=%d)\n",
>> +                            ret);
>> +     }
>>
>>  #ifdef CONFIG_CPU_V7M
>>       spl_image.entry_point |= 0x1;
>> @@ -558,8 +574,6 @@ void board_init_r(gd_t *dummy1, ulong dummy2)
>>             gd->malloc_ptr / 1024);
>>  #endif
>>  #ifdef CONFIG_BOOTSTAGE_STASH
>> -     int ret;
>> -
>>       bootstage_mark_name(BOOTSTAGE_ID_END_SPL, "end_spl");
>>       ret = bootstage_stash((void *)CONFIG_BOOTSTAGE_STASH_ADDR,
>>                             CONFIG_BOOTSTAGE_STASH_SIZE);
>
> I think we'll need a __maybe_unused on ret above for !BOOTSTAGE_STASH &&
> !BLOBLIST.
>

The code for BLOBLIST uses if() rather than #if so it seems OK:

if (CONFIG_IS_ENABLED(BLOBLIST)) {

Regards,
Simon


More information about the U-Boot mailing list