[PATCH v2 2/2] mkimage: Add support for bundling TEE in mkimage -f auto

Marek Vasut marek.vasut at mailbox.org
Tue Nov 25 16:03:11 CET 2025


On 11/25/25 12:37 PM, Quentin Schulz wrote:

Hello Quentin,

>> +++ b/doc/mkimage.1
>> @@ -251,6 +251,18 @@ Append TFA BL31 file to the image.
>>   .B \-\-tfa-bl31-addr
>>   Set TFA BL31 file load and entry point address.
>>   .
>> +.TP
>> +.B \-z
>> +.TQ
>> +.B \-\-tee-file
>> +Append TEE file to the image.
> 
> Please specify which format is supported here if only select ones are.
> 
>> +.
>> +.TP
>> +.B \-Z
>> +.TQ
>> +.B \-\-tee-addr
>> +Set TEE file load and entry point address, in hexadecimal.
> 
> s/address/addresses/ ?

This is a single address here, so no plural.

> [...]
>> @@ -239,3 +251,42 @@ def test_fit_auto_signed(ubman):
>>       generate_and_check_fit_image(' -fauto-conf' + b_args + s_args + 
>> " " + fit_file,
>>                                    scfgs=True, bl31present=True,
>>                                    key_name=key_name, 
>> sign_algo=sign_algo)
>> +
>> +    # Run the same tests as 1/2/3 above, but this time with TEE
>> +    # options -z tee.bin -Z 0x56780000 to cover both mkimage with
>> +    # and without TEE use cases.
>> +    b_args = " -d" + kernel_file + " -b" + dt1_file + " -b" + 
>> dt2_file + " -z" + tee_file + " -Z 0x56780000"
>> +
> 
> General remark but using f-string may improve readability:
> 
> b_args = f'-d {kernel_file} -b {dt1_file} -b {dt2_file} -z {tee_file} -Z 
> 0x56780000'
> 
> [...]
> 
>> @@ -473,10 +504,20 @@ static void fit_write_configs(struct 
>> image_tool_params *params, char *fdt)
>>           len = strlen(str);
>>           fdt_property_string(fdt, typename, str);
>> -        if (params->fit_tfa_bl31) {
>> +        if (params->fit_tfa_bl31 && params->fit_tee) {
>> +            snprintf(str, sizeof(str), "%s-1." FIT_TFA_BL31_PROP 
>> "-1." FIT_TEE_PROP "-1", typename);
>> +            str[len] = 0;
>> +            len += strlen(FIT_TFA_BL31_PROP "-1") + 1;
>> +            str[len] = 0;
>> +            len += strlen(FIT_TEE_PROP "-1") + 1;
>> +        } else if (params->fit_tfa_bl31) {
>>               snprintf(str, sizeof(str), "%s-1." FIT_TFA_BL31_PROP 
>> "-1", typename);
>>               str[len] = 0;
>>               len += strlen(FIT_TFA_BL31_PROP "-1") + 1;
>> +        } else if (params->fit_tee) {
>> +            snprintf(str, sizeof(str), "%s-1." FIT_TEE_PROP "-1", 
>> typename);
>> +            str[len] = 0;
>> +            len += strlen(FIT_TEE_PROP "-1") + 1;
> 
> It actually took me a while to figure out that we are reusing len from 
> outside of the if block because the loadables property starts with 
> kernel-1.
> 
> I'm wondering if it would make it more readable to do the following
> 
> if (params->fit_tfa_bl31) {
>      snprintf(&str[len + 1], sizeof(str) - (len + 1), FIT_TFA_BL31_PROP 
> "-1");
>      len += strlen(&str[len + 1]) + 1;
> }
> 
> if (params->fit_tee) {
>      snprintf(&str[len + 1], sizeof(str) - (len + 1), FIT_TEE_PROP "-1");
>      len += strlen(&str[len + 1]) + 1;
> }
> 
> (NOT TESTED!)

Works. and this is much better than the current code, thanks !


More information about the U-Boot mailing list