2018-09-24 20:33:54

by Alan Tull

[permalink] [raw]
Subject: Portable DT Connectors with regard to FPGAs

My interest here was in having some discussion on whether connectors
are a good match for handling FPGAs.

The relevant use model is where a user applies a DT overlay targeting
an FPGA region after the kernel has booted. That overlay initiates
FPGA programming and then adds nodes for the new FPGA hardware. This
is discussed more completely in the FPGA manager DT binding document
[1]. The main deal here is that I'd like to be able to add nodes
in/below a FPGA region node to support devices in the FPGA (and be
able also to remove them if we are going to reconfigure the FPGA.)

Previous discussions about DT connectors focused on the types of
things likely to be on a physical connector. GPIO and SPI got named as
good examples for discussion while MMIO specifically was dismissed
[2]. That's problematic for embedded FPGAs for example since the FPGA
is on a mmio bus and hardware that is programmed into the FPGA lives
on that mmio bus similar to any embedded peripherals. So there's a
question - are mmio busses intended to be left un-connectorizable?

Alan

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/fpga/fpga-region.txt

[2] https://lkml.org/lkml/2016/7/20/560


2018-09-25 03:48:33

by David Gibson

[permalink] [raw]
Subject: Re: Portable DT Connectors with regard to FPGAs

On Mon, Sep 24, 2018 at 03:32:44PM -0500, Alan Tull wrote:
> My interest here was in having some discussion on whether connectors
> are a good match for handling FPGAs.
>
> The relevant use model is where a user applies a DT overlay targeting
> an FPGA region after the kernel has booted. That overlay initiates
> FPGA programming and then adds nodes for the new FPGA hardware. This
> is discussed more completely in the FPGA manager DT binding document
> [1]. The main deal here is that I'd like to be able to add nodes
> in/below a FPGA region node to support devices in the FPGA (and be
> able also to remove them if we are going to reconfigure the FPGA.)
>
> Previous discussions about DT connectors focused on the types of
> things likely to be on a physical connector. GPIO and SPI got named as
> good examples for discussion while MMIO specifically was dismissed
> [2]. That's problematic for embedded FPGAs for example since the FPGA
> is on a mmio bus and hardware that is programmed into the FPGA lives
> on that mmio bus similar to any embedded peripherals. So there's a
> question - are mmio busses intended to be left un-connectorizable?

I don't see any particular reason that a connector couldn't be used
for mmio devices. I think you'd want to treat the connection point as
a bridge on the mmio bus - that can have a 'ranges' property mapping
the connected device into the parent bus's address space (as an
identity mapping or otherwise).

>
> Alan
>
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/fpga/fpga-region.txt
>
> [2] https://lkml.org/lkml/2016/7/20/560
>

--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson


Attachments:
(No filename) (1.84 kB)
signature.asc (849.00 B)
Download all attachments