building RaspPi Images

Warner Losh imp at bsdimp.com
Tue Feb 12 16:44:48 UTC 2013


On Feb 12, 2013, at 7:56 AM, Ian Lepore wrote:

> On Mon, 2013-02-11 at 22:27 -0800, Tim Kientzle wrote:
>> On Feb 11, 2013, at 9:42 AM, Ian Lepore wrote:
>> 
> [snip]
>> 
>> At least for BeagleBone, I think I see a way to
>> make the pinmux code work this way.  That code is
>> all table-driven, so with some creative reworking of
>> the tables, it should be feasible to define groups of
>> pins and a mechanism to manage them.  Tedious
>> work, to be sure, simply because of the sheer number
>> of definitions involved, but nothing particularly complicated.
>> 
>> Another approach I've considered is to have the
>> necessary pinmux assignments be part of the
>> device entry in the DTS.  (BeagleBone DTS, at
>> least, defines a single list of pinmux settings for
>> the board, which I don't like at all.)  This would
>> be similar to the way interrupts and memory
>> regions are assigned today.  That would at
>> least move the problem down to the level of
>> enabling/disabling particular entries in the DTS.
>> Unfortunately, I don't yet understand the inner workings
>> of simplebus and the FDT management in the kernel
>> well enough to be able to tackle this just yet.
>> 
>> Having pinmux settings be part of the associated
>> device node in the DTS would also make your next
>> issue a little easier to manage, I think.  (For example,
>> the DTS in SVN could have several versions of a single
>> device with most of them disabled.)
> 
> I've seen a block at the bottom of some dts source named "choices" or
> something like that.  That seems to hint at the possibility of
> describing a variety of stock configurations for various devices and
> then the choosing of configurations might be little more than
> manipulating some strings in that section.  That's the sort of thing
> that might be easy to handle within ubldr.  Doing more than that in
> ubldr might set us on the path of turning it into a dts compiler.

"chosen" is what you are talking about.

It isn't quite what you think it is for. This section is for communicating some settings to the kernel, but it isn't supposed to enable/disable devices. What you are describing sounds cool, but I have grave doubts it would work. It also goes against the main tenants of FDT, which is that you have a simple binary blob that describes how you've configured/wired your hardware together and the kernel can completely rely on that to do configuration. Adding weird settings in the chosen setting gets us back to the days of having some things compiled in, and some things selected with hints.

btw, what's wrong with optionally turning ubldr into a dts compiler? Assuming, that is, that the BSD dts compiler project makes progress enough to keep up with the GPL'd one?

Warner


More information about the freebsd-arm mailing list