[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