[U-Boot] [PATCH v4 00/20] dm: tegra: Move nyan-big, jetson-tk1, beaver to livetree

Simon Glass sjg at chromium.org
Thu Jul 13 09:22:42 UTC 2017


Hi Marcel,

On 13 July 2017 at 02:38, Marcel Ziswiler <marcel.ziswiler at toradex.com> wrote:
> On Tue, 2017-07-11 at 21:29 -0600, Simon Glass wrote:
>> This moves four entire boards to use a live device tree as an example
>> of
>> the impact.
>>
>> Nyan-big was chosen because I can easily and boot U-Boot without any
>> media swapping, etc. Beaver is enabled as well since it failed to
>> boot
>> with serial v1 due to a disabled console node. Jetson-TK1 is chosen
>> because I found some USB problems in the v2 patches. Jetson-TX1 is
>> added
>> because Stephen Warren found some problems with PCI.
>>
>> Total code size impact on this board is approximately 9KB on U-Boot
>> and
>> 64 bytes on SPL:
>>
>> 27: dm: tegra: nyan-big: Move to livetree
>>        arm: (for 1/1 boards) all +9264.0 bss -16.0 data +44.0 rodata
>> +92.0
>>           spl/u-boot-spl:all +326.0 spl/u-boot-spl:rodata +262.0
>>           spl/u-boot-spl:text +64.0 text +9144.0
>>
>> Tegra does not use Thumb2, which would likely reduce the code size by
>> about
>> 25%, indicating a code-size impact of perhaps 7KB.
>>
>> Boot time is affected slightly. For nyan-big the times with flat tree
>> are:
>>
>>                  2,108  dm_r
>>                  7,924  dm_spl
>>                120,724  dm_f
>>                171,816  lcd
>>
>> With the livetree:
>>
>>                    721  dm_r
>>                  3,764  of_live
>>                  7,990  dm_spl
>>                120,736  dm_f
>>                168,215  lcd
>>
>> As expected the spl and pre-relocation times are not affected. In the
>> post-relocation case, the live tree must be built, which here takes
>> about
>> 3.8ms. Driver-model device creation takes a bit of 1ms less time with
>> the
>> livetree, so all up the cost is about 2.4ms. After DM init there
>> appears
>> to be a slight reduction in the time taken to set up devices (from
>> 327ms
>> to 319ms) so overall the live tree does not appear to be any slower.
>> This
>> is because pre-parsing the device tree makes reading it later faster.
>>
>> The use of livetree is controlled by a the CONFIG_OF_LIVE option.
>> When
>> enabled, U-Boot builds a livetree immediately after relocation and
>> uses
>> it from then on.
>>
>> This series is available at u-boot-dm/livet-working
>>
>> Changes in v4:
>> - Add new patch to add ofnode_read_resource()
>> - Add new patch to fix up ofnode_get_addr_index() for 64-bit values
>> - Update to use ofnode_read_resource()
>> - Drop fdtdec.h header
>> - Update to deal with rename of ofnode_read_prop()
>> - Rebase to master
>> - Drop changes already applied
>> - Fix PCI and i2c init problems on jetson-tx1
>
> Could you elaborate a little bit more on this as from the actual patch
> set I don't seem to be able to figure out how/what exactly you did in
> that respect.
>
> Other than that it at least works for me on my Beaver and Jetson TK1 so
> you may add the following to the whole series:
>
> Tested-by: Marcel Ziswiler <marcel.ziswiler at toradex.com>
> Tested-on: Beaver, Jetson-TK1

Thanks.

I cannot test Jetson-TK1 yet but I think these changes are needed to
make USB work, and possibly PCI:

>> - Add new patch to add ofnode_read_resource()
>> - Update to use ofnode_read_resource()

(see the appropriate patches with these changes mentioned in the change log)

Basically the code for setting up the USB PHY did not work and that
stopped PCI from working, I believe.

The changes applicable to TX1 are:

>> - Add new patch to fix up ofnode_get_addr_index() for 64-bit values

(this fixed I2C reading the register address)

[..]

Regards,
Simon


More information about the U-Boot mailing list