[PATCH 3/8] spl: atf: provide a bl2_plat_get_bl31_params_default()

Michal Simek michal.simek at xilinx.com
Wed Nov 18 15:24:07 CET 2020



On 18. 11. 20 15:23, Michal Simek wrote:
> 
> 
> On 16. 11. 20 22:47, Michael Walle wrote:
>> Move the actual implementation of the bl2_plat_get_bl31_params() to its
>> own function. The weak function will just call the default
>> implementation. This has the advantage that board code can still call
>> the original implementation if it just want to modify minor things.
>>
>> Signed-off-by: Michael Walle <michael at walle.cc>
>> ---
>>  common/spl/spl_atf.c | 14 +++++++++++---
>>  include/spl.h        | 35 +++++++++++++++++++++++++++--------
>>  2 files changed, 38 insertions(+), 11 deletions(-)
>>
>> diff --git a/common/spl/spl_atf.c b/common/spl/spl_atf.c
>> index df0a198d55..63af6a6207 100644
>> --- a/common/spl/spl_atf.c
>> +++ b/common/spl/spl_atf.c
>> @@ -18,9 +18,9 @@
>>  #include <spl.h>
>>  #include <asm/cache.h>
>>  
>> -__weak struct bl31_params *bl2_plat_get_bl31_params(uintptr_t bl32_entry,
>> -						    uintptr_t bl33_entry,
>> -						    uintptr_t fdt_addr)
>> +struct bl31_params *bl2_plat_get_bl31_params_default(uintptr_t bl32_entry,
>> +						     uintptr_t bl33_entry,
>> +						     uintptr_t fdt_addr)
>>  {
>>  	static struct bl2_to_bl31_params_mem bl31_params_mem;
>>  	struct bl31_params *bl2_to_bl31_params;
>> @@ -77,6 +77,14 @@ __weak struct bl31_params *bl2_plat_get_bl31_params(uintptr_t bl32_entry,
>>  	return bl2_to_bl31_params;
>>  }
>>  
>> +__weak struct bl31_params *bl2_plat_get_bl31_params(uintptr_t bl32_entry,
>> +						    uintptr_t bl33_entry,
>> +						    uintptr_t fdt_addr)
>> +{
>> +	return bl2_plat_get_bl31_params_default(bl32_entry, bl33_entry,
>> +						fdt_addr);
>> +}
>> +
>>  static inline void raw_write_daif(unsigned int daif)
>>  {
>>  	__asm__ __volatile__("msr DAIF, %0\n\t" : : "r" (daif) : "memory");
>> diff --git a/include/spl.h b/include/spl.h
>> index b72dfc7e3d..dccf515511 100644
>> --- a/include/spl.h
>> +++ b/include/spl.h
>> @@ -526,18 +526,17 @@ int spl_ymodem_load_image(struct spl_image_info *spl_image,
>>  void spl_invoke_atf(struct spl_image_info *spl_image);
>>  
>>  /**
>> - * bl2_plat_get_bl31_params() - prepare params for bl31.
>> + * bl2_plat_get_bl31_params() - return params for bl31.
>>   * @bl32_entry	address of BL32 executable (secure)
>>   * @bl33_entry	address of BL33 executable (non secure)
>>   * @fdt_addr	address of Flat Device Tree
>>   *
>> - * This function assigns a pointer to the memory that the platform has kept
>> - * aside to pass platform specific and trusted firmware related information
>> - * to BL31. This memory is allocated by allocating memory to
>> - * bl2_to_bl31_params_mem structure which is a superset of all the
>> - * structure whose information is passed to BL31
>> - * NOTE: This function should be called only once and should be done
>> - * before generating params to BL31
>> + * This is a weak function which might be overridden by the board code. By
>> + * default it will just call bl2_plat_get_bl31_params_default().
>> + *
>> + * If you just want to manipulate or add some parameters, you can override
>> + * this function, call bl2_plat_get_bl31_params_default and operate on the
>> + * returned bl31 params.
>>   *
>>   * @return bl31 params structure pointer
>>   */
>> @@ -545,6 +544,26 @@ struct bl31_params *bl2_plat_get_bl31_params(uintptr_t bl32_entry,
>>  					     uintptr_t bl33_entry,
>>  					     uintptr_t fdt_addr);
>>  
>> +/**
>> + * bl2_plat_get_bl31_params_default() - prepare params for bl31.
>> + * @bl32_entry	address of BL32 executable (secure)
>> + * @bl33_entry	address of BL33 executable (non secure)
>> + * @fdt_addr	address of Flat Device Tree
>> + *
>> + * This is the default implementation of bl2_plat_get_bl31_params(). It assigns
>> + * a pointer to the memory that the platform has kept aside to pass platform
>> + * specific and trusted firmware related information to BL31. This memory is
>> + * allocated by allocating memory to bl2_to_bl31_params_mem structure which is
>> + * a superset of all the structure whose information is passed to BL31
>> + *
>> + * NOTE: The memory is statically allocated, thus this function should be
>> + * called only once. All subsequent calls will overwrite any changes.
>> + *
>> + * @return bl31 params structure pointer
>> + */
>> +struct bl31_params *bl2_plat_get_bl31_params_default(uintptr_t bl32_entry,
>> +						     uintptr_t bl33_entry,
>> +						     uintptr_t fdt_addr);
>>  /**
>>   * spl_optee_entry - entry function for optee
>>   *
>>
> 
> Last two functions. This is not kernel-doc format. Please fix it.
> include/spl.h:529: info: Scanning doc for bl2_plat_get_bl31_params
> include/spl.h:545: warning: Function parameter or member 'bl32_entry'
> not described in 'bl2_plat_get_bl31_params'
> include/spl.h:545: warning: Function parameter or member 'bl33_entry'
> not described in 'bl2_plat_get_bl31_params'
> include/spl.h:545: warning: Function parameter or member 'fdt_addr' not
> described in 'bl2_plat_get_bl31_params'
> include/spl.h:545: warning: No description found for return value of
> 'bl2_plat_get_bl31_params'
> include/spl.h:548: info: Scanning doc for bl2_plat_get_bl31_params_default
> include/spl.h:559: warning: contents before sections
> include/spl.h:566: warning: Function parameter or member 'bl32_entry'
> not described in 'bl2_plat_get_bl31_params_default'
> include/spl.h:566: warning: Function parameter or member 'bl33_entry'
> not described in 'bl2_plat_get_bl31_params_default'
> include/spl.h:566: warning: Function parameter or member 'fdt_addr' not
> described in 'bl2_plat_get_bl31_params_default'
> include/spl.h:566: warning: No description found for return value of
> 'bl2_plat_get_bl31_params_default'
> 
> 
> ./scripts/kernel-doc -v -man  common/spl/spl_atf.c > /dev/null

This one sorry.
./scripts/kernel-doc -v -man  include/spl.h > /dev/null

M


More information about the U-Boot mailing list