Re: DeviceTree FPGA bitstream
From: Walter Goossens <hidden>
Date: 2015-06-11 10:17:05
Hi Federico, On 06/09/2015 04:49 PM, Federico Vaga wrote:
Hello, I'm evaluating the DeviceTree to describe the content of an FPGA. I noticed that Xilinx is already doing it: https://www.kernel.org/doc/Documentation/devicetree/bindings/xilinx.txt
So is Altera, both for the Nios2 and arm-soc architectures. They're using this tool: https://github.com/wgoossens/sopc2dts to go from their design software (qsys) to a dts file.
I admit that I didn't read the code yet, but before doing it I want to ask you some simple questions that may save me a lot of time. My questions are: - is there any reccomandation about DeviceTree for FPGA content description? If yes, are they documented somewhere?
FPGA's are just like other "hardware" from the device-tree point of view. If there's a UART in your FPGA, then you describe a UART in the devicetree :) For Altera FPGA's some info is described here: http://rocketboards.org/foswiki/Documentation/DeviceTreeGenerator141 and I think the xilinx flow is similar.
- it looks like the DeviceTree is disable for x86 architecture except for some specific platform. Is it possible to enable it for the entire x86 architecture? Are there any reason to disable it by default? - I read that since versione 3.17 it should be possible to dynamically add portion of DeviceTree from configfs. Is it possible on all architecture? - I'm working on x86_64 and my FPGA can be on a pluggable board (e.g. PCIe). Is there a way to describe this situation with DeviceTree? Is there any tool that dynamically computes the addresses (interrupts) translation to use (e.g. on PCIe) ?
I've been using this scheme on PPC for quite some time (before devicetree overlays) by creating a custom pcie driver (that knows the bar addresses and irqs) which then instantiates a "virtual platformbus" at the pcie bar the fpga is located in. You can adopt this scheme for x86 by creating a bus and using the devicetree code to probe the inside of your FPGA but this is all a bit hackish. The correct approach (in my opinion) would be to use an overlay describing the contents of the FPGA and loading that when probing the pcie-device. This would however require a base devicetree to apply the overlay to, and I'm not sure how much effort this is going to be on x86_64 Walter
Thank you :) -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
-- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html