Message ID | e617f766-083b-0cd2-690a-987fad82aaea@denx.de |
---|---|
State | New |
Headers | show |
Series | dm, serial: problem with using ns16550 driver before relocation on mpc83xx | expand |
Hi Heiko, On Wed, 5 Feb 2020 at 02:04, Heiko Schocher <hs at denx.de> wrote: > > Hello Bin, Simon, > > I just porting the mpc83xx based kmcoge5ne board support DTS and got > problems using the serial ns16550 driver. > > I need the serial driver before rolcation, so I enabled > "u-boot,dm-pre-reloc;" as usual in the device tree, but board does not > boot ... > > I found the commit: > > commit 4687919684e0e4390b9fc20d1809ecaa9dc3cb81 > Author: Bin Meng <bmeng.cn at gmail.com> > Date: Wed Oct 24 06:36:36 2018 -0700 > > serial: Remove DM_FLAG_PRE_RELOC flag in various drivers > > which added to the ns16550 serial driver: > > diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c > index 04b604fa2c..1e6fc6c668 100644 > --- a/drivers/serial/ns16550.c > +++ b/drivers/serial/ns16550.c > @@ -487,7 +487,9 @@ U_BOOT_DRIVER(ns16550_serial) = { > .priv_auto_alloc_size = sizeof(struct NS16550), > .probe = ns16550_serial_probe, > .ops = &ns16550_serial_ops, > +#if !CONFIG_IS_ENABLED(OF_CONTROL) > .flags = DM_FLAG_PRE_RELOC, > +#endif > }; > #endif > #endif /* SERIAL_PRESENT */ > > So, as OF_CONTROL is defined for me, the flag "u-boot,dm-pre-reloc" seems > not working anymore ... > > Adding this back: > > hs at xmglap:u-boot-secu [20200205-temp] $ git diff > diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c > index 9851663dc5..386ca9cffa 100644 > --- a/drivers/serial/ns16550.c > +++ b/drivers/serial/ns16550.c > @@ -528,7 +528,7 @@ U_BOOT_DRIVER(ns16550_serial) = { > .priv_auto_alloc_size = sizeof(struct NS16550), > .probe = ns16550_serial_probe, > .ops = &ns16550_serial_ops, > -#if !CONFIG_IS_ENABLED(OF_CONTROL) > +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) > .flags = DM_FLAG_PRE_RELOC, > #endif > }; > > and board boots fine with the flag "u-boot,dm-pre-reloc" in DTS ... > > May I do something wrong here? I found in mainline for example > the "arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi" board, which > has the exactly same dts settings than I have now. > > @Dirk: Can you check, if this board boots with current mainline? > > Shouldn;t be the logic, that in case OF_CONTROL is enabled and if > flag "u-boot,dm-pre-reloc" is set in DTS for the device, the device > should be bound before relocation, and we do not need to check, if > the driver sets DM_FLAG_PRE_RELOC ? > > But may I miss here something ... > > Any hints? +Tom Rini I found I needed this for rpi. http://patchwork.ozlabs.org/patch/1202913/ But I still haven't gone back to figure out why Tom doesn't. Regards, Simon
Hello Simon, Am 05.02.2020 um 18:59 schrieb Simon Glass: > Hi Heiko, > > On Wed, 5 Feb 2020 at 02:04, Heiko Schocher <hs at denx.de> wrote: >> >> Hello Bin, Simon, >> >> I just porting the mpc83xx based kmcoge5ne board support DTS and got >> problems using the serial ns16550 driver. >> >> I need the serial driver before rolcation, so I enabled >> "u-boot,dm-pre-reloc;" as usual in the device tree, but board does not >> boot ... >> >> I found the commit: >> >> commit 4687919684e0e4390b9fc20d1809ecaa9dc3cb81 >> Author: Bin Meng <bmeng.cn at gmail.com> >> Date: Wed Oct 24 06:36:36 2018 -0700 >> >> serial: Remove DM_FLAG_PRE_RELOC flag in various drivers >> >> which added to the ns16550 serial driver: >> >> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c >> index 04b604fa2c..1e6fc6c668 100644 >> --- a/drivers/serial/ns16550.c >> +++ b/drivers/serial/ns16550.c >> @@ -487,7 +487,9 @@ U_BOOT_DRIVER(ns16550_serial) = { >> .priv_auto_alloc_size = sizeof(struct NS16550), >> .probe = ns16550_serial_probe, >> .ops = &ns16550_serial_ops, >> +#if !CONFIG_IS_ENABLED(OF_CONTROL) >> .flags = DM_FLAG_PRE_RELOC, >> +#endif >> }; >> #endif >> #endif /* SERIAL_PRESENT */ >> >> So, as OF_CONTROL is defined for me, the flag "u-boot,dm-pre-reloc" seems >> not working anymore ... >> >> Adding this back: >> >> hs at xmglap:u-boot-secu [20200205-temp] $ git diff >> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c >> index 9851663dc5..386ca9cffa 100644 >> --- a/drivers/serial/ns16550.c >> +++ b/drivers/serial/ns16550.c >> @@ -528,7 +528,7 @@ U_BOOT_DRIVER(ns16550_serial) = { >> .priv_auto_alloc_size = sizeof(struct NS16550), >> .probe = ns16550_serial_probe, >> .ops = &ns16550_serial_ops, >> -#if !CONFIG_IS_ENABLED(OF_CONTROL) >> +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) >> .flags = DM_FLAG_PRE_RELOC, >> #endif >> }; >> >> and board boots fine with the flag "u-boot,dm-pre-reloc" in DTS ... >> >> May I do something wrong here? I found in mainline for example >> the "arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi" board, which >> has the exactly same dts settings than I have now. >> >> @Dirk: Can you check, if this board boots with current mainline? >> >> Shouldn;t be the logic, that in case OF_CONTROL is enabled and if >> flag "u-boot,dm-pre-reloc" is set in DTS for the device, the device >> should be bound before relocation, and we do not need to check, if >> the driver sets DM_FLAG_PRE_RELOC ? >> >> But may I miss here something ... >> >> Any hints? > > +Tom Rini > > I found I needed this for rpi. > > http://patchwork.ozlabs.org/patch/1202913/ > > But I still haven't gone back to figure out why Tom doesn't. Hmm... I have added the "u-boot,dm-pre-reloc;" to the uart node. Like it is for the gazerbeam board, see [1] It works if "DM_FLAG_PRE_RELOC" is set the driver in flags... no need for a gpio node before relocation like it is inabove patch. I wonder if we need DM_FLAG_PRE_RELOC at all in a driver and OF_CONTROL case. Shouldn't it be enough if the DTB node for the driver contains the "u-boot,dm-pre-reloc;" property? bye, Heiko [1] https://gitlab.denx.de/u-boot/u-boot/blob/master/arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi#L238
Hi Heiko, On Wed, 5 Feb 2020 at 22:19, Heiko Schocher <hs at denx.de> wrote: > > Hello Simon, > > Am 05.02.2020 um 18:59 schrieb Simon Glass: > > Hi Heiko, > > > > On Wed, 5 Feb 2020 at 02:04, Heiko Schocher <hs at denx.de> wrote: > >> > >> Hello Bin, Simon, > >> > >> I just porting the mpc83xx based kmcoge5ne board support DTS and got > >> problems using the serial ns16550 driver. > >> > >> I need the serial driver before rolcation, so I enabled > >> "u-boot,dm-pre-reloc;" as usual in the device tree, but board does not > >> boot ... > >> > >> I found the commit: > >> > >> commit 4687919684e0e4390b9fc20d1809ecaa9dc3cb81 > >> Author: Bin Meng <bmeng.cn at gmail.com> > >> Date: Wed Oct 24 06:36:36 2018 -0700 > >> > >> serial: Remove DM_FLAG_PRE_RELOC flag in various drivers > >> > >> which added to the ns16550 serial driver: > >> > >> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c > >> index 04b604fa2c..1e6fc6c668 100644 > >> --- a/drivers/serial/ns16550.c > >> +++ b/drivers/serial/ns16550.c > >> @@ -487,7 +487,9 @@ U_BOOT_DRIVER(ns16550_serial) = { > >> .priv_auto_alloc_size = sizeof(struct NS16550), > >> .probe = ns16550_serial_probe, > >> .ops = &ns16550_serial_ops, > >> +#if !CONFIG_IS_ENABLED(OF_CONTROL) > >> .flags = DM_FLAG_PRE_RELOC, > >> +#endif > >> }; > >> #endif > >> #endif /* SERIAL_PRESENT */ > >> > >> So, as OF_CONTROL is defined for me, the flag "u-boot,dm-pre-reloc" seems > >> not working anymore ... > >> > >> Adding this back: > >> > >> hs at xmglap:u-boot-secu [20200205-temp] $ git diff > >> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c > >> index 9851663dc5..386ca9cffa 100644 > >> --- a/drivers/serial/ns16550.c > >> +++ b/drivers/serial/ns16550.c > >> @@ -528,7 +528,7 @@ U_BOOT_DRIVER(ns16550_serial) = { > >> .priv_auto_alloc_size = sizeof(struct NS16550), > >> .probe = ns16550_serial_probe, > >> .ops = &ns16550_serial_ops, > >> -#if !CONFIG_IS_ENABLED(OF_CONTROL) > >> +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) > >> .flags = DM_FLAG_PRE_RELOC, > >> #endif > >> }; > >> > >> and board boots fine with the flag "u-boot,dm-pre-reloc" in DTS ... > >> > >> May I do something wrong here? I found in mainline for example > >> the "arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi" board, which > >> has the exactly same dts settings than I have now. > >> > >> @Dirk: Can you check, if this board boots with current mainline? > >> > >> Shouldn;t be the logic, that in case OF_CONTROL is enabled and if > >> flag "u-boot,dm-pre-reloc" is set in DTS for the device, the device > >> should be bound before relocation, and we do not need to check, if > >> the driver sets DM_FLAG_PRE_RELOC ? > >> > >> But may I miss here something ... > >> > >> Any hints? > > > > +Tom Rini > > > > I found I needed this for rpi. > > > > http://patchwork.ozlabs.org/patch/1202913/ > > > > But I still haven't gone back to figure out why Tom doesn't. > > Hmm... I have added the "u-boot,dm-pre-reloc;" to the uart node. > > Like it is for the gazerbeam board, see [1] > > It works if "DM_FLAG_PRE_RELOC" is set the driver in flags... no > need for a gpio node before relocation like it is inabove patch. > > I wonder if we need DM_FLAG_PRE_RELOC at all in a driver and > OF_CONTROL case. Shouldn't it be enough if the DTB node for the > driver contains the "u-boot,dm-pre-reloc;" property? Well in the rpi case it is the pinctrl that needs that property. I think you should dig into exactly what is going wrong on the board you have. Then it should be possible to see what is missing and add it. Regards, Simon
Hi Simon, removed Dirk from cc and added Mario Six @Mario: Dirk is maintainer of the gazerbeam board: https://gitlab.denx.de/u-boot/u-boot/blob/master/board/gdsys/mpc8308/MAINTAINERS#L2 but EMail get not delivered to his EMail address ... so I added you to cc ... may you have a gazerbeam board? May you can try, if current U-Boot mainline works (in special serial console) on it? thanks! Am 06.02.2020 um 18:46 schrieb Simon Glass: > Hi Heiko, > > On Wed, 5 Feb 2020 at 22:19, Heiko Schocher <hs at denx.de> wrote: >> >> Hello Simon, >> >> Am 05.02.2020 um 18:59 schrieb Simon Glass: >>> Hi Heiko, >>> >>> On Wed, 5 Feb 2020 at 02:04, Heiko Schocher <hs at denx.de> wrote: >>>> >>>> Hello Bin, Simon, >>>> >>>> I just porting the mpc83xx based kmcoge5ne board support DTS and got >>>> problems using the serial ns16550 driver. >>>> >>>> I need the serial driver before rolcation, so I enabled >>>> "u-boot,dm-pre-reloc;" as usual in the device tree, but board does not >>>> boot ... >>>> >>>> I found the commit: >>>> >>>> commit 4687919684e0e4390b9fc20d1809ecaa9dc3cb81 >>>> Author: Bin Meng <bmeng.cn at gmail.com> >>>> Date: Wed Oct 24 06:36:36 2018 -0700 >>>> >>>> serial: Remove DM_FLAG_PRE_RELOC flag in various drivers >>>> >>>> which added to the ns16550 serial driver: >>>> >>>> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c >>>> index 04b604fa2c..1e6fc6c668 100644 >>>> --- a/drivers/serial/ns16550.c >>>> +++ b/drivers/serial/ns16550.c >>>> @@ -487,7 +487,9 @@ U_BOOT_DRIVER(ns16550_serial) = { >>>> .priv_auto_alloc_size = sizeof(struct NS16550), >>>> .probe = ns16550_serial_probe, >>>> .ops = &ns16550_serial_ops, >>>> +#if !CONFIG_IS_ENABLED(OF_CONTROL) >>>> .flags = DM_FLAG_PRE_RELOC, >>>> +#endif >>>> }; >>>> #endif >>>> #endif /* SERIAL_PRESENT */ >>>> >>>> So, as OF_CONTROL is defined for me, the flag "u-boot,dm-pre-reloc" seems >>>> not working anymore ... >>>> >>>> Adding this back: >>>> >>>> hs at xmglap:u-boot-secu [20200205-temp] $ git diff >>>> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c >>>> index 9851663dc5..386ca9cffa 100644 >>>> --- a/drivers/serial/ns16550.c >>>> +++ b/drivers/serial/ns16550.c >>>> @@ -528,7 +528,7 @@ U_BOOT_DRIVER(ns16550_serial) = { >>>> .priv_auto_alloc_size = sizeof(struct NS16550), >>>> .probe = ns16550_serial_probe, >>>> .ops = &ns16550_serial_ops, >>>> -#if !CONFIG_IS_ENABLED(OF_CONTROL) >>>> +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) >>>> .flags = DM_FLAG_PRE_RELOC, >>>> #endif >>>> }; >>>> >>>> and board boots fine with the flag "u-boot,dm-pre-reloc" in DTS ... >>>> >>>> May I do something wrong here? I found in mainline for example >>>> the "arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi" board, which >>>> has the exactly same dts settings than I have now. >>>> >>>> @Dirk: Can you check, if this board boots with current mainline? >>>> >>>> Shouldn;t be the logic, that in case OF_CONTROL is enabled and if >>>> flag "u-boot,dm-pre-reloc" is set in DTS for the device, the device >>>> should be bound before relocation, and we do not need to check, if >>>> the driver sets DM_FLAG_PRE_RELOC ? >>>> >>>> But may I miss here something ... >>>> >>>> Any hints? >>> >>> +Tom Rini >>> >>> I found I needed this for rpi. >>> >>> http://patchwork.ozlabs.org/patch/1202913/ >>> >>> But I still haven't gone back to figure out why Tom doesn't. >> >> Hmm... I have added the "u-boot,dm-pre-reloc;" to the uart node. >> >> Like it is for the gazerbeam board, see [1] >> >> It works if "DM_FLAG_PRE_RELOC" is set the driver in flags... no >> need for a gpio node before relocation like it is inabove patch. >> >> I wonder if we need DM_FLAG_PRE_RELOC at all in a driver and >> OF_CONTROL case. Shouldn't it be enough if the DTB node for the >> driver contains the "u-boot,dm-pre-reloc;" property? > > Well in the rpi case it is the pinctrl that needs that property. I > think you should dig into exactly what is going wrong on the board you > have. Then it should be possible to see what is missing and add it. Ok, I try to find out more, thanks! bye, Heiko
Hi Heiko, On Thu, 6 Feb 2020 at 22:53, Heiko Schocher <hs at denx.de> wrote: > > Hi Simon, > > removed Dirk from cc and added Mario Six > > @Mario: Dirk is maintainer of the gazerbeam board: > > https://gitlab.denx.de/u-boot/u-boot/blob/master/board/gdsys/mpc8308/MAINTAINERS#L2 > > but EMail get not delivered to his EMail address ... so I added > you to cc ... may you have a gazerbeam board? May you can try, > if current U-Boot mainline works (in special serial console) on it? BTW I don't have one of these. I can't even find it on the internet! Regards, Simon > > thanks! > > Am 06.02.2020 um 18:46 schrieb Simon Glass: > > Hi Heiko, > > > > On Wed, 5 Feb 2020 at 22:19, Heiko Schocher <hs at denx.de> wrote: > >> > >> Hello Simon, > >> > >> Am 05.02.2020 um 18:59 schrieb Simon Glass: > >>> Hi Heiko, > >>> > >>> On Wed, 5 Feb 2020 at 02:04, Heiko Schocher <hs at denx.de> wrote: > >>>> > >>>> Hello Bin, Simon, > >>>> > >>>> I just porting the mpc83xx based kmcoge5ne board support DTS and got > >>>> problems using the serial ns16550 driver. > >>>> > >>>> I need the serial driver before rolcation, so I enabled > >>>> "u-boot,dm-pre-reloc;" as usual in the device tree, but board does not > >>>> boot ... > >>>> > >>>> I found the commit: > >>>> > >>>> commit 4687919684e0e4390b9fc20d1809ecaa9dc3cb81 > >>>> Author: Bin Meng <bmeng.cn at gmail.com> > >>>> Date: Wed Oct 24 06:36:36 2018 -0700 > >>>> > >>>> serial: Remove DM_FLAG_PRE_RELOC flag in various drivers > >>>> > >>>> which added to the ns16550 serial driver: > >>>> > >>>> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c > >>>> index 04b604fa2c..1e6fc6c668 100644 > >>>> --- a/drivers/serial/ns16550.c > >>>> +++ b/drivers/serial/ns16550.c > >>>> @@ -487,7 +487,9 @@ U_BOOT_DRIVER(ns16550_serial) = { > >>>> .priv_auto_alloc_size = sizeof(struct NS16550), > >>>> .probe = ns16550_serial_probe, > >>>> .ops = &ns16550_serial_ops, > >>>> +#if !CONFIG_IS_ENABLED(OF_CONTROL) > >>>> .flags = DM_FLAG_PRE_RELOC, > >>>> +#endif > >>>> }; > >>>> #endif > >>>> #endif /* SERIAL_PRESENT */ > >>>> > >>>> So, as OF_CONTROL is defined for me, the flag "u-boot,dm-pre-reloc" seems > >>>> not working anymore ... > >>>> > >>>> Adding this back: > >>>> > >>>> hs at xmglap:u-boot-secu [20200205-temp] $ git diff > >>>> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c > >>>> index 9851663dc5..386ca9cffa 100644 > >>>> --- a/drivers/serial/ns16550.c > >>>> +++ b/drivers/serial/ns16550.c > >>>> @@ -528,7 +528,7 @@ U_BOOT_DRIVER(ns16550_serial) = { > >>>> .priv_auto_alloc_size = sizeof(struct NS16550), > >>>> .probe = ns16550_serial_probe, > >>>> .ops = &ns16550_serial_ops, > >>>> -#if !CONFIG_IS_ENABLED(OF_CONTROL) > >>>> +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) > >>>> .flags = DM_FLAG_PRE_RELOC, > >>>> #endif > >>>> }; > >>>> > >>>> and board boots fine with the flag "u-boot,dm-pre-reloc" in DTS ... > >>>> > >>>> May I do something wrong here? I found in mainline for example > >>>> the "arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi" board, which > >>>> has the exactly same dts settings than I have now. > >>>> > >>>> @Dirk: Can you check, if this board boots with current mainline? > >>>> > >>>> Shouldn;t be the logic, that in case OF_CONTROL is enabled and if > >>>> flag "u-boot,dm-pre-reloc" is set in DTS for the device, the device > >>>> should be bound before relocation, and we do not need to check, if > >>>> the driver sets DM_FLAG_PRE_RELOC ? > >>>> > >>>> But may I miss here something ... > >>>> > >>>> Any hints? > >>> > >>> +Tom Rini > >>> > >>> I found I needed this for rpi. > >>> > >>> http://patchwork.ozlabs.org/patch/1202913/ > >>> > >>> But I still haven't gone back to figure out why Tom doesn't. > >> > >> Hmm... I have added the "u-boot,dm-pre-reloc;" to the uart node. > >> > >> Like it is for the gazerbeam board, see [1] > >> > >> It works if "DM_FLAG_PRE_RELOC" is set the driver in flags... no > >> need for a gpio node before relocation like it is inabove patch. > >> > >> I wonder if we need DM_FLAG_PRE_RELOC at all in a driver and > >> OF_CONTROL case. Shouldn't it be enough if the DTB node for the > >> driver contains the "u-boot,dm-pre-reloc;" property? > > > > Well in the rpi case it is the pinctrl that needs that property. I > > think you should dig into exactly what is going wrong on the board you > > have. Then it should be possible to see what is missing and add it. > > Ok, I try to find out more, thanks! > > bye, > Heiko > -- > DENX Software Engineering GmbH, Managing Director: Wolfgang Denk > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: +49-8142-66989-52 Fax: +49-8142-66989-80 Email: hs at denx.de
Hi Heiko, On Fri, Feb 7, 2020 at 6:53 AM Heiko Schocher <hs at denx.de> wrote: > > Hi Simon, > > removed Dirk from cc and added Mario Six > > @Mario: Dirk is maintainer of the gazerbeam board: > > https://gitlab.denx.de/u-boot/u-boot/blob/master/board/gdsys/mpc8308/MAINTAINERS#L2 > > but EMail get not delivered to his EMail address ... so I added > you to cc ... may you have a gazerbeam board? May you can try, > if current U-Boot mainline works (in special serial console) on it? > Dirk no longer works as gdsys (which is also the reason why I'm much less active on the mailing list than I used to be). I have a gazerbeam board. I'll try to get some time to test mainline on it some time this week. > thanks! > Regards, Mario > Am 06.02.2020 um 18:46 schrieb Simon Glass: > > Hi Heiko, > > > > On Wed, 5 Feb 2020 at 22:19, Heiko Schocher <hs at denx.de> wrote: > >> > >> Hello Simon, > >> > >> Am 05.02.2020 um 18:59 schrieb Simon Glass: > >>> Hi Heiko, > >>> > >>> On Wed, 5 Feb 2020 at 02:04, Heiko Schocher <hs at denx.de> wrote: > >>>> > >>>> Hello Bin, Simon, > >>>> > >>>> I just porting the mpc83xx based kmcoge5ne board support DTS and got > >>>> problems using the serial ns16550 driver. > >>>> > >>>> I need the serial driver before rolcation, so I enabled > >>>> "u-boot,dm-pre-reloc;" as usual in the device tree, but board does not > >>>> boot ... > >>>> > >>>> I found the commit: > >>>> > >>>> commit 4687919684e0e4390b9fc20d1809ecaa9dc3cb81 > >>>> Author: Bin Meng <bmeng.cn at gmail.com> > >>>> Date: Wed Oct 24 06:36:36 2018 -0700 > >>>> > >>>> serial: Remove DM_FLAG_PRE_RELOC flag in various drivers > >>>> > >>>> which added to the ns16550 serial driver: > >>>> > >>>> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c > >>>> index 04b604fa2c..1e6fc6c668 100644 > >>>> --- a/drivers/serial/ns16550.c > >>>> +++ b/drivers/serial/ns16550.c > >>>> @@ -487,7 +487,9 @@ U_BOOT_DRIVER(ns16550_serial) = { > >>>> .priv_auto_alloc_size = sizeof(struct NS16550), > >>>> .probe = ns16550_serial_probe, > >>>> .ops = &ns16550_serial_ops, > >>>> +#if !CONFIG_IS_ENABLED(OF_CONTROL) > >>>> .flags = DM_FLAG_PRE_RELOC, > >>>> +#endif > >>>> }; > >>>> #endif > >>>> #endif /* SERIAL_PRESENT */ > >>>> > >>>> So, as OF_CONTROL is defined for me, the flag "u-boot,dm-pre-reloc" seems > >>>> not working anymore ... > >>>> > >>>> Adding this back: > >>>> > >>>> hs at xmglap:u-boot-secu [20200205-temp] $ git diff > >>>> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c > >>>> index 9851663dc5..386ca9cffa 100644 > >>>> --- a/drivers/serial/ns16550.c > >>>> +++ b/drivers/serial/ns16550.c > >>>> @@ -528,7 +528,7 @@ U_BOOT_DRIVER(ns16550_serial) = { > >>>> .priv_auto_alloc_size = sizeof(struct NS16550), > >>>> .probe = ns16550_serial_probe, > >>>> .ops = &ns16550_serial_ops, > >>>> -#if !CONFIG_IS_ENABLED(OF_CONTROL) > >>>> +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) > >>>> .flags = DM_FLAG_PRE_RELOC, > >>>> #endif > >>>> }; > >>>> > >>>> and board boots fine with the flag "u-boot,dm-pre-reloc" in DTS ... > >>>> > >>>> May I do something wrong here? I found in mainline for example > >>>> the "arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi" board, which > >>>> has the exactly same dts settings than I have now. > >>>> > >>>> @Dirk: Can you check, if this board boots with current mainline? > >>>> > >>>> Shouldn;t be the logic, that in case OF_CONTROL is enabled and if > >>>> flag "u-boot,dm-pre-reloc" is set in DTS for the device, the device > >>>> should be bound before relocation, and we do not need to check, if > >>>> the driver sets DM_FLAG_PRE_RELOC ? > >>>> > >>>> But may I miss here something ... > >>>> > >>>> Any hints? > >>> > >>> +Tom Rini > >>> > >>> I found I needed this for rpi. > >>> > >>> http://patchwork.ozlabs.org/patch/1202913/ > >>> > >>> But I still haven't gone back to figure out why Tom doesn't. > >> > >> Hmm... I have added the "u-boot,dm-pre-reloc;" to the uart node. > >> > >> Like it is for the gazerbeam board, see [1] > >> > >> It works if "DM_FLAG_PRE_RELOC" is set the driver in flags... no > >> need for a gpio node before relocation like it is inabove patch. > >> > >> I wonder if we need DM_FLAG_PRE_RELOC at all in a driver and > >> OF_CONTROL case. Shouldn't it be enough if the DTB node for the > >> driver contains the "u-boot,dm-pre-reloc;" property? > > > > Well in the rpi case it is the pinctrl that needs that property. I > > think you should dig into exactly what is going wrong on the board you > > have. Then it should be possible to see what is missing and add it. > > Ok, I try to find out more, thanks! > > bye, > Heiko > -- > DENX Software Engineering GmbH, Managing Director: Wolfgang Denk > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: +49-8142-66989-52 Fax: +49-8142-66989-80 Email: hs at denx.de
Hello Mario, Am 10.02.2020 um 07:16 schrieb Mario Six: > Hi Heiko, > > On Fri, Feb 7, 2020 at 6:53 AM Heiko Schocher <hs at denx.de> wrote: >> >> Hi Simon, >> >> removed Dirk from cc and added Mario Six >> >> @Mario: Dirk is maintainer of the gazerbeam board: >> >> https://gitlab.denx.de/u-boot/u-boot/blob/master/board/gdsys/mpc8308/MAINTAINERS#L2 >> >> but EMail get not delivered to his EMail address ... so I added >> you to cc ... may you have a gazerbeam board? May you can try, >> if current U-Boot mainline works (in special serial console) on it? >> > Dirk no longer works as gdsys (which is also the reason why I'm much less > active on the mailing list than I used to be). Ah, ok! Thanks for the info ... may you can add overtake the maintainership for the gazerbeam board? > I have a gazerbeam board. I'll try to get some time to test mainline on it some > time this week. Many Thanks for your time! bye, Heiko > >> thanks! >> > Regards, > Mario > >> Am 06.02.2020 um 18:46 schrieb Simon Glass: >>> Hi Heiko, >>> >>> On Wed, 5 Feb 2020 at 22:19, Heiko Schocher <hs at denx.de> wrote: >>>> >>>> Hello Simon, >>>> >>>> Am 05.02.2020 um 18:59 schrieb Simon Glass: >>>>> Hi Heiko, >>>>> >>>>> On Wed, 5 Feb 2020 at 02:04, Heiko Schocher <hs at denx.de> wrote: >>>>>> >>>>>> Hello Bin, Simon, >>>>>> >>>>>> I just porting the mpc83xx based kmcoge5ne board support DTS and got >>>>>> problems using the serial ns16550 driver. >>>>>> >>>>>> I need the serial driver before rolcation, so I enabled >>>>>> "u-boot,dm-pre-reloc;" as usual in the device tree, but board does not >>>>>> boot ... >>>>>> >>>>>> I found the commit: >>>>>> >>>>>> commit 4687919684e0e4390b9fc20d1809ecaa9dc3cb81 >>>>>> Author: Bin Meng <bmeng.cn at gmail.com> >>>>>> Date: Wed Oct 24 06:36:36 2018 -0700 >>>>>> >>>>>> serial: Remove DM_FLAG_PRE_RELOC flag in various drivers >>>>>> >>>>>> which added to the ns16550 serial driver: >>>>>> >>>>>> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c >>>>>> index 04b604fa2c..1e6fc6c668 100644 >>>>>> --- a/drivers/serial/ns16550.c >>>>>> +++ b/drivers/serial/ns16550.c >>>>>> @@ -487,7 +487,9 @@ U_BOOT_DRIVER(ns16550_serial) = { >>>>>> .priv_auto_alloc_size = sizeof(struct NS16550), >>>>>> .probe = ns16550_serial_probe, >>>>>> .ops = &ns16550_serial_ops, >>>>>> +#if !CONFIG_IS_ENABLED(OF_CONTROL) >>>>>> .flags = DM_FLAG_PRE_RELOC, >>>>>> +#endif >>>>>> }; >>>>>> #endif >>>>>> #endif /* SERIAL_PRESENT */ >>>>>> >>>>>> So, as OF_CONTROL is defined for me, the flag "u-boot,dm-pre-reloc" seems >>>>>> not working anymore ... >>>>>> >>>>>> Adding this back: >>>>>> >>>>>> hs at xmglap:u-boot-secu [20200205-temp] $ git diff >>>>>> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c >>>>>> index 9851663dc5..386ca9cffa 100644 >>>>>> --- a/drivers/serial/ns16550.c >>>>>> +++ b/drivers/serial/ns16550.c >>>>>> @@ -528,7 +528,7 @@ U_BOOT_DRIVER(ns16550_serial) = { >>>>>> .priv_auto_alloc_size = sizeof(struct NS16550), >>>>>> .probe = ns16550_serial_probe, >>>>>> .ops = &ns16550_serial_ops, >>>>>> -#if !CONFIG_IS_ENABLED(OF_CONTROL) >>>>>> +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) >>>>>> .flags = DM_FLAG_PRE_RELOC, >>>>>> #endif >>>>>> }; >>>>>> >>>>>> and board boots fine with the flag "u-boot,dm-pre-reloc" in DTS ... >>>>>> >>>>>> May I do something wrong here? I found in mainline for example >>>>>> the "arch/powerpc/dts/gdsys/gazerbeam-uboot.dtsi" board, which >>>>>> has the exactly same dts settings than I have now. >>>>>> >>>>>> @Dirk: Can you check, if this board boots with current mainline? >>>>>> >>>>>> Shouldn;t be the logic, that in case OF_CONTROL is enabled and if >>>>>> flag "u-boot,dm-pre-reloc" is set in DTS for the device, the device >>>>>> should be bound before relocation, and we do not need to check, if >>>>>> the driver sets DM_FLAG_PRE_RELOC ? >>>>>> >>>>>> But may I miss here something ... >>>>>> >>>>>> Any hints? >>>>> >>>>> +Tom Rini >>>>> >>>>> I found I needed this for rpi. >>>>> >>>>> http://patchwork.ozlabs.org/patch/1202913/ >>>>> >>>>> But I still haven't gone back to figure out why Tom doesn't. >>>> >>>> Hmm... I have added the "u-boot,dm-pre-reloc;" to the uart node. >>>> >>>> Like it is for the gazerbeam board, see [1] >>>> >>>> It works if "DM_FLAG_PRE_RELOC" is set the driver in flags... no >>>> need for a gpio node before relocation like it is inabove patch. >>>> >>>> I wonder if we need DM_FLAG_PRE_RELOC at all in a driver and >>>> OF_CONTROL case. Shouldn't it be enough if the DTB node for the >>>> driver contains the "u-boot,dm-pre-reloc;" property? >>> >>> Well in the rpi case it is the pinctrl that needs that property. I >>> think you should dig into exactly what is going wrong on the board you >>> have. Then it should be possible to see what is missing and add it. >> >> Ok, I try to find out more, thanks! >> >> bye, >> Heiko >> -- >> DENX Software Engineering GmbH, Managing Director: Wolfgang Denk >> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany >> Phone: +49-8142-66989-52 Fax: +49-8142-66989-80 Email: hs at denx.de >
Hello Mario, Simon, Am 10.02.2020 um 07:16 schrieb Mario Six: > Hi Heiko, > > On Fri, Feb 7, 2020 at 6:53 AM Heiko Schocher <hs at denx.de> wrote: >> >> Hi Simon, >> >> removed Dirk from cc and added Mario Six >> >> @Mario: Dirk is maintainer of the gazerbeam board: >> >> https://gitlab.denx.de/u-boot/u-boot/blob/master/board/gdsys/mpc8308/MAINTAINERS#L2 >> >> but EMail get not delivered to his EMail address ... so I added >> you to cc ... may you have a gazerbeam board? May you can try, >> if current U-Boot mainline works (in special serial console) on it? >> > Dirk no longer works as gdsys (which is also the reason why I'm much less > active on the mailing list than I used to be). > > I have a gazerbeam board. I'll try to get some time to test mainline on it some > time this week. The problem is gone, no need for my fix. I made a cleanbuild after I rebased with mainline this morning (without my "fix"), and all works fine. Sorry for the inconvenience! bye, Heiko
Hi Heiko, On Tue, 11 Feb 2020 at 23:37, Heiko Schocher <hs at denx.de> wrote: > > Hello Mario, Simon, > > Am 10.02.2020 um 07:16 schrieb Mario Six: > > Hi Heiko, > > > > On Fri, Feb 7, 2020 at 6:53 AM Heiko Schocher <hs at denx.de> wrote: > >> > >> Hi Simon, > >> > >> removed Dirk from cc and added Mario Six > >> > >> @Mario: Dirk is maintainer of the gazerbeam board: > >> > >> https://gitlab.denx.de/u-boot/u-boot/blob/master/board/gdsys/mpc8308/MAINTAINERS#L2 > >> > >> but EMail get not delivered to his EMail address ... so I added > >> you to cc ... may you have a gazerbeam board? May you can try, > >> if current U-Boot mainline works (in special serial console) on it? > >> > > Dirk no longer works as gdsys (which is also the reason why I'm much less > > active on the mailing list than I used to be). > > > > I have a gazerbeam board. I'll try to get some time to test mainline on it some > > time this week. > > The problem is gone, no need for my fix. I made a cleanbuild after > I rebased with mainline this morning (without my "fix"), and all works > fine. > > Sorry for the inconvenience! Oh strange, but good news! Regards, Simon
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c index 04b604fa2c..1e6fc6c668 100644 --- a/drivers/serial/ns16550.c +++ b/drivers/serial/ns16550.c @@ -487,7 +487,9 @@ U_BOOT_DRIVER(ns16550_serial) = { .priv_auto_alloc_size = sizeof(struct NS16550), .probe = ns16550_serial_probe, .ops = &ns16550_serial_ops, +#if !CONFIG_IS_ENABLED(OF_CONTROL) .flags = DM_FLAG_PRE_RELOC, +#endif }; #endif #endif /* SERIAL_PRESENT */ So, as OF_CONTROL is defined for me, the flag "u-boot,dm-pre-reloc" seems not working anymore ... Adding this back: hs at xmglap:u-boot-secu [20200205-temp] $ git diff diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c index 9851663dc5..386ca9cffa 100644 --- a/drivers/serial/ns16550.c +++ b/drivers/serial/ns16550.c @@ -528,7 +528,7 @@ U_BOOT_DRIVER(ns16550_serial) = { .priv_auto_alloc_size = sizeof(struct NS16550), .probe = ns16550_serial_probe, .ops = &ns16550_serial_ops, -#if !CONFIG_IS_ENABLED(OF_CONTROL) +#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA) .flags = DM_FLAG_PRE_RELOC, #endif };