Re: [RFC] Device Tree Overlays Proposal (Was Re: capebus moving omap_devices to mach-omap2)

From: Grant Likely
Date: Mon Nov 05 2012 - 19:07:07 EST




Tabi Timur-B04825 <B04825@xxxxxxxxxxxxx> wrote:

>On Mon, Nov 5, 2012 at 2:40 PM, Grant Likely
><grant.likely@xxxxxxxxxxxx> wrote:
>
>> Jane is building custom BeagleBone expansion boards called 'capes'.
>She
>> can boot the system with a stock BeagleBoard device tree, but
>additional
>> data is needed before a cape can be used. She could replace the FDT
>file
>> used by U-Boot with one that contains the extra data, but she uses
>the
>> same Linux system image regardless of the cape, and it is
>inconvenient
>> to have to select a different device tree at boot time depending on
>the
>> cape.
>
>What's wrong with having the boot loader detect the presence of the
>Cape and update the device tree accordingly? We do this all the time
>in U-Boot. Doing stuff like reading EEPROMs and testing for the
>presence of hardware is easier in U-Boot than in Linux.
>
>For configurations that can be determined by the boot loader, I'm not
>sure overlays are practical.

>From the discussion in the previous thread, I'm sufficiently convinced that it is an important use case. I certainly disagree with the assertion that it is always easier to do it in U-Boot. Sometimes the kernel is the better place.

>
>> Nigel is building a real-time video processing system around a MIPS
>SoC
>> and a Virtex FPGA. Video data is streamed through the FPGA for post
>> processing operations like motion tracking or compression. The FPGA
>is
>> configured via the SPI bus, and is also connected to GPIO lines and
>the
>> memory mapped peripheral bus. Nigel has designed several FPGA
>> configurations for different video processing tasks. The user will
>> choose which configuration to load which can even be reprogrammed at
>> runtime to switch tasks.
>
>Now this, on the other hand, makes more sense. If the hardware
>configuration is literally user-configurable, then okay. However, I'm
>not sure I see the need to update the device tree. The device tree is
>generally for hardware that cannot be discovered/probed by the device
>driver. If we're loading a configuration from user space, doesn't the
>driver already know what the hardware's capabilities are, since it's
>the one doing the uploading of a new FPGA code?

Not if the driver is only responsible for loading the bitstream. There is already a xilinx driver that does things this way.

> Why not skip the
>device tree update and just tell the driver what the new capabilities
>are?

How? What format will that data be in if not device tree?

g.

--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/