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

Marcel Ziswiler marcel.ziswiler at toradex.com
Thu Jul 13 09:45:02 UTC 2017


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).

> [..]
> 
> Regards,
> Simon

Cheers

Marcel

BTW: I'm now in the process of migrating our boards as well and will send patches for that soon.


More information about the U-Boot mailing list