dynamic device tree char driver

Rob Herring robherring2 at gmail.com
Sun Aug 19 01:45:45 EST 2012


On 08/16/2012 02:43 PM, Alan Tull wrote:
> 
> Hello,
> 
> I'm Alan Tull, interested in dynamic features of device trees.

Hey Alan. How are you doing?

> The following patch adds a char driver to add or remove device tree
> nodes dynamically.  Its ioctl passes a struct with:
>  - size of the blob
>  - pointer to the blob
> 
> The path to add the nodes under is coded in the blob with dummy nodes.
> For example the following can be compiled into a blob and sent to this
> driver adding a single node under /soc/apb_periphs:
> 
> /dts-v1/;
> / {
>         soc {
>                 apb_periphs {
>                         i2c1: i2c at ffc05000 {
>                                 compatible = "snps,designware-i2c";
>                                 reg = <0xffc05000 0x1000>;
>                                 interrupts = <0 159 4>;
>                                 emptyfifo_hold_master = <1>;
>                         };
>                 };
>         };
> };
> 
> I wanted to get feeback early before I went too far down this particular
> path.  As such, this code doesn't do any notification for drivers yet.
> Also it won't properly add nested nodes yet.  It can add/remove a single
> node and see it show up properly under /proc/device-tree.

Have you looked at arch/powerpc/platforms/pseries/reconfig.c?

There was also a recent discussion titled "OF_DYNAMIC usage" that you
should look at.

I don't think a char driver and ioctls will fly...

Another option could be kexecing with a new DTB if you can live with a
reboot.

Rob

> 
> Alan Tull
> Altera
> 
> _______________________________________________
> devicetree-discuss mailing list
> devicetree-discuss at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/devicetree-discuss
> 



More information about the devicetree-discuss mailing list