linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
@ 2014-05-10  1:43 Matt Ranostay
  2014-05-12 19:50 ` Tony Lindgren
  0 siblings, 1 reply; 20+ messages in thread
From: Matt Ranostay @ 2014-05-10  1:43 UTC (permalink / raw)
  To: robh+dt, mark.rutland, linux
  Cc: linux-omap, devicetree, linux-kernel, pantelis.antoniou,
	matt.porter, Matt Ranostay

Add missing i2c2 bus define to access various cape and
prototype/breakout board devices.

Signed-off-by: Matt Ranostay <mranostay@gmail.com>
---
 arch/arm/boot/dts/am335x-bone-common.dtsi | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
index 2e7d932..5fdae2e 100644
--- a/arch/arm/boot/dts/am335x-bone-common.dtsi
+++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
@@ -84,6 +84,13 @@
 		>;
 	};
 
+	i2c2_pins: pinmux_i2c2_pins {
+		pinctrl-single,pins = <
+			0x178 (PIN_INPUT_PULLUP | MUX_MODE3)	/* uart1_ctsn.i2c2_sda */
+			0x17c (PIN_INPUT_PULLUP | MUX_MODE3)	/* uart1_rtsn.i2c2_scl */
+		>;
+	};
+
 	uart0_pins: pinmux_uart0_pins {
 		pinctrl-single,pins = <
 			0x170 (PIN_INPUT_PULLUP | MUX_MODE0)	/* uart0_rxd.uart0_rxd */
@@ -222,6 +229,15 @@
 
 };
 
+
+&i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_pins>;
+
+	status = "okay";
+	clock-frequency = <100000>;
+};
+
 /include/ "tps65217.dtsi"
 
 &tps {
-- 
1.8.3.2


^ permalink raw reply related	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-10  1:43 [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition Matt Ranostay
@ 2014-05-12 19:50 ` Tony Lindgren
  2014-05-12 19:59   ` Robert Nelson
  0 siblings, 1 reply; 20+ messages in thread
From: Tony Lindgren @ 2014-05-12 19:50 UTC (permalink / raw)
  To: Matt Ranostay
  Cc: robh+dt, mark.rutland, linux, linux-omap, devicetree,
	linux-kernel, pantelis.antoniou, matt.porter

* Matt Ranostay <mranostay@gmail.com> [140509 18:43]:
> Add missing i2c2 bus define to access various cape and
> prototype/breakout board devices.
> 
> Signed-off-by: Matt Ranostay <mranostay@gmail.com>
> ---
>  arch/arm/boot/dts/am335x-bone-common.dtsi | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi
> index 2e7d932..5fdae2e 100644
> --- a/arch/arm/boot/dts/am335x-bone-common.dtsi
> +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi
> @@ -84,6 +84,13 @@
>  		>;
>  	};
>  
> +	i2c2_pins: pinmux_i2c2_pins {
> +		pinctrl-single,pins = <
> +			0x178 (PIN_INPUT_PULLUP | MUX_MODE3)	/* uart1_ctsn.i2c2_sda */
> +			0x17c (PIN_INPUT_PULLUP | MUX_MODE3)	/* uart1_rtsn.i2c2_scl */
> +		>;
> +	};
> +
>  	uart0_pins: pinmux_uart0_pins {
>  		pinctrl-single,pins = <
>  			0x170 (PIN_INPUT_PULLUP | MUX_MODE0)	/* uart0_rxd.uart0_rxd */
>
> @@ -222,6 +229,15 @@
>  
>  };
>  
> +
> +&i2c2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c2_pins>;
> +
> +	status = "okay";
> +	clock-frequency = <100000>;
> +};
> +

If these pins are not used for i2c2 on some capes, this device
should be set to status = "disabled" state by default. Then
u-boot could re-enable it on the boards that have i2c2 in use.

Regards,

Tony

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-12 19:50 ` Tony Lindgren
@ 2014-05-12 19:59   ` Robert Nelson
  2014-05-12 20:15     ` Tony Lindgren
  0 siblings, 1 reply; 20+ messages in thread
From: Robert Nelson @ 2014-05-12 19:59 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Matt Ranostay, robh+dt, mark.rutland, Russell King, linux-omap,
	devicetree, linux kernel, pantelis.antoniou, matt.porter

>>
>> +     i2c2_pins: pinmux_i2c2_pins {
>> +             pinctrl-single,pins = <
>> +                     0x178 (PIN_INPUT_PULLUP | MUX_MODE3)    /* uart1_ctsn.i2c2_sda */
>> +                     0x17c (PIN_INPUT_PULLUP | MUX_MODE3)    /* uart1_rtsn.i2c2_scl */
>> +             >;
>> +     };
>> +
>>       uart0_pins: pinmux_uart0_pins {
>>               pinctrl-single,pins = <
>>                       0x170 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart0_rxd.uart0_rxd */
>>
>> @@ -222,6 +229,15 @@
>>
>>  };
>>
>> +
>> +&i2c2 {
>> +     pinctrl-names = "default";
>> +     pinctrl-0 = <&i2c2_pins>;
>> +
>> +     status = "okay";
>> +     clock-frequency = <100000>;
>> +};
>> +
>
> If these pins are not used for i2c2 on some capes, this device
> should be set to status = "disabled" state by default. Then
> u-boot could re-enable it on the boards that have i2c2 in use.

To-date, this is the i2c bus that all capes have placed an at24 eeprom
for cape identification.

Regards,

-- 
Robert Nelson
http://www.rcn-ee.com/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-12 19:59   ` Robert Nelson
@ 2014-05-12 20:15     ` Tony Lindgren
  2014-05-12 20:27       ` Robert Nelson
  0 siblings, 1 reply; 20+ messages in thread
From: Tony Lindgren @ 2014-05-12 20:15 UTC (permalink / raw)
  To: Robert Nelson
  Cc: Matt Ranostay, robh+dt, mark.rutland, Russell King, linux-omap,
	devicetree, linux kernel, pantelis.antoniou, matt.porter

* Robert Nelson <robertcnelson@gmail.com> [140512 13:00]:
> >>
> >> +     i2c2_pins: pinmux_i2c2_pins {
> >> +             pinctrl-single,pins = <
> >> +                     0x178 (PIN_INPUT_PULLUP | MUX_MODE3)    /* uart1_ctsn.i2c2_sda */
> >> +                     0x17c (PIN_INPUT_PULLUP | MUX_MODE3)    /* uart1_rtsn.i2c2_scl */
> >> +             >;
> >> +     };
> >> +
> >>       uart0_pins: pinmux_uart0_pins {
> >>               pinctrl-single,pins = <
> >>                       0x170 (PIN_INPUT_PULLUP | MUX_MODE0)    /* uart0_rxd.uart0_rxd */
> >>
> >> @@ -222,6 +229,15 @@
> >>
> >>  };
> >>
> >> +
> >> +&i2c2 {
> >> +     pinctrl-names = "default";
> >> +     pinctrl-0 = <&i2c2_pins>;
> >> +
> >> +     status = "okay";
> >> +     clock-frequency = <100000>;
> >> +};
> >> +
> >
> > If these pins are not used for i2c2 on some capes, this device
> > should be set to status = "disabled" state by default. Then
> > u-boot could re-enable it on the boards that have i2c2 in use.
> 
> To-date, this is the i2c bus that all capes have placed an at24 eeprom
> for cape identification.

And how many capes actually implement the eeprom cape identification
out of the available capes? :)

Tony

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-12 20:15     ` Tony Lindgren
@ 2014-05-12 20:27       ` Robert Nelson
  2014-05-12 20:42         ` Tony Lindgren
  0 siblings, 1 reply; 20+ messages in thread
From: Robert Nelson @ 2014-05-12 20:27 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Matt Ranostay, robh+dt, mark.rutland, Russell King, linux-omap,
	devicetree, linux kernel, pantelis.antoniou, matt.porter

>> >
>> > If these pins are not used for i2c2 on some capes, this device
>> > should be set to status = "disabled" state by default. Then
>> > u-boot could re-enable it on the boards that have i2c2 in use.
>>
>> To-date, this is the i2c bus that all capes have placed an at24 eeprom
>> for cape identification.
>
> And how many capes actually implement the eeprom cape identification
> out of the available capes? :)

Not including one off designs in someone's lab. We will never have an
accurate number. ;)

So far; just the ones that want their "cape" detected in the default
image currently being shipped by CircuitCo. Otherwise the few that
I've seen without an eeprom, usually follow this default pinmux.

http://elinux.org/CircuitCo:Basic_Proto_Cape

Which includes that i2c bus enabled.

Either case if fine with me.  As who knows when the dtc "overlay" will
every truly make it mainline, as the capemgr was the only real kernel
user of the i2c/at24 eeprom information.

Regards,

-- 
Robert Nelson
http://www.rcn-ee.com/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-12 20:27       ` Robert Nelson
@ 2014-05-12 20:42         ` Tony Lindgren
  2014-05-12 20:57           ` Robert Nelson
  0 siblings, 1 reply; 20+ messages in thread
From: Tony Lindgren @ 2014-05-12 20:42 UTC (permalink / raw)
  To: Robert Nelson
  Cc: Matt Ranostay, robh+dt, mark.rutland, Russell King, linux-omap,
	devicetree, linux kernel, pantelis.antoniou, matt.porter

* Robert Nelson <robertcnelson@gmail.com> [140512 13:27]:
> >> >
> >> > If these pins are not used for i2c2 on some capes, this device
> >> > should be set to status = "disabled" state by default. Then
> >> > u-boot could re-enable it on the boards that have i2c2 in use.
> >>
> >> To-date, this is the i2c bus that all capes have placed an at24 eeprom
> >> for cape identification.
> >
> > And how many capes actually implement the eeprom cape identification
> > out of the available capes? :)
> 
> Not including one off designs in someone's lab. We will never have an
> accurate number. ;)
> 
> So far; just the ones that want their "cape" detected in the default
> image currently being shipped by CircuitCo. Otherwise the few that
> I've seen without an eeprom, usually follow this default pinmux.
> 
> http://elinux.org/CircuitCo:Basic_Proto_Cape
> 
> Which includes that i2c bus enabled.

OK thanks for the info.
 
> Either case if fine with me.  As who knows when the dtc "overlay" will
> every truly make it mainline, as the capemgr was the only real kernel
> user of the i2c/at24 eeprom information.

Sounds like we should keep it disabled though so u-boot can be used
to toggle it while waiting for the capemgr. That's because the board
has a header for pins, so it's not exactly limited to just the capes.

Anybody working on enabling/disabling cape dtb configurations in u-boot?

Regards,

Tony

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-12 20:42         ` Tony Lindgren
@ 2014-05-12 20:57           ` Robert Nelson
  2014-05-12 21:07             ` Tony Lindgren
  2014-05-13 12:53             ` Tom Rini
  0 siblings, 2 replies; 20+ messages in thread
From: Robert Nelson @ 2014-05-12 20:57 UTC (permalink / raw)
  To: Tony Lindgren
  Cc: Tom Rini, Matt Ranostay, robh+dt, mark.rutland, Russell King,
	linux-omap, devicetree, linux kernel, Pantelis Antoniou,
	Matt Porter

>> Either case if fine with me.  As who knows when the dtc "overlay" will
>> every truly make it mainline, as the capemgr was the only real kernel
>> user of the i2c/at24 eeprom information.
>
> Sounds like we should keep it disabled though so u-boot can be used
> to toggle it while waiting for the capemgr. That's because the board
> has a header for pins, so it's not exactly limited to just the capes.
>
> Anybody working on enabling/disabling cape dtb configurations in u-boot?

Well,

Would Tom even approve of that in mainline u-boot? He didn't want my
"invert" the gpio to enable the usb hub on the older beagle xm A/B..

http://lists.denx.de/pipermail/u-boot/2014-January/172154.html

http://lists.denx.de/pipermail/u-boot/2014-January/172274.html

Regards,

-- 
Robert Nelson
http://www.rcn-ee.com/

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-12 20:57           ` Robert Nelson
@ 2014-05-12 21:07             ` Tony Lindgren
  2014-05-13 12:53             ` Tom Rini
  1 sibling, 0 replies; 20+ messages in thread
From: Tony Lindgren @ 2014-05-12 21:07 UTC (permalink / raw)
  To: Robert Nelson
  Cc: Tom Rini, Matt Ranostay, robh+dt, mark.rutland, Russell King,
	linux-omap, devicetree, linux kernel, Pantelis Antoniou,
	Matt Porter

* Robert Nelson <robertcnelson@gmail.com> [140512 13:58]:
> >> Either case if fine with me.  As who knows when the dtc "overlay" will
> >> every truly make it mainline, as the capemgr was the only real kernel
> >> user of the i2c/at24 eeprom information.
> >
> > Sounds like we should keep it disabled though so u-boot can be used
> > to toggle it while waiting for the capemgr. That's because the board
> > has a header for pins, so it's not exactly limited to just the capes.
> >
> > Anybody working on enabling/disabling cape dtb configurations in u-boot?
> 
> Well,
> 
> Would Tom even approve of that in mainline u-boot? He didn't want my
> "invert" the gpio to enable the usb hub on the older beagle xm A/B..
> 
> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
> 
> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html

Right, no idea. But until we have some way to actually use the capes
without conflicting dts entries, I can't merge them.

Regards,

Tony

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-12 20:57           ` Robert Nelson
  2014-05-12 21:07             ` Tony Lindgren
@ 2014-05-13 12:53             ` Tom Rini
  2014-05-13 14:06               ` Javier Martinez Canillas
  1 sibling, 1 reply; 20+ messages in thread
From: Tom Rini @ 2014-05-13 12:53 UTC (permalink / raw)
  To: Robert Nelson, Tony Lindgren
  Cc: Matt Ranostay, robh+dt, mark.rutland, Russell King, linux-omap,
	devicetree, linux kernel, Pantelis Antoniou, Matt Porter

On 05/12/2014 04:57 PM, Robert Nelson wrote:
>>> Either case if fine with me.  As who knows when the dtc "overlay" will
>>> every truly make it mainline, as the capemgr was the only real kernel
>>> user of the i2c/at24 eeprom information.
>>
>> Sounds like we should keep it disabled though so u-boot can be used
>> to toggle it while waiting for the capemgr. That's because the board
>> has a header for pins, so it's not exactly limited to just the capes.
>>
>> Anybody working on enabling/disabling cape dtb configurations in u-boot?
> 
> Well,
> 
> Would Tom even approve of that in mainline u-boot? He didn't want my
> "invert" the gpio to enable the usb hub on the older beagle xm A/B..
> 
> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
> 
> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html

I would think that using the 'fdt' command in U-Boot to add all
properties of every cape found on a running system would drive someone
to madness quite quickly.  Moving all of Pantelis' work for dynamic
device trees from the kernel to N bootloaders (U-Boot, barebox, UEFI,
etc) sounds like a step in the wrong direction.

-- 
Tom

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-13 12:53             ` Tom Rini
@ 2014-05-13 14:06               ` Javier Martinez Canillas
  2014-05-13 14:13                 ` Tom Rini
  2014-05-13 14:22                 ` Matt Porter
  0 siblings, 2 replies; 20+ messages in thread
From: Javier Martinez Canillas @ 2014-05-13 14:06 UTC (permalink / raw)
  To: Tom Rini
  Cc: Robert Nelson, Tony Lindgren, Matt Ranostay, robh+dt,
	Mark Rutland, Russell King, linux-omap, devicetree, linux kernel,
	Pantelis Antoniou, Matt Porter

On Tue, May 13, 2014 at 2:53 PM, Tom Rini <trini@ti.com> wrote:
> On 05/12/2014 04:57 PM, Robert Nelson wrote:
>>>> Either case if fine with me.  As who knows when the dtc "overlay" will
>>>> every truly make it mainline, as the capemgr was the only real kernel
>>>> user of the i2c/at24 eeprom information.
>>>
>>> Sounds like we should keep it disabled though so u-boot can be used
>>> to toggle it while waiting for the capemgr. That's because the board
>>> has a header for pins, so it's not exactly limited to just the capes.
>>>
>>> Anybody working on enabling/disabling cape dtb configurations in u-boot?
>>
>> Well,
>>
>> Would Tom even approve of that in mainline u-boot? He didn't want my
>> "invert" the gpio to enable the usb hub on the older beagle xm A/B..
>>
>> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
>>
>> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html

Using fdt set from the bootloader to use the same FDT for similar
boards (like the example with Beagle xM variants) is kind of trying to
replicate what we used to do from boards files where it was possible
to manage a set of boards using the same platform code.

But Device Trees are meant to describe hardware and thus should be
static, if two board are almost identical but slightly different, then
are two different hardware where each need its proper FDT that
describes it.

>
> I would think that using the 'fdt' command in U-Boot to add all
> properties of every cape found on a running system would drive someone
> to madness quite quickly.  Moving all of Pantelis' work for dynamic
> device trees from the kernel to N bootloaders (U-Boot, barebox, UEFI,
> etc) sounds like a step in the wrong direction.
>

Agreed. I think that until the device tree overlay and the cape
manager find their way into mainline we should treat capes as if they
were expansion boards attached to a Computer-on-Module. That is, a
static based board which its own DTS including the BB{B,W} as an dtsi
and not something that can be added on runtime.

> --
> Tom

Best regards,
Javier

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-13 14:06               ` Javier Martinez Canillas
@ 2014-05-13 14:13                 ` Tom Rini
  2014-05-13 14:22                 ` Matt Porter
  1 sibling, 0 replies; 20+ messages in thread
From: Tom Rini @ 2014-05-13 14:13 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: Robert Nelson, Tony Lindgren, Matt Ranostay, robh+dt,
	Mark Rutland, Russell King, linux-omap, devicetree, linux kernel,
	Pantelis Antoniou, Matt Porter

On 05/13/2014 10:06 AM, Javier Martinez Canillas wrote:

> Agreed. I think that until the device tree overlay and the cape
> manager find their way into mainline we should treat capes as if they
> were expansion boards attached to a Computer-on-Module. That is, a
> static based board which its own DTS including the BB{B,W} as an dtsi
> and not something that can be added on runtime.

Sometimes nothing exposes just how big a problem something is (and how
much we need the solution to it) like actually showing the output.
Someone could also start posting the profileN device trees for the
am335x GP EVMs too.

-- 
Tom

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-13 14:06               ` Javier Martinez Canillas
  2014-05-13 14:13                 ` Tom Rini
@ 2014-05-13 14:22                 ` Matt Porter
  2014-05-13 14:39                   ` Javier Martinez Canillas
  1 sibling, 1 reply; 20+ messages in thread
From: Matt Porter @ 2014-05-13 14:22 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: Tom Rini, Robert Nelson, Tony Lindgren, Matt Ranostay, robh+dt,
	Mark Rutland, Russell King, linux-omap, devicetree, linux kernel,
	Pantelis Antoniou

On Tue, May 13, 2014 at 04:06:02PM +0200, Javier Martinez Canillas wrote:
> On Tue, May 13, 2014 at 2:53 PM, Tom Rini <trini@ti.com> wrote:
> > On 05/12/2014 04:57 PM, Robert Nelson wrote:
> >>>> Either case if fine with me.  As who knows when the dtc "overlay" will
> >>>> every truly make it mainline, as the capemgr was the only real kernel
> >>>> user of the i2c/at24 eeprom information.
> >>>
> >>> Sounds like we should keep it disabled though so u-boot can be used
> >>> to toggle it while waiting for the capemgr. That's because the board
> >>> has a header for pins, so it's not exactly limited to just the capes.
> >>>
> >>> Anybody working on enabling/disabling cape dtb configurations in u-boot?
> >>
> >> Well,
> >>
> >> Would Tom even approve of that in mainline u-boot? He didn't want my
> >> "invert" the gpio to enable the usb hub on the older beagle xm A/B..
> >>
> >> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
> >>
> >> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html
> 
> Using fdt set from the bootloader to use the same FDT for similar
> boards (like the example with Beagle xM variants) is kind of trying to
> replicate what we used to do from boards files where it was possible
> to manage a set of boards using the same platform code.
> 
> But Device Trees are meant to describe hardware and thus should be
> static, if two board are almost identical but slightly different, then
> are two different hardware where each need its proper FDT that
> describes it.
> 
> >
> > I would think that using the 'fdt' command in U-Boot to add all
> > properties of every cape found on a running system would drive someone
> > to madness quite quickly.  Moving all of Pantelis' work for dynamic
> > device trees from the kernel to N bootloaders (U-Boot, barebox, UEFI,
> > etc) sounds like a step in the wrong direction.
> >
> 
> Agreed. I think that until the device tree overlay and the cape
> manager find their way into mainline we should treat capes as if they
> were expansion boards attached to a Computer-on-Module. That is, a
> static based board which its own DTS including the BB{B,W} as an dtsi
> and not something that can be added on runtime.

It's far more complicated than a SOM plus carrier board. Consider that
you can have any 4 of these capes stacked on the BBB/BBW in any
combination (assuming no resource conflicts). Capturing all possible
combinations in static dtsis is not practical.

-Matt

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-13 14:22                 ` Matt Porter
@ 2014-05-13 14:39                   ` Javier Martinez Canillas
  2014-05-13 17:07                     ` Pantelis Antoniou
  0 siblings, 1 reply; 20+ messages in thread
From: Javier Martinez Canillas @ 2014-05-13 14:39 UTC (permalink / raw)
  To: Matt Porter
  Cc: Tom Rini, Robert Nelson, Tony Lindgren, Matt Ranostay, robh+dt,
	Mark Rutland, Russell King, linux-omap, devicetree, linux kernel,
	Pantelis Antoniou

On Tue, May 13, 2014 at 4:22 PM, Matt Porter <matt.porter@linaro.org> wrote:
> On Tue, May 13, 2014 at 04:06:02PM +0200, Javier Martinez Canillas wrote:
>> On Tue, May 13, 2014 at 2:53 PM, Tom Rini <trini@ti.com> wrote:
>> > On 05/12/2014 04:57 PM, Robert Nelson wrote:
>> >>>> Either case if fine with me.  As who knows when the dtc "overlay" will
>> >>>> every truly make it mainline, as the capemgr was the only real kernel
>> >>>> user of the i2c/at24 eeprom information.
>> >>>
>> >>> Sounds like we should keep it disabled though so u-boot can be used
>> >>> to toggle it while waiting for the capemgr. That's because the board
>> >>> has a header for pins, so it's not exactly limited to just the capes.
>> >>>
>> >>> Anybody working on enabling/disabling cape dtb configurations in u-boot?
>> >>
>> >> Well,
>> >>
>> >> Would Tom even approve of that in mainline u-boot? He didn't want my
>> >> "invert" the gpio to enable the usb hub on the older beagle xm A/B..
>> >>
>> >> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
>> >>
>> >> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html
>>
>> Using fdt set from the bootloader to use the same FDT for similar
>> boards (like the example with Beagle xM variants) is kind of trying to
>> replicate what we used to do from boards files where it was possible
>> to manage a set of boards using the same platform code.
>>
>> But Device Trees are meant to describe hardware and thus should be
>> static, if two board are almost identical but slightly different, then
>> are two different hardware where each need its proper FDT that
>> describes it.
>>
>> >
>> > I would think that using the 'fdt' command in U-Boot to add all
>> > properties of every cape found on a running system would drive someone
>> > to madness quite quickly.  Moving all of Pantelis' work for dynamic
>> > device trees from the kernel to N bootloaders (U-Boot, barebox, UEFI,
>> > etc) sounds like a step in the wrong direction.
>> >
>>
>> Agreed. I think that until the device tree overlay and the cape
>> manager find their way into mainline we should treat capes as if they
>> were expansion boards attached to a Computer-on-Module. That is, a
>> static based board which its own DTS including the BB{B,W} as an dtsi
>> and not something that can be added on runtime.
>
> It's far more complicated than a SOM plus carrier board. Consider that
> you can have any 4 of these capes stacked on the BBB/BBW in any
> combination (assuming no resource conflicts). Capturing all possible
> combinations in static dtsis is not practical.
>

Right, I forgot that the capes were stackable so is indeed not
practical to model every single combination as DTS in mainline. Even
if stacking was not possible there are just too many capes out there
to have a DTS for every single cape.

My point was that someone who wants to use a BBB + a set of capes can
today write a DTS for its own stacked setup.

Unfortunately I don't have a solution but what I'm pretty sure is that
mangling the DTS from the bootloader is not the right one :-)

> -Matt

Best regards,
Javier

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-13 14:39                   ` Javier Martinez Canillas
@ 2014-05-13 17:07                     ` Pantelis Antoniou
  2014-05-13 17:51                       ` Javier Martinez Canillas
  0 siblings, 1 reply; 20+ messages in thread
From: Pantelis Antoniou @ 2014-05-13 17:07 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: Matt Porter, Tom Rini, Robert Nelson, Tony Lindgren,
	Matt Ranostay, robh+dt, Mark Rutland, Russell King, linux-omap,
	devicetree, linux kernel

Hi Javier,

On May 13, 2014, at 7:39 AM, Javier Martinez Canillas wrote:

> On Tue, May 13, 2014 at 4:22 PM, Matt Porter <matt.porter@linaro.org> wrote:
>> On Tue, May 13, 2014 at 04:06:02PM +0200, Javier Martinez Canillas wrote:
>>> On Tue, May 13, 2014 at 2:53 PM, Tom Rini <trini@ti.com> wrote:
>>>> On 05/12/2014 04:57 PM, Robert Nelson wrote:
>>>>>>> Either case if fine with me.  As who knows when the dtc "overlay" will
>>>>>>> every truly make it mainline, as the capemgr was the only real kernel
>>>>>>> user of the i2c/at24 eeprom information.
>>>>>> 
>>>>>> Sounds like we should keep it disabled though so u-boot can be used
>>>>>> to toggle it while waiting for the capemgr. That's because the board
>>>>>> has a header for pins, so it's not exactly limited to just the capes.
>>>>>> 
>>>>>> Anybody working on enabling/disabling cape dtb configurations in u-boot?
>>>>> 
>>>>> Well,
>>>>> 
>>>>> Would Tom even approve of that in mainline u-boot? He didn't want my
>>>>> "invert" the gpio to enable the usb hub on the older beagle xm A/B..
>>>>> 
>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
>>>>> 
>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html
>>> 
>>> Using fdt set from the bootloader to use the same FDT for similar
>>> boards (like the example with Beagle xM variants) is kind of trying to
>>> replicate what we used to do from boards files where it was possible
>>> to manage a set of boards using the same platform code.
>>> 
>>> But Device Trees are meant to describe hardware and thus should be
>>> static, if two board are almost identical but slightly different, then
>>> are two different hardware where each need its proper FDT that
>>> describes it.
>>> 
>>>> 
>>>> I would think that using the 'fdt' command in U-Boot to add all
>>>> properties of every cape found on a running system would drive someone
>>>> to madness quite quickly.  Moving all of Pantelis' work for dynamic
>>>> device trees from the kernel to N bootloaders (U-Boot, barebox, UEFI,
>>>> etc) sounds like a step in the wrong direction.
>>>> 
>>> 
>>> Agreed. I think that until the device tree overlay and the cape
>>> manager find their way into mainline we should treat capes as if they
>>> were expansion boards attached to a Computer-on-Module. That is, a
>>> static based board which its own DTS including the BB{B,W} as an dtsi
>>> and not something that can be added on runtime.
>> 
>> It's far more complicated than a SOM plus carrier board. Consider that
>> you can have any 4 of these capes stacked on the BBB/BBW in any
>> combination (assuming no resource conflicts). Capturing all possible
>> combinations in static dtsis is not practical.
>> 
> 

Since this appears to be all coming back to DT overlays, let me try to 
address some points.

> Right, I forgot that the capes were stackable so is indeed not
> practical to model every single combination as DTS in mainline. Even
> if stacking was not possible there are just too many capes out there
> to have a DTS for every single cape.
> 

Each cape does have a DTS as dynamically loaded fragment; it works absolutely fine.

Trying to come up with a base DTS for all the capes you've stacked up
is an exponential problem.

> My point was that someone who wants to use a BBB + a set of capes can
> today write a DTS for its own stacked setup.
> 

No, the guy that designs a cape (or learns how to) can not write a DTS for
the base board and the cape in question. Doing that he essentially cuts
himself off from the community.

Let me explain, the point is for people to easily design capes, open-source their
design as well as their software, and share them to the community.

This requires that things are easily shareable.

Requiring a relative newbie in kernel development not only generate his own
base DT, but also to merge all of the other capes DT into his own is a
nightmare.

BTW, on another tangent, it's not just the BB people that care about dynamic
hardware configuration. There are a number of FPGA people that seem interested
as well.

The notion of hardware as something static that never changes is obsolete IMHO.

> Unfortunately I don't have a solution but what I'm pretty sure is that
> mangling the DTS from the bootloader is not the right one :-)
> 

No, it is not. And this is what we're trying to solve here.

>> -Matt
> 
> Best regards,
> Javier

Regards

-- Pantelis


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-13 17:07                     ` Pantelis Antoniou
@ 2014-05-13 17:51                       ` Javier Martinez Canillas
  2014-05-13 20:24                         ` John Syn
  2014-05-14  3:24                         ` Pantelis Antoniou
  0 siblings, 2 replies; 20+ messages in thread
From: Javier Martinez Canillas @ 2014-05-13 17:51 UTC (permalink / raw)
  To: Pantelis Antoniou
  Cc: Matt Porter, Tom Rini, Robert Nelson, Tony Lindgren,
	Matt Ranostay, robh+dt, Mark Rutland, Russell King, linux-omap,
	devicetree, linux kernel

Hello Pantelis,

On Tue, May 13, 2014 at 7:07 PM, Pantelis Antoniou
<pantelis.antoniou@gmail.com> wrote:
> Hi Javier,
>
> On May 13, 2014, at 7:39 AM, Javier Martinez Canillas wrote:
>
>> On Tue, May 13, 2014 at 4:22 PM, Matt Porter <matt.porter@linaro.org> wrote:
>>> On Tue, May 13, 2014 at 04:06:02PM +0200, Javier Martinez Canillas wrote:
>>>> On Tue, May 13, 2014 at 2:53 PM, Tom Rini <trini@ti.com> wrote:
>>>>> On 05/12/2014 04:57 PM, Robert Nelson wrote:
>>>>>>>> Either case if fine with me.  As who knows when the dtc "overlay" will
>>>>>>>> every truly make it mainline, as the capemgr was the only real kernel
>>>>>>>> user of the i2c/at24 eeprom information.
>>>>>>>
>>>>>>> Sounds like we should keep it disabled though so u-boot can be used
>>>>>>> to toggle it while waiting for the capemgr. That's because the board
>>>>>>> has a header for pins, so it's not exactly limited to just the capes.
>>>>>>>
>>>>>>> Anybody working on enabling/disabling cape dtb configurations in u-boot?
>>>>>>
>>>>>> Well,
>>>>>>
>>>>>> Would Tom even approve of that in mainline u-boot? He didn't want my
>>>>>> "invert" the gpio to enable the usb hub on the older beagle xm A/B..
>>>>>>
>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
>>>>>>
>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html
>>>>
>>>> Using fdt set from the bootloader to use the same FDT for similar
>>>> boards (like the example with Beagle xM variants) is kind of trying to
>>>> replicate what we used to do from boards files where it was possible
>>>> to manage a set of boards using the same platform code.
>>>>
>>>> But Device Trees are meant to describe hardware and thus should be
>>>> static, if two board are almost identical but slightly different, then
>>>> are two different hardware where each need its proper FDT that
>>>> describes it.
>>>>
>>>>>
>>>>> I would think that using the 'fdt' command in U-Boot to add all
>>>>> properties of every cape found on a running system would drive someone
>>>>> to madness quite quickly.  Moving all of Pantelis' work for dynamic
>>>>> device trees from the kernel to N bootloaders (U-Boot, barebox, UEFI,
>>>>> etc) sounds like a step in the wrong direction.
>>>>>
>>>>
>>>> Agreed. I think that until the device tree overlay and the cape
>>>> manager find their way into mainline we should treat capes as if they
>>>> were expansion boards attached to a Computer-on-Module. That is, a
>>>> static based board which its own DTS including the BB{B,W} as an dtsi
>>>> and not something that can be added on runtime.
>>>
>>> It's far more complicated than a SOM plus carrier board. Consider that
>>> you can have any 4 of these capes stacked on the BBB/BBW in any
>>> combination (assuming no resource conflicts). Capturing all possible
>>> combinations in static dtsis is not practical.
>>>
>>
>
> Since this appears to be all coming back to DT overlays, let me try to
> address some points.
>

It seems that you misunderstood my comments. I do think that DT
overlays and the cape manager are a great solution for any hardware
that could be expanded on runtime and I really hope that they can
eventually land into mainline.

In fact if you look on my previous mail you will see that I said:
"until device tree overlay and the cape manager find their way into
mainline..."

>> Right, I forgot that the capes were stackable so is indeed not
>> practical to model every single combination as DTS in mainline. Even
>> if stacking was not possible there are just too many capes out there
>> to have a DTS for every single cape.
>>
>
> Each cape does have a DTS as dynamically loaded fragment; it works absolutely fine.
>
> Trying to come up with a base DTS for all the capes you've stacked up
> is an exponential problem.
>
>> My point was that someone who wants to use a BBB + a set of capes can
>> today write a DTS for its own stacked setup.
>>
>
> No, the guy that designs a cape (or learns how to) can not write a DTS for
> the base board and the cape in question. Doing that he essentially cuts
> himself off from the community.
>
> Let me explain, the point is for people to easily design capes, open-source their
> design as well as their software, and share them to the community.
>
> This requires that things are easily shareable.
>
> Requiring a relative newbie in kernel development not only generate his own
> base DT, but also to merge all of the other capes DT into his own is a
> nightmare.
>
> BTW, on another tangent, it's not just the BB people that care about dynamic
> hardware configuration. There are a number of FPGA people that seem interested
> as well.
>
> The notion of hardware as something static that never changes is obsolete IMHO.
>
>> Unfortunately I don't have a solution but what I'm pretty sure is that
>> mangling the DTS from the bootloader is not the right one :-)
>>
>
> No, it is not. And this is what we're trying to solve here.
>

What I said that I'm against is modifying a FDT using U-Boot scripts
commands that is something that mentioned in this thread. That is not
a robust way to do it and also is not something that a newbie could do
it neither.

Also, doing these FDT changes in the bootloader has several
disadvantages, besides having to implement on each bootloaders like
Tom said, you need to upgrade your bootloader which is something that
just can't be done on many boards and also is still a static
configuration since you need to reboot in order to use a different
FDT. So the hardware can't really be expanded on runtime unlike with
DT overlays where the overlays are loaded from regular files.

But I guess you agree with me on all those points and you just
misunderstood my comments. So DT overlays is definitely the way to go
(or something similar) but my point is that until we have that
solution merged, you can use a static DT in mainline for your stacked
cape or use a vendor kernel that already has DT overlays support.

I hope I explained myself better this time ;-)

Best regards,
Javier

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-13 17:51                       ` Javier Martinez Canillas
@ 2014-05-13 20:24                         ` John Syn
  2014-05-14  3:39                           ` Pantelis Antoniou
  2014-05-14  3:24                         ` Pantelis Antoniou
  1 sibling, 1 reply; 20+ messages in thread
From: John Syn @ 2014-05-13 20:24 UTC (permalink / raw)
  To: Javier Martinez Canillas, Pantelis Antoniou
  Cc: Matt Porter, Tom Rini, Robert Nelson, Tony Lindgren,
	Matt Ranostay, robh+dt, Mark Rutland, Russell King, linux-omap,
	devicetree, linux kernel


On 5/13/14, 10:51 AM, "Javier Martinez Canillas" <javier@dowhile0.org>
wrote:

>Hello Pantelis,
>
>On Tue, May 13, 2014 at 7:07 PM, Pantelis Antoniou
><pantelis.antoniou@gmail.com> wrote:
>> Hi Javier,
>>
>> On May 13, 2014, at 7:39 AM, Javier Martinez Canillas wrote:
>>
>>> On Tue, May 13, 2014 at 4:22 PM, Matt Porter <matt.porter@linaro.org>
>>>wrote:
>>>> On Tue, May 13, 2014 at 04:06:02PM +0200, Javier Martinez Canillas
>>>>wrote:
>>>>> On Tue, May 13, 2014 at 2:53 PM, Tom Rini <trini@ti.com> wrote:
>>>>>> On 05/12/2014 04:57 PM, Robert Nelson wrote:
>>>>>>>>> Either case if fine with me.  As who knows when the dtc
>>>>>>>>>"overlay" will
>>>>>>>>> every truly make it mainline, as the capemgr was the only real
>>>>>>>>>kernel
>>>>>>>>> user of the i2c/at24 eeprom information.
>>>>>>>>
>>>>>>>> Sounds like we should keep it disabled though so u-boot can be
>>>>>>>>used
>>>>>>>> to toggle it while waiting for the capemgr. That's because the
>>>>>>>>board
>>>>>>>> has a header for pins, so it's not exactly limited to just the
>>>>>>>>capes.
>>>>>>>>
>>>>>>>> Anybody working on enabling/disabling cape dtb configurations in
>>>>>>>>u-boot?
>>>>>>>
>>>>>>> Well,
>>>>>>>
>>>>>>> Would Tom even approve of that in mainline u-boot? He didn't want
>>>>>>>my
>>>>>>> "invert" the gpio to enable the usb hub on the older beagle xm
>>>>>>>A/B..
>>>>>>>
>>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
>>>>>>>
>>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html
>>>>>
>>>>> Using fdt set from the bootloader to use the same FDT for similar
>>>>> boards (like the example with Beagle xM variants) is kind of trying
>>>>>to
>>>>> replicate what we used to do from boards files where it was possible
>>>>> to manage a set of boards using the same platform code.
>>>>>
>>>>> But Device Trees are meant to describe hardware and thus should be
>>>>> static, if two board are almost identical but slightly different,
>>>>>then
>>>>> are two different hardware where each need its proper FDT that
>>>>> describes it.
>>>>>
>>>>>>
>>>>>> I would think that using the 'fdt' command in U-Boot to add all
>>>>>> properties of every cape found on a running system would drive
>>>>>>someone
>>>>>> to madness quite quickly.  Moving all of Pantelis' work for dynamic
>>>>>> device trees from the kernel to N bootloaders (U-Boot, barebox,
>>>>>>UEFI,
>>>>>> etc) sounds like a step in the wrong direction.
>>>>>>
>>>>>
>>>>> Agreed. I think that until the device tree overlay and the cape
>>>>> manager find their way into mainline we should treat capes as if they
>>>>> were expansion boards attached to a Computer-on-Module. That is, a
>>>>> static based board which its own DTS including the BB{B,W} as an dtsi
>>>>> and not something that can be added on runtime.
>>>>
>>>> It's far more complicated than a SOM plus carrier board. Consider that
>>>> you can have any 4 of these capes stacked on the BBB/BBW in any
>>>> combination (assuming no resource conflicts). Capturing all possible
>>>> combinations in static dtsis is not practical.
>>>>
>>>
>>
>> Since this appears to be all coming back to DT overlays, let me try to
>> address some points.
>>
>
>It seems that you misunderstood my comments. I do think that DT
>overlays and the cape manager are a great solution for any hardware
>that could be expanded on runtime and I really hope that they can
>eventually land into mainline.
>
>In fact if you look on my previous mail you will see that I said:
>"until device tree overlay and the cape manager find their way into
>mainline..."
>
>>> Right, I forgot that the capes were stackable so is indeed not
>>> practical to model every single combination as DTS in mainline. Even
>>> if stacking was not possible there are just too many capes out there
>>> to have a DTS for every single cape.
>>>
>>
>> Each cape does have a DTS as dynamically loaded fragment; it works
>>absolutely fine.
>>
>> Trying to come up with a base DTS for all the capes you've stacked up
>> is an exponential problem.
>>
>>> My point was that someone who wants to use a BBB + a set of capes can
>>> today write a DTS for its own stacked setup.
>>>
>>
>> No, the guy that designs a cape (or learns how to) can not write a DTS
>>for
>> the base board and the cape in question. Doing that he essentially cuts
>> himself off from the community.
>>
>> Let me explain, the point is for people to easily design capes,
>>open-source their
>> design as well as their software, and share them to the community.
>>
>> This requires that things are easily shareable.
>>
>> Requiring a relative newbie in kernel development not only generate his
>>own
>> base DT, but also to merge all of the other capes DT into his own is a
>> nightmare.
>>
>> BTW, on another tangent, it's not just the BB people that care about
>>dynamic
>> hardware configuration. There are a number of FPGA people that seem
>>interested
>> as well.
>>
>> The notion of hardware as something static that never changes is
>>obsolete IMHO.
>>
>>> Unfortunately I don't have a solution but what I'm pretty sure is that
>>> mangling the DTS from the bootloader is not the right one :-)
>>>
>>
>> No, it is not. And this is what we're trying to solve here.
>>
>
>What I said that I'm against is modifying a FDT using U-Boot scripts
>commands that is something that mentioned in this thread. That is not
>a robust way to do it and also is not something that a newbie could do
>it neither.
>
>Also, doing these FDT changes in the bootloader has several
>disadvantages, besides having to implement on each bootloaders like
>Tom said, you need to upgrade your bootloader which is something that
>just can't be done on many boards and also is still a static
>configuration since you need to reboot in order to use a different
>FDT. So the hardware can't really be expanded on runtime unlike with
>DT overlays where the overlays are loaded from regular files.
>
>But I guess you agree with me on all those points and you just
>misunderstood my comments. So DT overlays is definitely the way to go
>(or something similar) but my point is that until we have that
>solution merged, you can use a static DT in mainline for your stacked
>cape or use a vendor kernel that already has DT overlays support.

Given that we are not hot plugging capes, why do we need to modify the DT
at runtime? Even FPGA developers are not modifying their I/O at runtime.
For example, using the BBB as a reference, why not add an am335x-cape-dtsi
to the am335x-boneblack.dts as follows:

/dts-v1/;

/include/ "am33xx.dtsi"

/include/ "am335x-bone-common.dtsi²

/include/ ³am335x-cape.dtsi"

&am33xx_pinmux {
xxx

and ³am335x-cape.dtsi² would look like this:

/include/ ³BB-BONE-AUDI-00A0.dtsi²
/include/ ³BB-BONE-UART1-00A0.dtsi²
xxx

So, cape developers create their own DTSI and users only update the
am335x-cape.dtsi to include the cape DT required.

What am I missing? 

BTW, DTC should be updated to detect I/O conflicts. Waiting for the kernel
to boot before detecting DT conflicts isn¹t OK.

Regards,
John



>
>I hope I explained myself better this time ;-)
>
>Best regards,
>Javier
>--
>To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-13 17:51                       ` Javier Martinez Canillas
  2014-05-13 20:24                         ` John Syn
@ 2014-05-14  3:24                         ` Pantelis Antoniou
  1 sibling, 0 replies; 20+ messages in thread
From: Pantelis Antoniou @ 2014-05-14  3:24 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: Matt Porter, Tom Rini, Robert Nelson, Tony Lindgren,
	Matt Ranostay, robh+dt, Mark Rutland, Russell King, linux-omap,
	devicetree, linux kernel

Hi Javier,

On May 13, 2014, at 10:51 AM, Javier Martinez Canillas wrote:

> Hello Pantelis,
> 
> On Tue, May 13, 2014 at 7:07 PM, Pantelis Antoniou
> <pantelis.antoniou@gmail.com> wrote:
>> Hi Javier,
>> 
>> On May 13, 2014, at 7:39 AM, Javier Martinez Canillas wrote:
>> 
>>> On Tue, May 13, 2014 at 4:22 PM, Matt Porter <matt.porter@linaro.org> wrote:
>>>> On Tue, May 13, 2014 at 04:06:02PM +0200, Javier Martinez Canillas wrote:
>>>>> On Tue, May 13, 2014 at 2:53 PM, Tom Rini <trini@ti.com> wrote:
>>>>>> On 05/12/2014 04:57 PM, Robert Nelson wrote:
>>>>>>>>> Either case if fine with me.  As who knows when the dtc "overlay" will
>>>>>>>>> every truly make it mainline, as the capemgr was the only real kernel
>>>>>>>>> user of the i2c/at24 eeprom information.
>>>>>>>> 
>>>>>>>> Sounds like we should keep it disabled though so u-boot can be used
>>>>>>>> to toggle it while waiting for the capemgr. That's because the board
>>>>>>>> has a header for pins, so it's not exactly limited to just the capes.
>>>>>>>> 
>>>>>>>> Anybody working on enabling/disabling cape dtb configurations in u-boot?
>>>>>>> 
>>>>>>> Well,
>>>>>>> 
>>>>>>> Would Tom even approve of that in mainline u-boot? He didn't want my
>>>>>>> "invert" the gpio to enable the usb hub on the older beagle xm A/B..
>>>>>>> 
>>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
>>>>>>> 
>>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html
>>>>> 
>>>>> Using fdt set from the bootloader to use the same FDT for similar
>>>>> boards (like the example with Beagle xM variants) is kind of trying to
>>>>> replicate what we used to do from boards files where it was possible
>>>>> to manage a set of boards using the same platform code.
>>>>> 
>>>>> But Device Trees are meant to describe hardware and thus should be
>>>>> static, if two board are almost identical but slightly different, then
>>>>> are two different hardware where each need its proper FDT that
>>>>> describes it.
>>>>> 
>>>>>> 
>>>>>> I would think that using the 'fdt' command in U-Boot to add all
>>>>>> properties of every cape found on a running system would drive someone
>>>>>> to madness quite quickly.  Moving all of Pantelis' work for dynamic
>>>>>> device trees from the kernel to N bootloaders (U-Boot, barebox, UEFI,
>>>>>> etc) sounds like a step in the wrong direction.
>>>>>> 
>>>>> 
>>>>> Agreed. I think that until the device tree overlay and the cape
>>>>> manager find their way into mainline we should treat capes as if they
>>>>> were expansion boards attached to a Computer-on-Module. That is, a
>>>>> static based board which its own DTS including the BB{B,W} as an dtsi
>>>>> and not something that can be added on runtime.
>>>> 
>>>> It's far more complicated than a SOM plus carrier board. Consider that
>>>> you can have any 4 of these capes stacked on the BBB/BBW in any
>>>> combination (assuming no resource conflicts). Capturing all possible
>>>> combinations in static dtsis is not practical.
>>>> 
>>> 
>> 
>> Since this appears to be all coming back to DT overlays, let me try to
>> address some points.
>> 
> 
> It seems that you misunderstood my comments. I do think that DT
> overlays and the cape manager are a great solution for any hardware
> that could be expanded on runtime and I really hope that they can
> eventually land into mainline.
> 
> In fact if you look on my previous mail you will see that I said:
> "until device tree overlay and the cape manager find their way into
> mainline..."
> 
>>> Right, I forgot that the capes were stackable so is indeed not
>>> practical to model every single combination as DTS in mainline. Even
>>> if stacking was not possible there are just too many capes out there
>>> to have a DTS for every single cape.
>>> 
>> 
>> Each cape does have a DTS as dynamically loaded fragment; it works absolutely fine.
>> 
>> Trying to come up with a base DTS for all the capes you've stacked up
>> is an exponential problem.
>> 
>>> My point was that someone who wants to use a BBB + a set of capes can
>>> today write a DTS for its own stacked setup.
>>> 
>> 
>> No, the guy that designs a cape (or learns how to) can not write a DTS for
>> the base board and the cape in question. Doing that he essentially cuts
>> himself off from the community.
>> 
>> Let me explain, the point is for people to easily design capes, open-source their
>> design as well as their software, and share them to the community.
>> 
>> This requires that things are easily shareable.
>> 
>> Requiring a relative newbie in kernel development not only generate his own
>> base DT, but also to merge all of the other capes DT into his own is a
>> nightmare.
>> 
>> BTW, on another tangent, it's not just the BB people that care about dynamic
>> hardware configuration. There are a number of FPGA people that seem interested
>> as well.
>> 
>> The notion of hardware as something static that never changes is obsolete IMHO.
>> 
>>> Unfortunately I don't have a solution but what I'm pretty sure is that
>>> mangling the DTS from the bootloader is not the right one :-)
>>> 
>> 
>> No, it is not. And this is what we're trying to solve here.
>> 
> 
> What I said that I'm against is modifying a FDT using U-Boot scripts
> commands that is something that mentioned in this thread. That is not
> a robust way to do it and also is not something that a newbie could do
> it neither.
> 
> Also, doing these FDT changes in the bootloader has several
> disadvantages, besides having to implement on each bootloaders like
> Tom said, you need to upgrade your bootloader which is something that
> just can't be done on many boards and also is still a static
> configuration since you need to reboot in order to use a different
> FDT. So the hardware can't really be expanded on runtime unlike with
> DT overlays where the overlays are loaded from regular files.
> 
> But I guess you agree with me on all those points and you just
> misunderstood my comments. So DT overlays is definitely the way to go
> (or something similar) but my point is that until we have that
> solution merged, you can use a static DT in mainline for your stacked
> cape or use a vendor kernel that already has DT overlays support.
> 
> I hope I explained myself better this time ;-)
> 

Heh, no worries :)

I guess I'm a little jumpy since this discussion feels like a glitch in the matrix for me :)

> Best regards,
> Javier

Regards

-- Pantelis

> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-13 20:24                         ` John Syn
@ 2014-05-14  3:39                           ` Pantelis Antoniou
  2014-05-14  5:44                             ` John Syn
  0 siblings, 1 reply; 20+ messages in thread
From: Pantelis Antoniou @ 2014-05-14  3:39 UTC (permalink / raw)
  To: John Syn
  Cc: Javier Martinez Canillas, Matt Porter, Tom Rini, Robert Nelson,
	Tony Lindgren, Matt Ranostay, robh+dt, Mark Rutland,
	Russell King, linux-omap, devicetree, linux kernel

Hi John,

On May 13, 2014, at 1:24 PM, John Syn wrote:

> 
> On 5/13/14, 10:51 AM, "Javier Martinez Canillas" <javier@dowhile0.org>
> wrote:
> 
>> Hello Pantelis,
>> 
>> On Tue, May 13, 2014 at 7:07 PM, Pantelis Antoniou
>> <pantelis.antoniou@gmail.com> wrote:
>>> Hi Javier,
>>> 
>>> On May 13, 2014, at 7:39 AM, Javier Martinez Canillas wrote:
>>> 
>>>> On Tue, May 13, 2014 at 4:22 PM, Matt Porter <matt.porter@linaro.org>
>>>> wrote:
>>>>> On Tue, May 13, 2014 at 04:06:02PM +0200, Javier Martinez Canillas
>>>>> wrote:
>>>>>> On Tue, May 13, 2014 at 2:53 PM, Tom Rini <trini@ti.com> wrote:
>>>>>>> On 05/12/2014 04:57 PM, Robert Nelson wrote:
>>>>>>>>>> Either case if fine with me.  As who knows when the dtc
>>>>>>>>>> "overlay" will
>>>>>>>>>> every truly make it mainline, as the capemgr was the only real
>>>>>>>>>> kernel
>>>>>>>>>> user of the i2c/at24 eeprom information.
>>>>>>>>> 
>>>>>>>>> Sounds like we should keep it disabled though so u-boot can be
>>>>>>>>> used
>>>>>>>>> to toggle it while waiting for the capemgr. That's because the
>>>>>>>>> board
>>>>>>>>> has a header for pins, so it's not exactly limited to just the
>>>>>>>>> capes.
>>>>>>>>> 
>>>>>>>>> Anybody working on enabling/disabling cape dtb configurations in
>>>>>>>>> u-boot?
>>>>>>>> 
>>>>>>>> Well,
>>>>>>>> 
>>>>>>>> Would Tom even approve of that in mainline u-boot? He didn't want
>>>>>>>> my
>>>>>>>> "invert" the gpio to enable the usb hub on the older beagle xm
>>>>>>>> A/B..
>>>>>>>> 
>>>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
>>>>>>>> 
>>>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html
>>>>>> 
>>>>>> Using fdt set from the bootloader to use the same FDT for similar
>>>>>> boards (like the example with Beagle xM variants) is kind of trying
>>>>>> to
>>>>>> replicate what we used to do from boards files where it was possible
>>>>>> to manage a set of boards using the same platform code.
>>>>>> 
>>>>>> But Device Trees are meant to describe hardware and thus should be
>>>>>> static, if two board are almost identical but slightly different,
>>>>>> then
>>>>>> are two different hardware where each need its proper FDT that
>>>>>> describes it.
>>>>>> 
>>>>>>> 
>>>>>>> I would think that using the 'fdt' command in U-Boot to add all
>>>>>>> properties of every cape found on a running system would drive
>>>>>>> someone
>>>>>>> to madness quite quickly.  Moving all of Pantelis' work for dynamic
>>>>>>> device trees from the kernel to N bootloaders (U-Boot, barebox,
>>>>>>> UEFI,
>>>>>>> etc) sounds like a step in the wrong direction.
>>>>>>> 
>>>>>> 
>>>>>> Agreed. I think that until the device tree overlay and the cape
>>>>>> manager find their way into mainline we should treat capes as if they
>>>>>> were expansion boards attached to a Computer-on-Module. That is, a
>>>>>> static based board which its own DTS including the BB{B,W} as an dtsi
>>>>>> and not something that can be added on runtime.
>>>>> 
>>>>> It's far more complicated than a SOM plus carrier board. Consider that
>>>>> you can have any 4 of these capes stacked on the BBB/BBW in any
>>>>> combination (assuming no resource conflicts). Capturing all possible
>>>>> combinations in static dtsis is not practical.
>>>>> 
>>>> 
>>> 
>>> Since this appears to be all coming back to DT overlays, let me try to
>>> address some points.
>>> 
>> 
>> It seems that you misunderstood my comments. I do think that DT
>> overlays and the cape manager are a great solution for any hardware
>> that could be expanded on runtime and I really hope that they can
>> eventually land into mainline.
>> 
>> In fact if you look on my previous mail you will see that I said:
>> "until device tree overlay and the cape manager find their way into
>> mainline..."
>> 
>>>> Right, I forgot that the capes were stackable so is indeed not
>>>> practical to model every single combination as DTS in mainline. Even
>>>> if stacking was not possible there are just too many capes out there
>>>> to have a DTS for every single cape.
>>>> 
>>> 
>>> Each cape does have a DTS as dynamically loaded fragment; it works
>>> absolutely fine.
>>> 
>>> Trying to come up with a base DTS for all the capes you've stacked up
>>> is an exponential problem.
>>> 
>>>> My point was that someone who wants to use a BBB + a set of capes can
>>>> today write a DTS for its own stacked setup.
>>>> 
>>> 
>>> No, the guy that designs a cape (or learns how to) can not write a DTS
>>> for
>>> the base board and the cape in question. Doing that he essentially cuts
>>> himself off from the community.
>>> 
>>> Let me explain, the point is for people to easily design capes,
>>> open-source their
>>> design as well as their software, and share them to the community.
>>> 
>>> This requires that things are easily shareable.
>>> 
>>> Requiring a relative newbie in kernel development not only generate his
>>> own
>>> base DT, but also to merge all of the other capes DT into his own is a
>>> nightmare.
>>> 
>>> BTW, on another tangent, it's not just the BB people that care about
>>> dynamic
>>> hardware configuration. There are a number of FPGA people that seem
>>> interested
>>> as well.
>>> 
>>> The notion of hardware as something static that never changes is
>>> obsolete IMHO.
>>> 
>>>> Unfortunately I don't have a solution but what I'm pretty sure is that
>>>> mangling the DTS from the bootloader is not the right one :-)
>>>> 
>>> 
>>> No, it is not. And this is what we're trying to solve here.
>>> 
>> 
>> What I said that I'm against is modifying a FDT using U-Boot scripts
>> commands that is something that mentioned in this thread. That is not
>> a robust way to do it and also is not something that a newbie could do
>> it neither.
>> 
>> Also, doing these FDT changes in the bootloader has several
>> disadvantages, besides having to implement on each bootloaders like
>> Tom said, you need to upgrade your bootloader which is something that
>> just can't be done on many boards and also is still a static
>> configuration since you need to reboot in order to use a different
>> FDT. So the hardware can't really be expanded on runtime unlike with
>> DT overlays where the overlays are loaded from regular files.
>> 
>> But I guess you agree with me on all those points and you just
>> misunderstood my comments. So DT overlays is definitely the way to go
>> (or something similar) but my point is that until we have that
>> solution merged, you can use a static DT in mainline for your stacked
>> cape or use a vendor kernel that already has DT overlays support.
> 
> Given that we are not hot plugging capes, why do we need to modify the DT
> at runtime? Even FPGA developers are not modifying their I/O at runtime.
> For example, using the BBB as a reference, why not add an am335x-cape-dtsi
> to the am335x-boneblack.dts as follows:
> 
> /dts-v1/;
> 
> /include/ "am33xx.dtsi"
> 
> /include/ "am335x-bone-common.dtsi²
> 
> /include/ ³am335x-cape.dtsi"
> 
> &am33xx_pinmux {
> xxx
> 
> and ³am335x-cape.dtsi² would look like this:
> 
> /include/ ³BB-BONE-AUDI-00A0.dtsi²
> /include/ ³BB-BONE-UART1-00A0.dtsi²
> xxx
> 
> So, cape developers create their own DTSI and users only update the
> am335x-cape.dtsi to include the cape DT required.
> 
> What am I missing? 
> 
> BTW, DTC should be updated to detect I/O conflicts. Waiting for the kernel
> to boot before detecting DT conflicts isn¹t OK.
> 
> Regards,
> John
> 
> 

For a single cape that's fine.

Now handle the case where your cape must work with any kind of cape combination with a same
kernel+dtb+rootfs image.

The point is that you want to get each cape developer contribute back to the official release,
and to get people to use your stuff without recompiling anything.

No-one making distro-releases is willing to handle a few dozens of DTBs for all the combinations.

Regards

-- Pantelis

> 
>> 
>> I hope I explained myself better this time ;-)
>> 
>> Best regards,
>> Javier
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>> the body of a message to majordomo@vger.kernel.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@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-14  3:39                           ` Pantelis Antoniou
@ 2014-05-14  5:44                             ` John Syn
  2014-05-14  7:12                               ` Javier Martinez Canillas
  0 siblings, 1 reply; 20+ messages in thread
From: John Syn @ 2014-05-14  5:44 UTC (permalink / raw)
  To: Pantelis Antoniou
  Cc: Javier Martinez Canillas, Matt Porter, Tom Rini, Robert Nelson,
	Tony Lindgren, Matt Ranostay, robh+dt, Mark Rutland,
	Russell King, linux-omap, devicetree, linux kernel


On 5/13/14, 8:39 PM, "Pantelis Antoniou" <pantelis.antoniou@gmail.com>
wrote:

>Hi John,
>
>On May 13, 2014, at 1:24 PM, John Syn wrote:
>
>> 
>> On 5/13/14, 10:51 AM, "Javier Martinez Canillas" <javier@dowhile0.org>
>> wrote:
>> 
>>> Hello Pantelis,
>>> 
>>> On Tue, May 13, 2014 at 7:07 PM, Pantelis Antoniou
>>> <pantelis.antoniou@gmail.com> wrote:
>>>> Hi Javier,
>>>> 
>>>> On May 13, 2014, at 7:39 AM, Javier Martinez Canillas wrote:
>>>> 
>>>>> On Tue, May 13, 2014 at 4:22 PM, Matt Porter <matt.porter@linaro.org>
>>>>> wrote:
>>>>>> On Tue, May 13, 2014 at 04:06:02PM +0200, Javier Martinez Canillas
>>>>>> wrote:
>>>>>>> On Tue, May 13, 2014 at 2:53 PM, Tom Rini <trini@ti.com> wrote:
>>>>>>>> On 05/12/2014 04:57 PM, Robert Nelson wrote:
>>>>>>>>>>> Either case if fine with me.  As who knows when the dtc
>>>>>>>>>>> "overlay" will
>>>>>>>>>>> every truly make it mainline, as the capemgr was the only real
>>>>>>>>>>> kernel
>>>>>>>>>>> user of the i2c/at24 eeprom information.
>>>>>>>>>> 
>>>>>>>>>> Sounds like we should keep it disabled though so u-boot can be
>>>>>>>>>> used
>>>>>>>>>> to toggle it while waiting for the capemgr. That's because the
>>>>>>>>>> board
>>>>>>>>>> has a header for pins, so it's not exactly limited to just the
>>>>>>>>>> capes.
>>>>>>>>>> 
>>>>>>>>>> Anybody working on enabling/disabling cape dtb configurations in
>>>>>>>>>> u-boot?
>>>>>>>>> 
>>>>>>>>> Well,
>>>>>>>>> 
>>>>>>>>> Would Tom even approve of that in mainline u-boot? He didn't want
>>>>>>>>> my
>>>>>>>>> "invert" the gpio to enable the usb hub on the older beagle xm
>>>>>>>>> A/B..
>>>>>>>>> 
>>>>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
>>>>>>>>> 
>>>>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html
>>>>>>> 
>>>>>>> Using fdt set from the bootloader to use the same FDT for similar
>>>>>>> boards (like the example with Beagle xM variants) is kind of trying
>>>>>>> to
>>>>>>> replicate what we used to do from boards files where it was
>>>>>>>possible
>>>>>>> to manage a set of boards using the same platform code.
>>>>>>> 
>>>>>>> But Device Trees are meant to describe hardware and thus should be
>>>>>>> static, if two board are almost identical but slightly different,
>>>>>>> then
>>>>>>> are two different hardware where each need its proper FDT that
>>>>>>> describes it.
>>>>>>> 
>>>>>>>> 
>>>>>>>> I would think that using the 'fdt' command in U-Boot to add all
>>>>>>>> properties of every cape found on a running system would drive
>>>>>>>> someone
>>>>>>>> to madness quite quickly.  Moving all of Pantelis' work for
>>>>>>>>dynamic
>>>>>>>> device trees from the kernel to N bootloaders (U-Boot, barebox,
>>>>>>>> UEFI,
>>>>>>>> etc) sounds like a step in the wrong direction.
>>>>>>>> 
>>>>>>> 
>>>>>>> Agreed. I think that until the device tree overlay and the cape
>>>>>>> manager find their way into mainline we should treat capes as if
>>>>>>>they
>>>>>>> were expansion boards attached to a Computer-on-Module. That is, a
>>>>>>> static based board which its own DTS including the BB{B,W} as an
>>>>>>>dtsi
>>>>>>> and not something that can be added on runtime.
>>>>>> 
>>>>>> It's far more complicated than a SOM plus carrier board. Consider
>>>>>>that
>>>>>> you can have any 4 of these capes stacked on the BBB/BBW in any
>>>>>> combination (assuming no resource conflicts). Capturing all possible
>>>>>> combinations in static dtsis is not practical.
>>>>>> 
>>>>> 
>>>> 
>>>> Since this appears to be all coming back to DT overlays, let me try to
>>>> address some points.
>>>> 
>>> 
>>> It seems that you misunderstood my comments. I do think that DT
>>> overlays and the cape manager are a great solution for any hardware
>>> that could be expanded on runtime and I really hope that they can
>>> eventually land into mainline.
>>> 
>>> In fact if you look on my previous mail you will see that I said:
>>> "until device tree overlay and the cape manager find their way into
>>> mainline..."
>>> 
>>>>> Right, I forgot that the capes were stackable so is indeed not
>>>>> practical to model every single combination as DTS in mainline. Even
>>>>> if stacking was not possible there are just too many capes out there
>>>>> to have a DTS for every single cape.
>>>>> 
>>>> 
>>>> Each cape does have a DTS as dynamically loaded fragment; it works
>>>> absolutely fine.
>>>> 
>>>> Trying to come up with a base DTS for all the capes you've stacked up
>>>> is an exponential problem.
>>>> 
>>>>> My point was that someone who wants to use a BBB + a set of capes can
>>>>> today write a DTS for its own stacked setup.
>>>>> 
>>>> 
>>>> No, the guy that designs a cape (or learns how to) can not write a DTS
>>>> for
>>>> the base board and the cape in question. Doing that he essentially
>>>>cuts
>>>> himself off from the community.
>>>> 
>>>> Let me explain, the point is for people to easily design capes,
>>>> open-source their
>>>> design as well as their software, and share them to the community.
>>>> 
>>>> This requires that things are easily shareable.
>>>> 
>>>> Requiring a relative newbie in kernel development not only generate
>>>>his
>>>> own
>>>> base DT, but also to merge all of the other capes DT into his own is a
>>>> nightmare.
>>>> 
>>>> BTW, on another tangent, it's not just the BB people that care about
>>>> dynamic
>>>> hardware configuration. There are a number of FPGA people that seem
>>>> interested
>>>> as well.
>>>> 
>>>> The notion of hardware as something static that never changes is
>>>> obsolete IMHO.
>>>> 
>>>>> Unfortunately I don't have a solution but what I'm pretty sure is
>>>>>that
>>>>> mangling the DTS from the bootloader is not the right one :-)
>>>>> 
>>>> 
>>>> No, it is not. And this is what we're trying to solve here.
>>>> 
>>> 
>>> What I said that I'm against is modifying a FDT using U-Boot scripts
>>> commands that is something that mentioned in this thread. That is not
>>> a robust way to do it and also is not something that a newbie could do
>>> it neither.
>>> 
>>> Also, doing these FDT changes in the bootloader has several
>>> disadvantages, besides having to implement on each bootloaders like
>>> Tom said, you need to upgrade your bootloader which is something that
>>> just can't be done on many boards and also is still a static
>>> configuration since you need to reboot in order to use a different
>>> FDT. So the hardware can't really be expanded on runtime unlike with
>>> DT overlays where the overlays are loaded from regular files.
>>> 
>>> But I guess you agree with me on all those points and you just
>>> misunderstood my comments. So DT overlays is definitely the way to go
>>> (or something similar) but my point is that until we have that
>>> solution merged, you can use a static DT in mainline for your stacked
>>> cape or use a vendor kernel that already has DT overlays support.
>> 
>> Given that we are not hot plugging capes, why do we need to modify the
>>DT
>> at runtime? Even FPGA developers are not modifying their I/O at runtime.
>> For example, using the BBB as a reference, why not add an
>>am335x-cape-dtsi
>> to the am335x-boneblack.dts as follows:
>> 
>> /dts-v1/;
>> 
>> /include/ "am33xx.dtsi"
>> 
>> /include/ "am335x-bone-common.dtsi²
>> 
>> /include/ ³am335x-cape.dtsi"
>> 
>> &am33xx_pinmux {
>> xxx
>> 
>> and ³am335x-cape.dtsi² would look like this:
>> 
>> /include/ ³BB-BONE-AUDI-00A0.dtsi²
>> /include/ ³BB-BONE-UART1-00A0.dtsi²
>> xxx
>> 
>> So, cape developers create their own DTSI and users only update the
>> am335x-cape.dtsi to include the cape DT required.
>> 
>> What am I missing?
>> 
>> BTW, DTC should be updated to detect I/O conflicts. Waiting for the
>>kernel
>> to boot before detecting DT conflicts isn¹t OK.
>> 
>> Regards,
>> John
>> 
>> 
>
>For a single cape that's fine.
>
>Now handle the case where your cape must work with any kind of cape
>combination with a same
>kernel+dtb+rootfs image.
>
>The point is that you want to get each cape developer contribute back to
>the official release,
>and to get people to use your stuff without recompiling anything.
>
>No-one making distro-releases is willing to handle a few dozens of DTBs
>for all the combinations.
Hi Pantelis,

I’m not sure I understand the “single cape” comment. If a developer
modifies the cape DTSI (e.g. am335x-cape.dtsi) and include definitions for
all attached capes, surely this will work for any combinations of capes.
>From your explanation, it seems you don’t want the developer to run DTC,
but you are OK with updating the uEnv.txt file or modifying some cape
manager script file to load the DT overlays at boot time.

Until DT overlay makes it into mainline, wouldn’t the cape DTSI solution
suffice for now? Can some component that is initally disabled (status =
“disabled") be enabled (status = “okay”) via one of the cape DTSI
referenced in am335x-cape.dtsi? I prefer not to pollute u-boot with DT
info because synching u-boot and the kernel could be a nightmare.

Regards,
John
>
>Regards
>
>-- Pantelis
>
>> 
>>> 
>>> I hope I explained myself better this time ;-)
>>> 
>>> Best regards,
>>> Javier
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-omap"
>>>in
>>> the body of a message to majordomo@vger.kernel.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@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>



^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition
  2014-05-14  5:44                             ` John Syn
@ 2014-05-14  7:12                               ` Javier Martinez Canillas
  0 siblings, 0 replies; 20+ messages in thread
From: Javier Martinez Canillas @ 2014-05-14  7:12 UTC (permalink / raw)
  To: John Syn
  Cc: Pantelis Antoniou, Matt Porter, Tom Rini, Robert Nelson,
	Tony Lindgren, Matt Ranostay, robh+dt, Mark Rutland,
	Russell King, linux-omap, devicetree, linux kernel

Hello Jhon,

On Wed, May 14, 2014 at 7:44 AM, John Syn <john3909@gmail.com> wrote:
>
> On 5/13/14, 8:39 PM, "Pantelis Antoniou" <pantelis.antoniou@gmail.com>
> wrote:
>
>>Hi John,
>>
>>On May 13, 2014, at 1:24 PM, John Syn wrote:
>>
>>>
>>> On 5/13/14, 10:51 AM, "Javier Martinez Canillas" <javier@dowhile0.org>
>>> wrote:
>>>
>>>> Hello Pantelis,
>>>>
>>>> On Tue, May 13, 2014 at 7:07 PM, Pantelis Antoniou
>>>> <pantelis.antoniou@gmail.com> wrote:
>>>>> Hi Javier,
>>>>>
>>>>> On May 13, 2014, at 7:39 AM, Javier Martinez Canillas wrote:
>>>>>
>>>>>> On Tue, May 13, 2014 at 4:22 PM, Matt Porter <matt.porter@linaro.org>
>>>>>> wrote:
>>>>>>> On Tue, May 13, 2014 at 04:06:02PM +0200, Javier Martinez Canillas
>>>>>>> wrote:
>>>>>>>> On Tue, May 13, 2014 at 2:53 PM, Tom Rini <trini@ti.com> wrote:
>>>>>>>>> On 05/12/2014 04:57 PM, Robert Nelson wrote:
>>>>>>>>>>>> Either case if fine with me.  As who knows when the dtc
>>>>>>>>>>>> "overlay" will
>>>>>>>>>>>> every truly make it mainline, as the capemgr was the only real
>>>>>>>>>>>> kernel
>>>>>>>>>>>> user of the i2c/at24 eeprom information.
>>>>>>>>>>>
>>>>>>>>>>> Sounds like we should keep it disabled though so u-boot can be
>>>>>>>>>>> used
>>>>>>>>>>> to toggle it while waiting for the capemgr. That's because the
>>>>>>>>>>> board
>>>>>>>>>>> has a header for pins, so it's not exactly limited to just the
>>>>>>>>>>> capes.
>>>>>>>>>>>
>>>>>>>>>>> Anybody working on enabling/disabling cape dtb configurations in
>>>>>>>>>>> u-boot?
>>>>>>>>>>
>>>>>>>>>> Well,
>>>>>>>>>>
>>>>>>>>>> Would Tom even approve of that in mainline u-boot? He didn't want
>>>>>>>>>> my
>>>>>>>>>> "invert" the gpio to enable the usb hub on the older beagle xm
>>>>>>>>>> A/B..
>>>>>>>>>>
>>>>>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172154.html
>>>>>>>>>>
>>>>>>>>>> http://lists.denx.de/pipermail/u-boot/2014-January/172274.html
>>>>>>>>
>>>>>>>> Using fdt set from the bootloader to use the same FDT for similar
>>>>>>>> boards (like the example with Beagle xM variants) is kind of trying
>>>>>>>> to
>>>>>>>> replicate what we used to do from boards files where it was
>>>>>>>>possible
>>>>>>>> to manage a set of boards using the same platform code.
>>>>>>>>
>>>>>>>> But Device Trees are meant to describe hardware and thus should be
>>>>>>>> static, if two board are almost identical but slightly different,
>>>>>>>> then
>>>>>>>> are two different hardware where each need its proper FDT that
>>>>>>>> describes it.
>>>>>>>>
>>>>>>>>>
>>>>>>>>> I would think that using the 'fdt' command in U-Boot to add all
>>>>>>>>> properties of every cape found on a running system would drive
>>>>>>>>> someone
>>>>>>>>> to madness quite quickly.  Moving all of Pantelis' work for
>>>>>>>>>dynamic
>>>>>>>>> device trees from the kernel to N bootloaders (U-Boot, barebox,
>>>>>>>>> UEFI,
>>>>>>>>> etc) sounds like a step in the wrong direction.
>>>>>>>>>
>>>>>>>>
>>>>>>>> Agreed. I think that until the device tree overlay and the cape
>>>>>>>> manager find their way into mainline we should treat capes as if
>>>>>>>>they
>>>>>>>> were expansion boards attached to a Computer-on-Module. That is, a
>>>>>>>> static based board which its own DTS including the BB{B,W} as an
>>>>>>>>dtsi
>>>>>>>> and not something that can be added on runtime.
>>>>>>>
>>>>>>> It's far more complicated than a SOM plus carrier board. Consider
>>>>>>>that
>>>>>>> you can have any 4 of these capes stacked on the BBB/BBW in any
>>>>>>> combination (assuming no resource conflicts). Capturing all possible
>>>>>>> combinations in static dtsis is not practical.
>>>>>>>
>>>>>>
>>>>>
>>>>> Since this appears to be all coming back to DT overlays, let me try to
>>>>> address some points.
>>>>>
>>>>
>>>> It seems that you misunderstood my comments. I do think that DT
>>>> overlays and the cape manager are a great solution for any hardware
>>>> that could be expanded on runtime and I really hope that they can
>>>> eventually land into mainline.
>>>>
>>>> In fact if you look on my previous mail you will see that I said:
>>>> "until device tree overlay and the cape manager find their way into
>>>> mainline..."
>>>>
>>>>>> Right, I forgot that the capes were stackable so is indeed not
>>>>>> practical to model every single combination as DTS in mainline. Even
>>>>>> if stacking was not possible there are just too many capes out there
>>>>>> to have a DTS for every single cape.
>>>>>>
>>>>>
>>>>> Each cape does have a DTS as dynamically loaded fragment; it works
>>>>> absolutely fine.
>>>>>
>>>>> Trying to come up with a base DTS for all the capes you've stacked up
>>>>> is an exponential problem.
>>>>>
>>>>>> My point was that someone who wants to use a BBB + a set of capes can
>>>>>> today write a DTS for its own stacked setup.
>>>>>>
>>>>>
>>>>> No, the guy that designs a cape (or learns how to) can not write a DTS
>>>>> for
>>>>> the base board and the cape in question. Doing that he essentially
>>>>>cuts
>>>>> himself off from the community.
>>>>>
>>>>> Let me explain, the point is for people to easily design capes,
>>>>> open-source their
>>>>> design as well as their software, and share them to the community.
>>>>>
>>>>> This requires that things are easily shareable.
>>>>>
>>>>> Requiring a relative newbie in kernel development not only generate
>>>>>his
>>>>> own
>>>>> base DT, but also to merge all of the other capes DT into his own is a
>>>>> nightmare.
>>>>>
>>>>> BTW, on another tangent, it's not just the BB people that care about
>>>>> dynamic
>>>>> hardware configuration. There are a number of FPGA people that seem
>>>>> interested
>>>>> as well.
>>>>>
>>>>> The notion of hardware as something static that never changes is
>>>>> obsolete IMHO.
>>>>>
>>>>>> Unfortunately I don't have a solution but what I'm pretty sure is
>>>>>>that
>>>>>> mangling the DTS from the bootloader is not the right one :-)
>>>>>>
>>>>>
>>>>> No, it is not. And this is what we're trying to solve here.
>>>>>
>>>>
>>>> What I said that I'm against is modifying a FDT using U-Boot scripts
>>>> commands that is something that mentioned in this thread. That is not
>>>> a robust way to do it and also is not something that a newbie could do
>>>> it neither.
>>>>
>>>> Also, doing these FDT changes in the bootloader has several
>>>> disadvantages, besides having to implement on each bootloaders like
>>>> Tom said, you need to upgrade your bootloader which is something that
>>>> just can't be done on many boards and also is still a static
>>>> configuration since you need to reboot in order to use a different
>>>> FDT. So the hardware can't really be expanded on runtime unlike with
>>>> DT overlays where the overlays are loaded from regular files.
>>>>
>>>> But I guess you agree with me on all those points and you just
>>>> misunderstood my comments. So DT overlays is definitely the way to go
>>>> (or something similar) but my point is that until we have that
>>>> solution merged, you can use a static DT in mainline for your stacked
>>>> cape or use a vendor kernel that already has DT overlays support.
>>>
>>> Given that we are not hot plugging capes, why do we need to modify the
>>>DT
>>> at runtime? Even FPGA developers are not modifying their I/O at runtime.
>>> For example, using the BBB as a reference, why not add an
>>>am335x-cape-dtsi
>>> to the am335x-boneblack.dts as follows:
>>>
>>> /dts-v1/;
>>>
>>> /include/ "am33xx.dtsi"
>>>
>>> /include/ "am335x-bone-common.dtsi²
>>>
>>> /include/ ³am335x-cape.dtsi"
>>>
>>> &am33xx_pinmux {
>>> xxx
>>>
>>> and ³am335x-cape.dtsi² would look like this:
>>>
>>> /include/ ³BB-BONE-AUDI-00A0.dtsi²
>>> /include/ ³BB-BONE-UART1-00A0.dtsi²
>>> xxx
>>>
>>> So, cape developers create their own DTSI and users only update the
>>> am335x-cape.dtsi to include the cape DT required.
>>>
>>> What am I missing?
>>>
>>> BTW, DTC should be updated to detect I/O conflicts. Waiting for the
>>>kernel
>>> to boot before detecting DT conflicts isn¹t OK.
>>>
>>> Regards,
>>> John
>>>
>>>
>>
>>For a single cape that's fine.
>>
>>Now handle the case where your cape must work with any kind of cape
>>combination with a same
>>kernel+dtb+rootfs image.
>>
>>The point is that you want to get each cape developer contribute back to
>>the official release,
>>and to get people to use your stuff without recompiling anything.
>>
>>No-one making distro-releases is willing to handle a few dozens of DTBs
>>for all the combinations.
> Hi Pantelis,
>
> I’m not sure I understand the “single cape” comment. If a developer
> modifies the cape DTSI (e.g. am335x-cape.dtsi) and include definitions for
> all attached capes, surely this will work for any combinations of capes.
> From your explanation, it seems you don’t want the developer to run DTC,
> but you are OK with updating the uEnv.txt file or modifying some cape
> manager script file to load the DT overlays at boot time.
>

What I think Pantelis meant is that is not an ideal solution to force
users to write &&|| modify a single DT for any combination of capes.
It is much easier to have a base dts and a set of DT fragments that
can be overlayed in runtime.

Also I don't see where he said that he is ok with the DT mangling from
u-boot, in fact I guess Pantelis is not fond about that idea and
that's why he wrote the DT overlays support ;-)

Maybe you are confusing how DT overlays and the cape manager work? The
former is an extension to OF in order to support the concept of
fragments that can be overlayed on top of a current tree and the later
is an in-kernel mechanism to load the cape dtb with the DT fragment
that is going to be overlayed.

There is no bootloader involved, the DT overlay happens on runtime and
is the kernel the one that loads the dtb fragments in a similar way
that loads firmware today.

> Until DT overlay makes it into mainline, wouldn’t the cape DTSI solution
> suffice for now? Can some component that is initally disabled (status =
> “disabled") be enabled (status = “okay”) via one of the cape DTSI
> referenced in am335x-cape.dtsi? I prefer not to pollute u-boot with DT
> info because synching u-boot and the kernel could be a nightmare.
>

I agree with you on that regard. Until DT overlays makes into mainline
a user that does not want to use a vendor tree with DT overlays
support can write its own DTS which describes a stacked BBB + cape* as
if it was just a single fixed board with all those peripherals.

No need to modify the compiled DTB from U-Boot before passing to the kernel.

> Regards,
> John
>>

Best regards,
Javier

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2014-05-14  7:12 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-05-10  1:43 [PATCH v2] ARM: dts: am335x-bone-common: Add i2c2 definition Matt Ranostay
2014-05-12 19:50 ` Tony Lindgren
2014-05-12 19:59   ` Robert Nelson
2014-05-12 20:15     ` Tony Lindgren
2014-05-12 20:27       ` Robert Nelson
2014-05-12 20:42         ` Tony Lindgren
2014-05-12 20:57           ` Robert Nelson
2014-05-12 21:07             ` Tony Lindgren
2014-05-13 12:53             ` Tom Rini
2014-05-13 14:06               ` Javier Martinez Canillas
2014-05-13 14:13                 ` Tom Rini
2014-05-13 14:22                 ` Matt Porter
2014-05-13 14:39                   ` Javier Martinez Canillas
2014-05-13 17:07                     ` Pantelis Antoniou
2014-05-13 17:51                       ` Javier Martinez Canillas
2014-05-13 20:24                         ` John Syn
2014-05-14  3:39                           ` Pantelis Antoniou
2014-05-14  5:44                             ` John Syn
2014-05-14  7:12                               ` Javier Martinez Canillas
2014-05-14  3:24                         ` Pantelis Antoniou

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).