Hi Patrice, On Fri, 17 Jan 2020 at 06:56, Patrice CHOTARD <patrice.chot...@st.com> wrote: > > Hi All > > Since the last sync of libfdt [1], boot time increase of 2.3 seconds on > STM32MP1 dk2 board > > On v2020.1 tag: > > STM32MP> bootstage report > Timer summary in microseconds (9 records): > Mark Elapsed Stage > 0 0 reset > 571,804 571,804 board_init_f > 3,535,935 2,964,131 board_init_r > 3,954,721 418,786 id=64 > 4,006,006 51,285 id=65 > 4,006,708 702 main_loop > 4,559,423 552,715 id=175 > > After reverting 'f0921f5098d8 (dt: Sync up to the latest libfdt)', boot time > was restored: > > STM32MP> bootstage report > Timer summary in microseconds (9 records): > Mark Elapsed Stage > 0 0 reset > 568,918 568,918 board_init_f > 1,801,471 1,232,553 board_init_r > 2,074,570 273,099 id=64 > 2,101,242 26,672 id=65 > 2,101,944 702 main_loop > 3,229,354 1,127,410 id=175 > > After some investigation, the new implementation of fdt32_ld() is responsible > of this time consuming. > > Same issue has been already encountered on TF-A side [2]. TF-A community has > decided to not update libfdt with v1.4.7 > > and stayed on the previous one v1.4.6 to avoid similar regression.
I think it would be worth having an option to use a simple read instead of the unaligned handling of fdt32_ld. We could have it as an assumption, e.g. fdt_chk_alignment(). Regards, Simon > > > Thanks > > Patrice > > > [1] https://patchwork.ozlabs.org/cover/1185039/ > > [2] https://github.com/dgibson/dtc/issues/19 >