Pinmux with device tree

Nicolas Pitre nico at fluxnic.net
Fri May 20 06:36:57 EST 2011


On Thu, 19 May 2011, Mitch Bradley wrote:

> On 5/19/2011 7:10 AM, Grant Likely wrote:
> > Why is it error prone?  It is probably less error prone than using
> > magic integer values.  :-)  As for time and space inefficiencies,
> > we're talking about tiny amounts of data and processors now in the GHz
> > range with GBs of memory.  The time and space required is pretty much
> > in the noise.
> 
> Ideally, the device tree is exported by the firmware, whose storage device is
> often much much smaller than the RAM size.  Since I began doing firmware,
> average RAM sizes have increased by a factor of 4000 and RAM speed has
> increased by a factor of about 1000.  In that time, boot ROM size has
> increased by a factor of about 8 and the speed, in some cases, has decreased.
> 
> During a substantial portion of the firmware startup sequence, the CPU may be
> executing in a crippled mode, with caches unavailable.
> 
> On my current project, I have to fit everything in 1 MiB of slow SPI FLASH.
> "Everything" includes microcode wads for things like the wireless module,
> extensive manufacturing and field diagnostics for every hardware device,
> crypto code and keys for boot security, drivers for on-board devices and a
> myriad of USB devices, sound clips for a startup jingle, graphics images for
> "pretty boot" and for language-neutral reporting of diagnostic results,
> unit-specific manufacturing info, filesystem and network protocol code, and a
> wireless multicast facility for mass updating of the OS onto an arbitrary
> number of units.
> 
> So, in my world, space is always an issue.

I'm guessing that in such a scenario you have the kernel stored 
somewhere else, right?  You therefore simply have to store the FDT data 
along with the kernel in that other location, and have your boot 
firmware load an additional and relatively small file.

It is very important that the DT data be updateable independently from 
the firmware, just like the kernel is.  Ideally, the DT would indeed be 
exported by the firmware, but that works only in theory.  In practice it 
_will_ contain bugs that might be visible only after kernel development 
has progressed, and therefore it is primordial to be able to update it 
easily.  Hence in practice it is best if it is not exported/generated by 
the firmware directly.


Nicolas


More information about the devicetree-discuss mailing list