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

Simon Glass sjg at chromium.org
Tue Jul 18 14:01:14 UTC 2017


Hi Marcel,

On 13 July 2017 at 02:45, Marcel Ziswiler <marcel.ziswiler at toradex.com> wrote:
> Hi Simon
>
> On Thu, 2017-07-13 at 03:22 -0600, Simon Glass wrote:
>> Hi Marcel,
>>
>> On 13 July 2017 at 02:38, Marcel Ziswiler <marcel.ziswiler at toradex.co
>> m> 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.
>
> You are very welcome.
>
>> 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)
>
> OK, yeah I saw those but just could not quite make the connection.
>
>> Basically the code for setting up the USB PHY did not work and that
>> stopped PCI from working, I believe.
>
> OK, makes sense. So it was rather a high level issue then.
>
>> 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)
>
> Perfect, while we should have a TX1 laying around somewhere as well I
> currently failed finding it. Probably one of my co-workers currently on
> vacation took it and is playing with it (;-p).

I just tried TK1 (a new board) and hit some problems with PCI even
with this version of the series, so I need to figure that out (later
in the week).

>
>> [..]
>>
>> Regards,
>> Simon
>
> Cheers
>
> Marcel
>
> BTW: I'm now in the process of migrating our boards as well and will send patches for that soon.

Regards,
Smion


More information about the U-Boot mailing list