[PATCH 2/2] bootstage: Do not sort records

Jonas Karlman jonas at kwiboo.se
Wed Aug 28 18:15:32 CEST 2024


Hi Simon,

On 2024-08-28 18:01, Simon Glass wrote:
> Hi Jonas,
> 
> On Tue, 6 Aug 2024 at 15:50, Simon Glass <sjg at chromium.org> wrote:
>>
>> Hi Jonas,
>>
>> On Sat, 3 Aug 2024 at 06:42, Jonas Karlman <jonas at kwiboo.se> wrote:
>>>
>>> The timer counter on Rockchip SoCs may be reset in TF-A, this may cause
>>> the bootstage records to be printed out of order and with an incorrect
>>> elapsed time.
>>
>> Eek can we just fix TF-A? That seems like a bug.

TF-A is vendor blob, so we have no control of it.

>>
>>>
>>> Fix this by not sorting the bootstage records.
>>>
>>> Before on a Radxa ZERO 3W (RK3566) board:
>>>
>>>   => bootstage report
>>>   Timer summary in microseconds (12 records):
>>>          Mark    Elapsed  Stage
>>>             0          0  reset
>>>         7,436      7,436  board_init_f
>>>       164,826    157,390  SPL
>>>       375,392    210,566  end phase
>>>       423,909     48,517  board_init_r
>>>       472,973     49,064  eth_common_init
>>>       476,848      3,875  main_loop
>>>       477,003        155  cli_loop
>>>
>>>   Accumulated time:
>>>                    7,181  of_live
>>>                   14,739  dm_spl
>>>                   15,029  dm_r
>>>                  315,150  dm_f
>>>
>>> With this the records can be printed in chronological order when the
>>> counter is reset and SPL and board_init_r records show correct elapsed
>>> time.
>>>
>>>   => bootstage report
>>>   Timer summary in microseconds (12 records):
>>>          Mark    Elapsed  Stage
>>>             0          0  reset
>>>       164,437    164,437  SPL
>>>       375,023    210,586  end phase
>>>         7,437      7,437  board_init_f
>>>       424,390    416,953  board_init_r
>>>       473,515     49,125  eth_common_init
>>>       477,402      3,887  main_loop
>>>       477,571        169  cli_loop
>>>
>>>   Accumulated time:
>>>                   14,734  dm_spl
>>>                  315,646  dm_f
>>>                    7,339  of_live
>>>                   14,977  dm_r
>>>
>>> For the tested board external TPL and BROM take ~164 ms to initialize
>>> DRAM and load SPL, SPL take ~210ms to load images from FIT and U-Boot
>>> proper take ~477ms to reach cli prompt.
>>>
>>> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
>>> ---
>>>  common/bootstage.c | 12 ++----------
>>>  1 file changed, 2 insertions(+), 10 deletions(-)
>>>
> 
> To put this more strongly, this breaks the timing output on other boards.

Please elaborate, I cannot understand why not sorting would break output
on other boards, are other boards adding records out of order?

Do you have an example of how this change break other boards?

> 
> At the very least, this should be Kconfig option just enabled for
> boards with a broken ATF.

I can add a Kconfig option, but would like to understand why other/any
board would need to sort the records in the first place.

Regards,
Jonas

> 
> Regards,
> Simon



More information about the U-Boot mailing list