diff mbox series

[10/11] arm: fdt: omap: update dts panel node

Message ID 20200209184745.20473-11-dariobin@libero.it
State Changes Requested, archived
Delegated to: Lokesh Vutla
Headers show
Series Add DM/DTS support for omap video driver | expand

Commit Message

Dario Binacchi Feb. 9, 2020, 6:47 p.m. UTC
Add the "u-boot,dm-pre-reloc" property to the "ti,tilcdc,panel"
compatible node. In this way the video-uclass module can allocate the
amount of memory needed to be assigned to the frame buffer.

Signed-off-by: Dario Binacchi <dariobin@libero.it>
---

 arch/arm/dts/am335x-brppt1-mmc.dts  | 2 ++
 arch/arm/dts/am335x-brppt1-nand.dts | 2 ++
 arch/arm/dts/am335x-brppt1-spi.dts  | 2 ++
 arch/arm/dts/am335x-brsmarc1.dts    | 1 +
 arch/arm/dts/am335x-brxre1.dts      | 2 ++
 arch/arm/dts/am335x-evm.dts         | 1 +
 arch/arm/dts/am335x-evmsk.dts       | 1 +
 arch/arm/dts/am335x-guardian.dts    | 1 +
 arch/arm/dts/am335x-pdu001.dts      | 1 +
 arch/arm/dts/am335x-pxm50.dts       | 1 +
 arch/arm/dts/am335x-rut.dts         | 1 +
 arch/arm/dts/da850-evm.dts          | 1 +
 12 files changed, 16 insertions(+)

Comments

Lokesh Vutla Feb. 10, 2020, 4:22 a.m. UTC | #1
On 10/02/20 12:17 AM, Dario Binacchi wrote:
> Add the "u-boot,dm-pre-reloc" property to the "ti,tilcdc,panel"
> compatible node. In this way the video-uclass module can allocate the
> amount of memory needed to be assigned to the frame buffer.

hmm..why do you need to add pre-reloc for allocating the memory? pre-reloc flag
is needed only when probing before relocation.

> 
> Signed-off-by: Dario Binacchi <dariobin@libero.it>

$subject should be : arm: dts: am335x:

> ---
> 
>  arch/arm/dts/am335x-brppt1-mmc.dts  | 2 ++
>  arch/arm/dts/am335x-brppt1-nand.dts | 2 ++
>  arch/arm/dts/am335x-brppt1-spi.dts  | 2 ++
>  arch/arm/dts/am335x-brsmarc1.dts    | 1 +
>  arch/arm/dts/am335x-brxre1.dts      | 2 ++
>  arch/arm/dts/am335x-evm.dts         | 1 +
>  arch/arm/dts/am335x-evmsk.dts       | 1 +
>  arch/arm/dts/am335x-guardian.dts    | 1 +
>  arch/arm/dts/am335x-pdu001.dts      | 1 +
>  arch/arm/dts/am335x-pxm50.dts       | 1 +
>  arch/arm/dts/am335x-rut.dts         | 1 +
>  arch/arm/dts/da850-evm.dts          | 1 +
>  12 files changed, 16 insertions(+)
> 
> diff --git a/arch/arm/dts/am335x-brppt1-mmc.dts b/arch/arm/dts/am335x-brppt1-mmc.dts
> index 9be34d9da0..6f919711f0 100644
> --- a/arch/arm/dts/am335x-brppt1-mmc.dts
> +++ b/arch/arm/dts/am335x-brppt1-mmc.dts
> @@ -53,6 +53,8 @@
>  		bkl-pwm = <&pwmbacklight>;
>  		bkl-tps = <&tps_bl>;
>  
> +		u-boot,dm-pre-reloc;

This is u-boot specific dt flag. Please use it under *-u-boot.dtsi file.

Thanks and regards,
Lokesh
Tom Rini Feb. 10, 2020, 3:15 p.m. UTC | #2
On Mon, Feb 10, 2020 at 09:52:59AM +0530, Lokesh Vutla wrote:
> 
> 
> On 10/02/20 12:17 AM, Dario Binacchi wrote:
> > Add the "u-boot,dm-pre-reloc" property to the "ti,tilcdc,panel"
> > compatible node. In this way the video-uclass module can allocate the
> > amount of memory needed to be assigned to the frame buffer.
> 
> hmm..why do you need to add pre-reloc for allocating the memory? pre-reloc flag
> is needed only when probing before relocation.
> 
> > 
> > Signed-off-by: Dario Binacchi <dariobin@libero.it>
> 
> $subject should be : arm: dts: am335x:
> 
> > ---
> > 
> >  arch/arm/dts/am335x-brppt1-mmc.dts  | 2 ++
> >  arch/arm/dts/am335x-brppt1-nand.dts | 2 ++
> >  arch/arm/dts/am335x-brppt1-spi.dts  | 2 ++
> >  arch/arm/dts/am335x-brsmarc1.dts    | 1 +
> >  arch/arm/dts/am335x-brxre1.dts      | 2 ++
> >  arch/arm/dts/am335x-evm.dts         | 1 +
> >  arch/arm/dts/am335x-evmsk.dts       | 1 +
> >  arch/arm/dts/am335x-guardian.dts    | 1 +
> >  arch/arm/dts/am335x-pdu001.dts      | 1 +
> >  arch/arm/dts/am335x-pxm50.dts       | 1 +
> >  arch/arm/dts/am335x-rut.dts         | 1 +
> >  arch/arm/dts/da850-evm.dts          | 1 +
> >  12 files changed, 16 insertions(+)
> > 
> > diff --git a/arch/arm/dts/am335x-brppt1-mmc.dts b/arch/arm/dts/am335x-brppt1-mmc.dts
> > index 9be34d9da0..6f919711f0 100644
> > --- a/arch/arm/dts/am335x-brppt1-mmc.dts
> > +++ b/arch/arm/dts/am335x-brppt1-mmc.dts
> > @@ -53,6 +53,8 @@
> >  		bkl-pwm = <&pwmbacklight>;
> >  		bkl-tps = <&tps_bl>;
> >  
> > +		u-boot,dm-pre-reloc;
> 
> This is u-boot specific dt flag. Please use it under *-u-boot.dtsi file.

Note that these boards don't support Linux (VxWorks only) and as such we
allow the u-boot, nodes here.
Tom Rini Feb. 10, 2020, 4:04 p.m. UTC | #3
On Mon, Feb 10, 2020 at 10:15:27AM -0500, Tom Rini wrote:
> On Mon, Feb 10, 2020 at 09:52:59AM +0530, Lokesh Vutla wrote:
> > 
> > 
> > On 10/02/20 12:17 AM, Dario Binacchi wrote:
> > > Add the "u-boot,dm-pre-reloc" property to the "ti,tilcdc,panel"
> > > compatible node. In this way the video-uclass module can allocate the
> > > amount of memory needed to be assigned to the frame buffer.
> > 
> > hmm..why do you need to add pre-reloc for allocating the memory? pre-reloc flag
> > is needed only when probing before relocation.
> > 
> > > 
> > > Signed-off-by: Dario Binacchi <dariobin@libero.it>
> > 
> > $subject should be : arm: dts: am335x:
> > 
> > > ---
> > > 
> > >  arch/arm/dts/am335x-brppt1-mmc.dts  | 2 ++
> > >  arch/arm/dts/am335x-brppt1-nand.dts | 2 ++
> > >  arch/arm/dts/am335x-brppt1-spi.dts  | 2 ++
> > >  arch/arm/dts/am335x-brsmarc1.dts    | 1 +
> > >  arch/arm/dts/am335x-brxre1.dts      | 2 ++
> > >  arch/arm/dts/am335x-evm.dts         | 1 +
> > >  arch/arm/dts/am335x-evmsk.dts       | 1 +
> > >  arch/arm/dts/am335x-guardian.dts    | 1 +
> > >  arch/arm/dts/am335x-pdu001.dts      | 1 +
> > >  arch/arm/dts/am335x-pxm50.dts       | 1 +
> > >  arch/arm/dts/am335x-rut.dts         | 1 +
> > >  arch/arm/dts/da850-evm.dts          | 1 +
> > >  12 files changed, 16 insertions(+)
> > > 
> > > diff --git a/arch/arm/dts/am335x-brppt1-mmc.dts b/arch/arm/dts/am335x-brppt1-mmc.dts
> > > index 9be34d9da0..6f919711f0 100644
> > > --- a/arch/arm/dts/am335x-brppt1-mmc.dts
> > > +++ b/arch/arm/dts/am335x-brppt1-mmc.dts
> > > @@ -53,6 +53,8 @@
> > >  		bkl-pwm = <&pwmbacklight>;
> > >  		bkl-tps = <&tps_bl>;
> > >  
> > > +		u-boot,dm-pre-reloc;
> > 
> > This is u-boot specific dt flag. Please use it under *-u-boot.dtsi file.
> 
> Note that these boards don't support Linux (VxWorks only) and as such we
> allow the u-boot, nodes here.

To clarify (after an off-list ping), I'm referring to the am335x-br*
boards only here.
Dario Binacchi Feb. 11, 2020, 8:06 p.m. UTC | #4
> Il 11 febbraio 2020 alle 5.11 Lokesh Vutla <lokeshvutla@ti.com> ha scritto:
> 
> 
> 
> 
> On 11/02/20 1:49 AM, dariobin@libero.it wrote:
> > Hi Lokesh
> > 
> >> Il 10 febbraio 2020 alle 5.22 Lokesh Vutla <lokeshvutla@ti.com> ha scritto:
> >>
> >>
> >>
> >>
> >> On 10/02/20 12:17 AM, Dario Binacchi wrote:
> >>> Add the "u-boot,dm-pre-reloc" property to the "ti,tilcdc,panel"
> >>> compatible node. In this way the video-uclass module can allocate the
> >>> amount of memory needed to be assigned to the frame buffer.
> >>
> >> hmm..why do you need to add pre-reloc for allocating the memory? pre-reloc flag
> >> is needed only when probing before relocation.
> >>
> > u-boot told me with an error message. 
> > Following the message I arrived at the video-uclass.c:
> > 
> > 		/* Device tree node may need the 'u-boot,dm-pre-reloc' or
> > 		 * 'u-boot,dm-pre-proper' tag
> > 		 */
> > 		printf("Video device '%s' cannot allocate frame buffer memory -ensure the device is set up before relocation\n",
> > 		       dev->name);
> > 		return -ENOSPC;
> 
> When does your driver gets probed?
The driver is probed in 
int board_late_init(void)
{
        ret = uclass_get_device(UCLASS_VIDEO, 0, &dev);
        if (ret)
                printf("Unable to get VIDEO device (%d)\n", ret);

        ret = uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con);
        if (ret)
                printf("Unable to get VIDEO CONSOLE device (%d)\n", ret);

	snprintf(buf, sizeof(buf), "%s\n%s\n", U_BOOT_VERSION, corp);
	vidconsole_position_cursor(con, 0, 0);
	for (s = buf; *s; s++)
		vidconsole_put_char(con, *s);

}

but, without the "u-boot,dm-pre-reloc" property, the error occurs early, during the video device post_binding.
I enabled debug messages in :
- drivers/core/device.c
- drivers/core/uclass.c
- drivers/video/video-uclass.c
and this is what is displayed by u-boot console:
U-Boot SPL 2018.11-rc2 (Feb 11 2020 - 17:34:58 +0100)
Trying to boot from NAND
## Checking hash(es) for Image uboot ... sha1+ OK
## Checking hash(es) for Image fdt ... sha1+ OK


U-Boot 2018.11-rc2 (Feb 11 2020 - 17:34:58 +0100)

CPU  : AM335X-GP rev 2.1
Model: TI AM335x
DRAM:  Video frame buffers from 8fff0000 to 8fff0000
256 MiB
uclass_find_device_by_seq: 0 -1
uclass_find_device_by_seq: 0 0
   - -1 -1 'root_driver'
   - not found
Bound device mod_exp_sw to root_driver
Bound device scm@210000 to l4_wkup@44c00000
Bound device l4_wkup@44c00000 to ocp
Bound device gpio@44e07000 to ocp
Bound device gpio@4804c000 to ocp
Bound device gpio@481ac000 to ocp
Bound device gpio@481ae000 to ocp
Bound device serial@44e09000 to ocp
Bound device serial@48022000 to ocp
Bound device serial@48024000 to ocp
Bound device serial@481a6000 to ocp
Bound device i2c@44e0b000 to ocp
Bound device i2c@4802a000 to ocp
Bound device mmc@48060000 to ocp
Bound device timer@48040000 to ocp
Bound device timer@48042000 to ocp
Bound device timer@48044000 to ocp
Bound device timer@48046000 to ocp
Bound device timer@48048000 to ocp
Bound device timer@4804a000 to ocp
Bound device usb@47401000 to usb@47400000
Bound device usb@47401800 to usb@47400000
Bound device usb@47400000 to ocp
Bound device ethernet@4a100000 to ocp
Bound device ocp to root_driver
Video device 'panel' cannot allocate frame buffer memory -ensure the device is set up before relocation
Error binding driver 'am335x_fb': -28
Some drivers failed to bind
initcall sequence 8ffca898 failed at call 8080f71f (err=-28)
### ERROR ### Please RESET the board ###  

Thanks
Best Regards
Dario 
> 
> Thanks and regards,
> Lokesh
> 
> >>>
> >>> Signed-off-by: Dario Binacchi <dariobin@libero.it>
> >>
> >> $subject should be : arm: dts: am335x:
> > Ok. I will change it.
> > 
> >>
> >>> ---
> >>>
> >>>  arch/arm/dts/am335x-brppt1-mmc.dts  | 2 ++
> >>>  arch/arm/dts/am335x-brppt1-nand.dts | 2 ++
> >>>  arch/arm/dts/am335x-brppt1-spi.dts  | 2 ++
> >>>  arch/arm/dts/am335x-brsmarc1.dts    | 1 +
> >>>  arch/arm/dts/am335x-brxre1.dts      | 2 ++
> >>>  arch/arm/dts/am335x-evm.dts         | 1 +
> >>>  arch/arm/dts/am335x-evmsk.dts       | 1 +
> >>>  arch/arm/dts/am335x-guardian.dts    | 1 +
> >>>  arch/arm/dts/am335x-pdu001.dts      | 1 +
> >>>  arch/arm/dts/am335x-pxm50.dts       | 1 +
> >>>  arch/arm/dts/am335x-rut.dts         | 1 +
> >>>  arch/arm/dts/da850-evm.dts          | 1 +
> >>>  12 files changed, 16 insertions(+)
> >>>
> >>> diff --git a/arch/arm/dts/am335x-brppt1-mmc.dts b/arch/arm/dts/am335x-brppt1-mmc.dts
> >>> index 9be34d9da0..6f919711f0 100644
> >>> --- a/arch/arm/dts/am335x-brppt1-mmc.dts
> >>> +++ b/arch/arm/dts/am335x-brppt1-mmc.dts
> >>> @@ -53,6 +53,8 @@
> >>>  		bkl-pwm = <&pwmbacklight>;
> >>>  		bkl-tps = <&tps_bl>;
> >>>  
> >>> +		u-boot,dm-pre-reloc;
> >>
> >> This is u-boot specific dt flag. Please use it under *-u-boot.dtsi file.
> > Ok. I will fix it.
> > 
> > ---
> > Dario
> >>
> >> Thanks and regards,
> >> Lokesh
diff mbox series

Patch

diff --git a/arch/arm/dts/am335x-brppt1-mmc.dts b/arch/arm/dts/am335x-brppt1-mmc.dts
index 9be34d9da0..6f919711f0 100644
--- a/arch/arm/dts/am335x-brppt1-mmc.dts
+++ b/arch/arm/dts/am335x-brppt1-mmc.dts
@@ -53,6 +53,8 @@ 
 		bkl-pwm = <&pwmbacklight>;
 		bkl-tps = <&tps_bl>;
 
+		u-boot,dm-pre-reloc;
+
 		panel-info {
 			ac-bias		= <255>;
 			ac-bias-intrpt	= <0>;
diff --git a/arch/arm/dts/am335x-brppt1-nand.dts b/arch/arm/dts/am335x-brppt1-nand.dts
index 11bd5c551c..9d4340f591 100644
--- a/arch/arm/dts/am335x-brppt1-nand.dts
+++ b/arch/arm/dts/am335x-brppt1-nand.dts
@@ -53,6 +53,8 @@ 
 		bkl-pwm = <&pwmbacklight>;
 		bkl-tps = <&tps_bl>;
 
+		u-boot,dm-pre-reloc;
+
 		panel-info {
 			ac-bias		= <255>;
 			ac-bias-intrpt	= <0>;
diff --git a/arch/arm/dts/am335x-brppt1-spi.dts b/arch/arm/dts/am335x-brppt1-spi.dts
index 01ab74be5e..c078af8fba 100644
--- a/arch/arm/dts/am335x-brppt1-spi.dts
+++ b/arch/arm/dts/am335x-brppt1-spi.dts
@@ -54,6 +54,8 @@ 
 		bkl-pwm = <&pwmbacklight>;
 		bkl-tps = <&tps_bl>;
 
+		u-boot,dm-pre-reloc;
+
 		panel-info {
 			ac-bias		= <255>;
 			ac-bias-intrpt	= <0>;
diff --git a/arch/arm/dts/am335x-brsmarc1.dts b/arch/arm/dts/am335x-brsmarc1.dts
index a63fc2da22..7e9516e8f8 100644
--- a/arch/arm/dts/am335x-brsmarc1.dts
+++ b/arch/arm/dts/am335x-brsmarc1.dts
@@ -59,6 +59,7 @@ 
 		/*backlight = <&tps_bl>; */
 		compatible = "ti,tilcdc,panel";
 		status = "okay";
+		u-boot,dm-pre-reloc;
 
 		panel-info {
 			ac-bias		= <255>;
diff --git a/arch/arm/dts/am335x-brxre1.dts b/arch/arm/dts/am335x-brxre1.dts
index 33d8ab78d8..6091a12fb7 100644
--- a/arch/arm/dts/am335x-brxre1.dts
+++ b/arch/arm/dts/am335x-brxre1.dts
@@ -79,6 +79,8 @@ 
 
 		backlight = <&tps_bl>;
 
+		u-boot,dm-pre-reloc;
+
 		panel-info {
 			ac-bias		= <255>;
 			ac-bias-intrpt	= <0>;
diff --git a/arch/arm/dts/am335x-evm.dts b/arch/arm/dts/am335x-evm.dts
index 0bda4d4429..60e4991658 100644
--- a/arch/arm/dts/am335x-evm.dts
+++ b/arch/arm/dts/am335x-evm.dts
@@ -109,6 +109,7 @@ 
 		status = "okay";
 		pinctrl-names = "default";
 		pinctrl-0 = <&lcd_pins_s0>;
+		u-boot,dm-pre-reloc;
 		panel-info {
 			ac-bias           = <255>;
 			ac-bias-intrpt    = <0>;
diff --git a/arch/arm/dts/am335x-evmsk.dts b/arch/arm/dts/am335x-evmsk.dts
index 5762967cf7..3d713a6b88 100644
--- a/arch/arm/dts/am335x-evmsk.dts
+++ b/arch/arm/dts/am335x-evmsk.dts
@@ -172,6 +172,7 @@ 
 		pinctrl-0 = <&lcd_pins_default>;
 		pinctrl-1 = <&lcd_pins_sleep>;
 		status = "okay";
+		u-boot,dm-pre-reloc;
 		panel-info {
 			ac-bias           = <255>;
 			ac-bias-intrpt    = <0>;
diff --git a/arch/arm/dts/am335x-guardian.dts b/arch/arm/dts/am335x-guardian.dts
index 5ed2133e78..9e2b9d6b48 100644
--- a/arch/arm/dts/am335x-guardian.dts
+++ b/arch/arm/dts/am335x-guardian.dts
@@ -67,6 +67,7 @@ 
 		pinctrl-names = "default", "sleep";
 		pinctrl-0 = <&lcd_pins_default &lcd_disen_pins>;
 		pinctrl-1 = <&lcd_pins_sleep>;
+		u-boot,dm-pre-reloc;
 
 		display-timings {
 			320x240 {
diff --git a/arch/arm/dts/am335x-pdu001.dts b/arch/arm/dts/am335x-pdu001.dts
index ae43d61f4e..13085a7884 100644
--- a/arch/arm/dts/am335x-pdu001.dts
+++ b/arch/arm/dts/am335x-pdu001.dts
@@ -54,6 +54,7 @@ 
 		status = "okay";
 		pinctrl-names = "default";
 		pinctrl-0 = <&lcd_pins_s0>;
+		u-boot,dm-pre-reloc;
 		panel-info {
 			ac-bias           = <255>;
 			ac-bias-intrpt    = <0>;
diff --git a/arch/arm/dts/am335x-pxm50.dts b/arch/arm/dts/am335x-pxm50.dts
index f4e66d29d5..25601c2655 100644
--- a/arch/arm/dts/am335x-pxm50.dts
+++ b/arch/arm/dts/am335x-pxm50.dts
@@ -23,6 +23,7 @@ 
 			pinctrl-0 = <&lcd_pins_s0>;
 			enable-gpios = <&gpio3 15 0>;
 			status = "okay";
+			u-boot,dm-pre-reloc;
 
 			panel-info {
 				ac-bias           = <255>;
diff --git a/arch/arm/dts/am335x-rut.dts b/arch/arm/dts/am335x-rut.dts
index 145247344f..1617c57235 100644
--- a/arch/arm/dts/am335x-rut.dts
+++ b/arch/arm/dts/am335x-rut.dts
@@ -91,6 +91,7 @@ 
 		pinctrl-names = "default";
 		pinctrl-0 = <&lcd_pins_s0>;
 		status = "okay";
+		u-boot,dm-pre-reloc;
 
 		/* FORMIKE_KWH043ST20_F01 */
 		panel-info {
diff --git a/arch/arm/dts/da850-evm.dts b/arch/arm/dts/da850-evm.dts
index f04bc3e153..2e1cf35c8d 100644
--- a/arch/arm/dts/da850-evm.dts
+++ b/arch/arm/dts/da850-evm.dts
@@ -53,6 +53,7 @@ 
 		 */
 		status = "okay";
 		enable-gpios = <&gpio 40 GPIO_ACTIVE_HIGH>; /* lcd_panel_pwr */
+		u-boot,dm-pre-reloc;
 
 		panel-info {
 			ac-bias		= <255>;