All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
@ 2016-02-16 15:17 Michal Simek
  2016-02-19 20:55 ` Simon Glass
  2016-02-20  0:54 ` Tom Rini
  0 siblings, 2 replies; 25+ messages in thread
From: Michal Simek @ 2016-02-16 15:17 UTC (permalink / raw)
  To: u-boot

reg-offset is the part of standard 8250 binding in the kernel.
It is shifting start of address space by reg-offset.
On Xilinx platform this offset is typically 0x1000.

Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

 drivers/serial/ns16550.c | 6 ++++--
 include/ns16550.h        | 1 +
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 93dad338b375..28da9ddfd859 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -105,7 +105,7 @@ static void ns16550_writeb(NS16550_t port, int offset, int value)
 	 * As far as we know it doesn't make sense to support selection of
 	 * these options at run-time, so use the existing CONFIG options.
 	 */
-	serial_out_shift(addr, plat->reg_shift, value);
+	serial_out_shift(addr + plat->reg_offset, plat->reg_shift, value);
 }
 
 static int ns16550_readb(NS16550_t port, int offset)
@@ -116,7 +116,7 @@ static int ns16550_readb(NS16550_t port, int offset)
 	offset *= 1 << plat->reg_shift;
 	addr = map_physmem(plat->base, 0, MAP_NOCACHE) + offset;
 
-	return serial_in_shift(addr, plat->reg_shift);
+	return serial_in_shift(addr + plat->reg_offset, plat->reg_shift);
 }
 
 /* We can clean these up once everything is moved to driver model */
@@ -401,6 +401,8 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev)
 		return -EINVAL;
 
 	plat->base = addr;
+	plat->reg_offset = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
+				     "reg-offset", 0);
 	plat->reg_shift = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
 					 "reg-shift", 0);
 	plat->clock = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
diff --git a/include/ns16550.h b/include/ns16550.h
index 4e620676c453..5eeacd6ff945 100644
--- a/include/ns16550.h
+++ b/include/ns16550.h
@@ -54,6 +54,7 @@
  */
 struct ns16550_platdata {
 	unsigned long base;
+	int reg_offset;
 	int reg_shift;
 	int clock;
 };
-- 
1.9.1

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-16 15:17 [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property Michal Simek
@ 2016-02-19 20:55 ` Simon Glass
  2016-02-22  7:40   ` Michal Simek
  2016-02-20  0:54 ` Tom Rini
  1 sibling, 1 reply; 25+ messages in thread
From: Simon Glass @ 2016-02-19 20:55 UTC (permalink / raw)
  To: u-boot

Hi Michal,

On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
> reg-offset is the part of standard 8250 binding in the kernel.
> It is shifting start of address space by reg-offset.
> On Xilinx platform this offset is typically 0x1000.
>
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> ---
>
>  drivers/serial/ns16550.c | 6 ++++--
>  include/ns16550.h        | 1 +
>  2 files changed, 5 insertions(+), 2 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

Do you support the debug UART feature on your boards?

Regards,
Simon

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-16 15:17 [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property Michal Simek
  2016-02-19 20:55 ` Simon Glass
@ 2016-02-20  0:54 ` Tom Rini
  1 sibling, 0 replies; 25+ messages in thread
From: Tom Rini @ 2016-02-20  0:54 UTC (permalink / raw)
  To: u-boot

On Tue, Feb 16, 2016 at 04:17:49PM +0100, Michal Simek wrote:

> reg-offset is the part of standard 8250 binding in the kernel.
> It is shifting start of address space by reg-offset.
> On Xilinx platform this offset is typically 0x1000.
> 
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160219/7764f499/attachment.sig>

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-19 20:55 ` Simon Glass
@ 2016-02-22  7:40   ` Michal Simek
  2016-02-23  6:38     ` Simon Glass
  0 siblings, 1 reply; 25+ messages in thread
From: Michal Simek @ 2016-02-22  7:40 UTC (permalink / raw)
  To: u-boot

On 19.2.2016 21:55, Simon Glass wrote:
> Hi Michal,
> 
> On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
>> reg-offset is the part of standard 8250 binding in the kernel.
>> It is shifting start of address space by reg-offset.
>> On Xilinx platform this offset is typically 0x1000.
>>
>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>> ---
>>
>>  drivers/serial/ns16550.c | 6 ++++--
>>  include/ns16550.h        | 1 +
>>  2 files changed, 5 insertions(+), 2 deletions(-)
> 
> Reviewed-by: Simon Glass <sjg@chromium.org>
> 
> Do you support the debug UART feature on your boards?

yes. I do support it but there you can put just address plus offset and
there is no reason to add one more option to Kconfig.
But let me know if you think that this is incorrect flow.

Thanks,
Michal

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-22  7:40   ` Michal Simek
@ 2016-02-23  6:38     ` Simon Glass
  2016-02-24 10:56       ` Adam Ford
  0 siblings, 1 reply; 25+ messages in thread
From: Simon Glass @ 2016-02-23  6:38 UTC (permalink / raw)
  To: u-boot

Hi Michal,

On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com> wrote:
> On 19.2.2016 21:55, Simon Glass wrote:
>> Hi Michal,
>>
>> On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
>>> reg-offset is the part of standard 8250 binding in the kernel.
>>> It is shifting start of address space by reg-offset.
>>> On Xilinx platform this offset is typically 0x1000.
>>>
>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>> ---
>>>
>>>  drivers/serial/ns16550.c | 6 ++++--
>>>  include/ns16550.h        | 1 +
>>>  2 files changed, 5 insertions(+), 2 deletions(-)
>>
>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>
>> Do you support the debug UART feature on your boards?
>
> yes. I do support it but there you can put just address plus offset and
> there is no reason to add one more option to Kconfig.
> But let me know if you think that this is incorrect flow.

It looks right to me.

Regards,
Simon

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-23  6:38     ` Simon Glass
@ 2016-02-24 10:56       ` Adam Ford
  2016-02-24 11:26         ` Michal Simek
  0 siblings, 1 reply; 25+ messages in thread
From: Adam Ford @ 2016-02-24 10:56 UTC (permalink / raw)
  To: u-boot

On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org> wrote:
> Hi Michal,
>
> On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com> wrote:
>> On 19.2.2016 21:55, Simon Glass wrote:
>>> Hi Michal,
>>>
>>> On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>> It is shifting start of address space by reg-offset.
>>>> On Xilinx platform this offset is typically 0x1000.
>>>>
>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>> ---
>>>>
>>>>  drivers/serial/ns16550.c | 6 ++++--
>>>>  include/ns16550.h        | 1 +
>>>>  2 files changed, 5 insertions(+), 2 deletions(-)
>>>
>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>
>>> Do you support the debug UART feature on your boards?
>>
>> yes. I do support it but there you can put just address plus offset and
>> there is no reason to add one more option to Kconfig.
>> But let me know if you think that this is incorrect flow.
>

This patch seems to break my OMAP3 board.  Does anyone know if I need
to set a certain offset for OMAP3 to make this work (and where is the
right place for it) ?

> It looks right to me.
>
> Regards,
> Simon
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-24 10:56       ` Adam Ford
@ 2016-02-24 11:26         ` Michal Simek
  2016-02-24 22:47           ` Derald D. Woods
  2016-02-25  4:47           ` Derald D. Woods
  0 siblings, 2 replies; 25+ messages in thread
From: Michal Simek @ 2016-02-24 11:26 UTC (permalink / raw)
  To: u-boot

On 24.2.2016 11:56, Adam Ford wrote:
> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org> wrote:
>> Hi Michal,
>>
>> On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com> wrote:
>>> On 19.2.2016 21:55, Simon Glass wrote:
>>>> Hi Michal,
>>>>
>>>> On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
>>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>>> It is shifting start of address space by reg-offset.
>>>>> On Xilinx platform this offset is typically 0x1000.
>>>>>
>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>>> ---
>>>>>
>>>>>  drivers/serial/ns16550.c | 6 ++++--
>>>>>  include/ns16550.h        | 1 +
>>>>>  2 files changed, 5 insertions(+), 2 deletions(-)
>>>>
>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>>
>>>> Do you support the debug UART feature on your boards?
>>>
>>> yes. I do support it but there you can put just address plus offset and
>>> there is no reason to add one more option to Kconfig.
>>> But let me know if you think that this is incorrect flow.
>>
> 
> This patch seems to break my OMAP3 board.  Does anyone know if I need
> to set a certain offset for OMAP3 to make this work (and where is the
> right place for it) ?

Are you using DT init? Check your DT description if there is reg-offset
property. I expect if your board worked before and you remove this
property it will start to work again.

Thanks,
Michal

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-24 11:26         ` Michal Simek
@ 2016-02-24 22:47           ` Derald D. Woods
  2016-02-25  0:33             ` Simon Glass
  2016-02-25  4:47           ` Derald D. Woods
  1 sibling, 1 reply; 25+ messages in thread
From: Derald D. Woods @ 2016-02-24 22:47 UTC (permalink / raw)
  To: u-boot

On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
> On 24.2.2016 11:56, Adam Ford wrote:
> > On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org> wrote:
> >> Hi Michal,
> >>
> >> On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com> wrote:
> >>> On 19.2.2016 21:55, Simon Glass wrote:
> >>>> Hi Michal,
> >>>>
> >>>> On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
> >>>>> reg-offset is the part of standard 8250 binding in the kernel.
> >>>>> It is shifting start of address space by reg-offset.
> >>>>> On Xilinx platform this offset is typically 0x1000.
> >>>>>
> >>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> >>>>> ---
> >>>>>
> >>>>>  drivers/serial/ns16550.c | 6 ++++--
> >>>>>  include/ns16550.h        | 1 +
> >>>>>  2 files changed, 5 insertions(+), 2 deletions(-)
> >>>>
> >>>> Reviewed-by: Simon Glass <sjg@chromium.org>
> >>>>
> >>>> Do you support the debug UART feature on your boards?
> >>>
> >>> yes. I do support it but there you can put just address plus offset and
> >>> there is no reason to add one more option to Kconfig.
> >>> But let me know if you think that this is incorrect flow.
> >>
> > 
> > This patch seems to break my OMAP3 board.  Does anyone know if I need
> > to set a certain offset for OMAP3 to make this work (and where is the
> > right place for it) ?
> 
> Are you using DT init? Check your DT description if there is reg-offset
> property. I expect if your board worked before and you remove this
> property it will start to work again.
> 

Would it be appropriate to initialize 'plat->reg_offset' to zero for the
non-OF_CONTROL cases?

Derald D. Woods

> Thanks,
> Michal
> 
> 
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-24 22:47           ` Derald D. Woods
@ 2016-02-25  0:33             ` Simon Glass
  2016-02-25  3:05               ` Derald D. Woods
  0 siblings, 1 reply; 25+ messages in thread
From: Simon Glass @ 2016-02-25  0:33 UTC (permalink / raw)
  To: u-boot

Hi,

On 24 February 2016 at 15:47, Derald D. Woods <woods.technical@gmail.com> wrote:
> On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
>> On 24.2.2016 11:56, Adam Ford wrote:
>> > On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org> wrote:
>> >> Hi Michal,
>> >>
>> >> On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com> wrote:
>> >>> On 19.2.2016 21:55, Simon Glass wrote:
>> >>>> Hi Michal,
>> >>>>
>> >>>> On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
>> >>>>> reg-offset is the part of standard 8250 binding in the kernel.
>> >>>>> It is shifting start of address space by reg-offset.
>> >>>>> On Xilinx platform this offset is typically 0x1000.
>> >>>>>
>> >>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>> >>>>> ---
>> >>>>>
>> >>>>>  drivers/serial/ns16550.c | 6 ++++--
>> >>>>>  include/ns16550.h        | 1 +
>> >>>>>  2 files changed, 5 insertions(+), 2 deletions(-)
>> >>>>
>> >>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>> >>>>
>> >>>> Do you support the debug UART feature on your boards?
>> >>>
>> >>> yes. I do support it but there you can put just address plus offset and
>> >>> there is no reason to add one more option to Kconfig.
>> >>> But let me know if you think that this is incorrect flow.
>> >>
>> >
>> > This patch seems to break my OMAP3 board.  Does anyone know if I need
>> > to set a certain offset for OMAP3 to make this work (and where is the
>> > right place for it) ?
>>
>> Are you using DT init? Check your DT description if there is reg-offset
>> property. I expect if your board worked before and you remove this
>> property it will start to work again.
>>
>
> Would it be appropriate to initialize 'plat->reg_offset' to zero for the
> non-OF_CONTROL cases?

It should not be needed as driver model promises to zero auto-allocated data.

- Simon

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-25  0:33             ` Simon Glass
@ 2016-02-25  3:05               ` Derald D. Woods
  0 siblings, 0 replies; 25+ messages in thread
From: Derald D. Woods @ 2016-02-25  3:05 UTC (permalink / raw)
  To: u-boot

On Wed, Feb 24, 2016 at 05:33:08PM -0700, Simon Glass wrote:
> Hi,
> 
> On 24 February 2016 at 15:47, Derald D. Woods <woods.technical@gmail.com> wrote:
> > On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
> >> On 24.2.2016 11:56, Adam Ford wrote:
> >> > On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org> wrote:
> >> >> Hi Michal,
> >> >>
> >> >> On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com> wrote:
> >> >>> On 19.2.2016 21:55, Simon Glass wrote:
> >> >>>> Hi Michal,
> >> >>>>
> >> >>>> On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
> >> >>>>> reg-offset is the part of standard 8250 binding in the kernel.
> >> >>>>> It is shifting start of address space by reg-offset.
> >> >>>>> On Xilinx platform this offset is typically 0x1000.
> >> >>>>>
> >> >>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> >> >>>>> ---
> >> >>>>>
> >> >>>>>  drivers/serial/ns16550.c | 6 ++++--
> >> >>>>>  include/ns16550.h        | 1 +
> >> >>>>>  2 files changed, 5 insertions(+), 2 deletions(-)
> >> >>>>
> >> >>>> Reviewed-by: Simon Glass <sjg@chromium.org>
> >> >>>>
> >> >>>> Do you support the debug UART feature on your boards?
> >> >>>
> >> >>> yes. I do support it but there you can put just address plus offset and
> >> >>> there is no reason to add one more option to Kconfig.
> >> >>> But let me know if you think that this is incorrect flow.
> >> >>
> >> >
> >> > This patch seems to break my OMAP3 board.  Does anyone know if I need
> >> > to set a certain offset for OMAP3 to make this work (and where is the
> >> > right place for it) ?
> >>
> >> Are you using DT init? Check your DT description if there is reg-offset
> >> property. I expect if your board worked before and you remove this
> >> property it will start to work again.
> >>
> >
> > Would it be appropriate to initialize 'plat->reg_offset' to zero for the
> > non-OF_CONTROL cases?
> 
> It should not be needed as driver model promises to zero auto-allocated data.
> 
> - Simon

Thanks Simon. 

The omap3_logic board (LogicPD Torpedo DM3730 devkit) stops booting at
this Git patch/commit. Dropping it allows the board to boot again.
There is probably some serial config that is missing? The one thing
that is variant, from other OMAP3 boards, is the use of UART1 for the
main console. I will continue searching for a solution.

Derald

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-24 11:26         ` Michal Simek
  2016-02-24 22:47           ` Derald D. Woods
@ 2016-02-25  4:47           ` Derald D. Woods
  2016-02-25  8:11             ` Michal Simek
  1 sibling, 1 reply; 25+ messages in thread
From: Derald D. Woods @ 2016-02-25  4:47 UTC (permalink / raw)
  To: u-boot

On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
> On 24.2.2016 11:56, Adam Ford wrote:
> > On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org> wrote:
> >> Hi Michal,
> >>
> >> On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com> wrote:
> >>> On 19.2.2016 21:55, Simon Glass wrote:
> >>>> Hi Michal,
> >>>>
> >>>> On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
> >>>>> reg-offset is the part of standard 8250 binding in the kernel.
> >>>>> It is shifting start of address space by reg-offset.
> >>>>> On Xilinx platform this offset is typically 0x1000.
> >>>>>
> >>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> >>>>> ---
> >>>>>
> >>>>>  drivers/serial/ns16550.c | 6 ++++--
> >>>>>  include/ns16550.h        | 1 +
> >>>>>  2 files changed, 5 insertions(+), 2 deletions(-)
> >>>>
> >>>> Reviewed-by: Simon Glass <sjg@chromium.org>
> >>>>
> >>>> Do you support the debug UART feature on your boards?
> >>>
> >>> yes. I do support it but there you can put just address plus offset and
> >>> there is no reason to add one more option to Kconfig.
> >>> But let me know if you think that this is incorrect flow.
> >>
> > 
> > This patch seems to break my OMAP3 board.  Does anyone know if I need
> > to set a certain offset for OMAP3 to make this work (and where is the
> > right place for it) ?
> 
> Are you using DT init? Check your DT description if there is reg-offset
> property. I expect if your board worked before and you remove this
> property it will start to work again.
> 

I am seeing the same problem with my BeagleBoard Rev. C4. There is
something common, to more than one board, happening with this commit.

Derald

> Thanks,
> Michal

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-25  4:47           ` Derald D. Woods
@ 2016-02-25  8:11             ` Michal Simek
  2016-02-25 13:38               ` Derald D. Woods
  0 siblings, 1 reply; 25+ messages in thread
From: Michal Simek @ 2016-02-25  8:11 UTC (permalink / raw)
  To: u-boot

On 25.2.2016 05:47, Derald D. Woods wrote:
> On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
>> On 24.2.2016 11:56, Adam Ford wrote:
>>> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org> wrote:
>>>> Hi Michal,
>>>>
>>>> On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com> wrote:
>>>>> On 19.2.2016 21:55, Simon Glass wrote:
>>>>>> Hi Michal,
>>>>>>
>>>>>> On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
>>>>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>>>>> It is shifting start of address space by reg-offset.
>>>>>>> On Xilinx platform this offset is typically 0x1000.
>>>>>>>
>>>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>>>>> ---
>>>>>>>
>>>>>>>  drivers/serial/ns16550.c | 6 ++++--
>>>>>>>  include/ns16550.h        | 1 +
>>>>>>>  2 files changed, 5 insertions(+), 2 deletions(-)
>>>>>>
>>>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>>>>
>>>>>> Do you support the debug UART feature on your boards?
>>>>>
>>>>> yes. I do support it but there you can put just address plus offset and
>>>>> there is no reason to add one more option to Kconfig.
>>>>> But let me know if you think that this is incorrect flow.
>>>>
>>>
>>> This patch seems to break my OMAP3 board.  Does anyone know if I need
>>> to set a certain offset for OMAP3 to make this work (and where is the
>>> right place for it) ?
>>
>> Are you using DT init? Check your DT description if there is reg-offset
>> property. I expect if your board worked before and you remove this
>> property it will start to work again.
>>
> 
> I am seeing the same problem with my BeagleBoard Rev. C4. There is
> something common, to more than one board, happening with this commit.

You should enable debug console and send the log.
Do you have enough space for malloc?

The patch is quite simple and if your DT has no this property there are
not so many options what can be problematic.
I expect when you enable debug console you will get more information.

Thanks,
Michal

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-25  8:11             ` Michal Simek
@ 2016-02-25 13:38               ` Derald D. Woods
  2016-02-28 22:39                 ` Alexander Graf
  0 siblings, 1 reply; 25+ messages in thread
From: Derald D. Woods @ 2016-02-25 13:38 UTC (permalink / raw)
  To: u-boot

On Thu, Feb 25, 2016 at 09:11:24AM +0100, Michal Simek wrote:
> On 25.2.2016 05:47, Derald D. Woods wrote:
> > On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
> >> On 24.2.2016 11:56, Adam Ford wrote:
> >>> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org> wrote:
> >>>> Hi Michal,
> >>>>
> >>>> On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com> wrote:
> >>>>> On 19.2.2016 21:55, Simon Glass wrote:
> >>>>>> Hi Michal,
> >>>>>>
> >>>>>> On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
> >>>>>>> reg-offset is the part of standard 8250 binding in the kernel.
> >>>>>>> It is shifting start of address space by reg-offset.
> >>>>>>> On Xilinx platform this offset is typically 0x1000.
> >>>>>>>
> >>>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> >>>>>>> ---
> >>>>>>>
> >>>>>>>  drivers/serial/ns16550.c | 6 ++++--
> >>>>>>>  include/ns16550.h        | 1 +
> >>>>>>>  2 files changed, 5 insertions(+), 2 deletions(-)
> >>>>>>
> >>>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
> >>>>>>
> >>>>>> Do you support the debug UART feature on your boards?
> >>>>>
> >>>>> yes. I do support it but there you can put just address plus offset and
> >>>>> there is no reason to add one more option to Kconfig.
> >>>>> But let me know if you think that this is incorrect flow.
> >>>>
> >>>
> >>> This patch seems to break my OMAP3 board.  Does anyone know if I need
> >>> to set a certain offset for OMAP3 to make this work (and where is the
> >>> right place for it) ?
> >>
> >> Are you using DT init? Check your DT description if there is reg-offset
> >> property. I expect if your board worked before and you remove this
> >> property it will start to work again.
> >>
> > 
> > I am seeing the same problem with my BeagleBoard Rev. C4. There is
> > something common, to more than one board, happening with this commit.
> 
> You should enable debug console and send the log.
> Do you have enough space for malloc?
> 

I will have little time this weekend to go further. Some things will
need to be un-configured to have enough space. I am around 7 KiB over
with DEBUG enabled.

Derald

> The patch is quite simple and if your DT has no this property there are
> not so many options what can be problematic.
> I expect when you enable debug console you will get more information.
> 
> Thanks,
> Michal
> 

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-25 13:38               ` Derald D. Woods
@ 2016-02-28 22:39                 ` Alexander Graf
  2016-02-28 23:45                   ` Derald D. Woods
  2016-03-13  1:54                   ` Simon Glass
  0 siblings, 2 replies; 25+ messages in thread
From: Alexander Graf @ 2016-02-28 22:39 UTC (permalink / raw)
  To: u-boot



On 02/25/2016 02:38 PM, Derald D. Woods wrote:
> On Thu, Feb 25, 2016 at 09:11:24AM +0100, Michal Simek wrote:
>> On 25.2.2016 05:47, Derald D. Woods wrote:
>>> On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
>>>> On 24.2.2016 11:56, Adam Ford wrote:
>>>>> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org> wrote:
>>>>>> Hi Michal,
>>>>>>
>>>>>> On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com> wrote:
>>>>>>> On 19.2.2016 21:55, Simon Glass wrote:
>>>>>>>> Hi Michal,
>>>>>>>>
>>>>>>>> On 16 February 2016 at 08:17, Michal Simek <michal.simek@xilinx.com> wrote:
>>>>>>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>>>>>>> It is shifting start of address space by reg-offset.
>>>>>>>>> On Xilinx platform this offset is typically 0x1000.
>>>>>>>>>
>>>>>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>>>>>>> ---
>>>>>>>>>
>>>>>>>>>   drivers/serial/ns16550.c | 6 ++++--
>>>>>>>>>   include/ns16550.h        | 1 +
>>>>>>>>>   2 files changed, 5 insertions(+), 2 deletions(-)
>>>>>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>>>>>>
>>>>>>>> Do you support the debug UART feature on your boards?
>>>>>>> yes. I do support it but there you can put just address plus offset and
>>>>>>> there is no reason to add one more option to Kconfig.
>>>>>>> But let me know if you think that this is incorrect flow.
>>>>> This patch seems to break my OMAP3 board.  Does anyone know if I need
>>>>> to set a certain offset for OMAP3 to make this work (and where is the
>>>>> right place for it) ?
>>>> Are you using DT init? Check your DT description if there is reg-offset
>>>> property. I expect if your board worked before and you remove this
>>>> property it will start to work again.
>>>>
>>> I am seeing the same problem with my BeagleBoard Rev. C4. There is
>>> something common, to more than one board, happening with this commit.
>> You should enable debug console and send the log.
>> Do you have enough space for malloc?
>>
> I will have little time this weekend to go further. Some things will
> need to be un-configured to have enough space. I am around 7 KiB over
> with DEBUG enabled.

I'm not quite sure what exactly is going wrong here - maybe some asm 
code is accessing the fields without proper offset generation?

Either way, the patch below seems to fix the issue for me (on beaglebone):

diff --git a/include/ns16550.h b/include/ns16550.h
index 5eeacd6..1311f4c 100644
--- a/include/ns16550.h
+++ b/include/ns16550.h
@@ -54,9 +54,9 @@
   */
  struct ns16550_platdata {
         unsigned long base;
-       int reg_offset;
         int reg_shift;
         int clock;
+       int reg_offset;
  };

  struct udevice;

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-28 22:39                 ` Alexander Graf
@ 2016-02-28 23:45                   ` Derald D. Woods
  2016-02-28 23:51                     ` Derald D. Woods
  2016-03-13  1:54                   ` Simon Glass
  1 sibling, 1 reply; 25+ messages in thread
From: Derald D. Woods @ 2016-02-28 23:45 UTC (permalink / raw)
  To: u-boot

On 02/28/2016 04:39 PM, Alexander Graf wrote:
>
>
> On 02/25/2016 02:38 PM, Derald D. Woods wrote:
>> On Thu, Feb 25, 2016 at 09:11:24AM +0100, Michal Simek wrote:
>>> On 25.2.2016 05:47, Derald D. Woods wrote:
>>>> On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
>>>>> On 24.2.2016 11:56, Adam Ford wrote:
>>>>>> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org> 
>>>>>> wrote:
>>>>>>> Hi Michal,
>>>>>>>
>>>>>>> On 22 February 2016 at 00:40, Michal Simek 
>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>> On 19.2.2016 21:55, Simon Glass wrote:
>>>>>>>>> Hi Michal,
>>>>>>>>>
>>>>>>>>> On 16 February 2016 at 08:17, Michal Simek 
>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>>>>>>>> It is shifting start of address space by reg-offset.
>>>>>>>>>> On Xilinx platform this offset is typically 0x1000.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>>>>>>>> ---
>>>>>>>>>>
>>>>>>>>>>   drivers/serial/ns16550.c | 6 ++++--
>>>>>>>>>>   include/ns16550.h        | 1 +
>>>>>>>>>>   2 files changed, 5 insertions(+), 2 deletions(-)
>>>>>>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>>>>>>>
>>>>>>>>> Do you support the debug UART feature on your boards?
>>>>>>>> yes. I do support it but there you can put just address plus 
>>>>>>>> offset and
>>>>>>>> there is no reason to add one more option to Kconfig.
>>>>>>>> But let me know if you think that this is incorrect flow.
>>>>>> This patch seems to break my OMAP3 board.  Does anyone know if I 
>>>>>> need
>>>>>> to set a certain offset for OMAP3 to make this work (and where is 
>>>>>> the
>>>>>> right place for it) ?
>>>>> Are you using DT init? Check your DT description if there is 
>>>>> reg-offset
>>>>> property. I expect if your board worked before and you remove this
>>>>> property it will start to work again.
>>>>>
>>>> I am seeing the same problem with my BeagleBoard Rev. C4. There is
>>>> something common, to more than one board, happening with this commit.
>>> You should enable debug console and send the log.
>>> Do you have enough space for malloc?
>>>
>> I will have little time this weekend to go further. Some things will
>> need to be un-configured to have enough space. I am around 7 KiB over
>> with DEBUG enabled.
>
> I'm not quite sure what exactly is going wrong here - maybe some asm 
> code is accessing the fields without proper offset generation?
>
> Either way, the patch below seems to fix the issue for me (on 
> beaglebone):
>
> diff --git a/include/ns16550.h b/include/ns16550.h
> index 5eeacd6..1311f4c 100644
> --- a/include/ns16550.h
> +++ b/include/ns16550.h
> @@ -54,9 +54,9 @@
>   */
>  struct ns16550_platdata {
>         unsigned long base;
> -       int reg_offset;
>         int reg_shift;
>         int clock;
> +       int reg_offset;
>  };
>
>  struct udevice;
>

I see the following grep results:

$ grep -RI -e "const struct ns16550_platdata" .
./arch/arm/cpu/armv7/am33xx/board.c:static const struct ns16550_platdata 
am33xx_serial[] = {
./arch/arm/cpu/arm926ejs/lpc32xx/devices.c:static const struct 
ns16550_platdata lpc32xx_uart[] = {
./board/timll/devkit8000/devkit8000.c:static const struct 
ns16550_platdata devkit8000_serial = {
./board/ti/beagle/beagle.c:static const struct ns16550_platdata 
beagle_serial = {
./board/logicpd/zoom1/zoom1.c:static const struct ns16550_platdata 
zoom1_serial = {
./board/logicpd/omap3som/omap3logic.c:static const struct 
ns16550_platdata omap3logic_serial = {
./board/quipos/cairo/cairo.c:static const struct ns16550_platdata 
cairo_serial = {
./board/lge/sniper/sniper.c:static const struct ns16550_platdata 
serial_omap_platdata = {
./board/isee/igep00x0/igep00x0.c:static const struct ns16550_platdata 
igep_serial = {
./board/overo/overo.c:static const struct ns16550_platdata overo_serial = {

Could the use of 'const' be a part of the problem?

- Derald

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-28 23:45                   ` Derald D. Woods
@ 2016-02-28 23:51                     ` Derald D. Woods
  2016-02-29  3:56                       ` Adam Ford
  0 siblings, 1 reply; 25+ messages in thread
From: Derald D. Woods @ 2016-02-28 23:51 UTC (permalink / raw)
  To: u-boot

On 02/28/2016 05:45 PM, Derald D. Woods wrote:
> On 02/28/2016 04:39 PM, Alexander Graf wrote:
>>
>>
>> On 02/25/2016 02:38 PM, Derald D. Woods wrote:
>>> On Thu, Feb 25, 2016 at 09:11:24AM +0100, Michal Simek wrote:
>>>> On 25.2.2016 05:47, Derald D. Woods wrote:
>>>>> On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
>>>>>> On 24.2.2016 11:56, Adam Ford wrote:
>>>>>>> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org> 
>>>>>>> wrote:
>>>>>>>> Hi Michal,
>>>>>>>>
>>>>>>>> On 22 February 2016 at 00:40, Michal Simek 
>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>> On 19.2.2016 21:55, Simon Glass wrote:
>>>>>>>>>> Hi Michal,
>>>>>>>>>>
>>>>>>>>>> On 16 February 2016 at 08:17, Michal Simek 
>>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>>>>>>>>> It is shifting start of address space by reg-offset.
>>>>>>>>>>> On Xilinx platform this offset is typically 0x1000.
>>>>>>>>>>>
>>>>>>>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>>>>>>>>> ---
>>>>>>>>>>>
>>>>>>>>>>>   drivers/serial/ns16550.c | 6 ++++--
>>>>>>>>>>>   include/ns16550.h        | 1 +
>>>>>>>>>>>   2 files changed, 5 insertions(+), 2 deletions(-)
>>>>>>>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>>>>>>>>
>>>>>>>>>> Do you support the debug UART feature on your boards?
>>>>>>>>> yes. I do support it but there you can put just address plus 
>>>>>>>>> offset and
>>>>>>>>> there is no reason to add one more option to Kconfig.
>>>>>>>>> But let me know if you think that this is incorrect flow.
>>>>>>> This patch seems to break my OMAP3 board.  Does anyone know if I 
>>>>>>> need
>>>>>>> to set a certain offset for OMAP3 to make this work (and where 
>>>>>>> is the
>>>>>>> right place for it) ?
>>>>>> Are you using DT init? Check your DT description if there is 
>>>>>> reg-offset
>>>>>> property. I expect if your board worked before and you remove this
>>>>>> property it will start to work again.
>>>>>>
>>>>> I am seeing the same problem with my BeagleBoard Rev. C4. There is
>>>>> something common, to more than one board, happening with this commit.
>>>> You should enable debug console and send the log.
>>>> Do you have enough space for malloc?
>>>>
>>> I will have little time this weekend to go further. Some things will
>>> need to be un-configured to have enough space. I am around 7 KiB over
>>> with DEBUG enabled.
>>
>> I'm not quite sure what exactly is going wrong here - maybe some asm 
>> code is accessing the fields without proper offset generation?
>>
>> Either way, the patch below seems to fix the issue for me (on 
>> beaglebone):
>>
>> diff --git a/include/ns16550.h b/include/ns16550.h
>> index 5eeacd6..1311f4c 100644
>> --- a/include/ns16550.h
>> +++ b/include/ns16550.h
>> @@ -54,9 +54,9 @@
>>   */
>>  struct ns16550_platdata {
>>         unsigned long base;
>> -       int reg_offset;
>>         int reg_shift;
>>         int clock;
>> +       int reg_offset;
>>  };
>>
>>  struct udevice;
>>
>
> I see the following grep results:
>
> $ grep -RI -e "const struct ns16550_platdata" .
> ./arch/arm/cpu/armv7/am33xx/board.c:static const struct 
> ns16550_platdata am33xx_serial[] = {
> ./arch/arm/cpu/arm926ejs/lpc32xx/devices.c:static const struct 
> ns16550_platdata lpc32xx_uart[] = {
> ./board/timll/devkit8000/devkit8000.c:static const struct 
> ns16550_platdata devkit8000_serial = {
> ./board/ti/beagle/beagle.c:static const struct ns16550_platdata 
> beagle_serial = {
> ./board/logicpd/zoom1/zoom1.c:static const struct ns16550_platdata 
> zoom1_serial = {
> ./board/logicpd/omap3som/omap3logic.c:static const struct 
> ns16550_platdata omap3logic_serial = {
> ./board/quipos/cairo/cairo.c:static const struct ns16550_platdata 
> cairo_serial = {
> ./board/lge/sniper/sniper.c:static const struct ns16550_platdata 
> serial_omap_platdata = {
> ./board/isee/igep00x0/igep00x0.c:static const struct ns16550_platdata 
> igep_serial = {
> ./board/overo/overo.c:static const struct ns16550_platdata 
> overo_serial = {
>
> Could the use of 'const' be a part of the problem?
>
> - Derald
>
>

The structure initializers need rework for the additional member.

- Derald

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-28 23:51                     ` Derald D. Woods
@ 2016-02-29  3:56                       ` Adam Ford
  2016-02-29  4:58                         ` Derald D. Woods
  0 siblings, 1 reply; 25+ messages in thread
From: Adam Ford @ 2016-02-29  3:56 UTC (permalink / raw)
  To: u-boot

I first tried removing the 'const' in the board file as suggested by
Derald, but that wasn't successful.  I can boot with Alexander's
patch, but modifying the order inside the header seems weird to me.  I
haven't had any time to  look this weekend, but I wonder if something
in one of the files is modifying the structure and expects the order
of the structure to always be a certain order.

adam



On Sun, Feb 28, 2016 at 5:51 PM, Derald D. Woods
<woods.technical@gmail.com> wrote:
> On 02/28/2016 05:45 PM, Derald D. Woods wrote:
>>
>> On 02/28/2016 04:39 PM, Alexander Graf wrote:
>>>
>>>
>>>
>>> On 02/25/2016 02:38 PM, Derald D. Woods wrote:
>>>>
>>>> On Thu, Feb 25, 2016 at 09:11:24AM +0100, Michal Simek wrote:
>>>>>
>>>>> On 25.2.2016 05:47, Derald D. Woods wrote:
>>>>>>
>>>>>> On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
>>>>>>>
>>>>>>> On 24.2.2016 11:56, Adam Ford wrote:
>>>>>>>>
>>>>>>>> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org>
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> Hi Michal,
>>>>>>>>>
>>>>>>>>> On 22 February 2016 at 00:40, Michal Simek
>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>>
>>>>>>>>>> On 19.2.2016 21:55, Simon Glass wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi Michal,
>>>>>>>>>>>
>>>>>>>>>>> On 16 February 2016 at 08:17, Michal Simek
>>>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>>>>>>>>>> It is shifting start of address space by reg-offset.
>>>>>>>>>>>> On Xilinx platform this offset is typically 0x1000.
>>>>>>>>>>>>
>>>>>>>>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>>>>>>>>>> ---
>>>>>>>>>>>>
>>>>>>>>>>>>   drivers/serial/ns16550.c | 6 ++++--
>>>>>>>>>>>>   include/ns16550.h        | 1 +
>>>>>>>>>>>>   2 files changed, 5 insertions(+), 2 deletions(-)
>>>>>>>>>>>
>>>>>>>>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>>>>>>>>>
>>>>>>>>>>> Do you support the debug UART feature on your boards?
>>>>>>>>>>
>>>>>>>>>> yes. I do support it but there you can put just address plus
>>>>>>>>>> offset and
>>>>>>>>>> there is no reason to add one more option to Kconfig.
>>>>>>>>>> But let me know if you think that this is incorrect flow.
>>>>>>>>
>>>>>>>> This patch seems to break my OMAP3 board.  Does anyone know if I
>>>>>>>> need
>>>>>>>> to set a certain offset for OMAP3 to make this work (and where is
>>>>>>>> the
>>>>>>>> right place for it) ?
>>>>>>>
>>>>>>> Are you using DT init? Check your DT description if there is
>>>>>>> reg-offset
>>>>>>> property. I expect if your board worked before and you remove this
>>>>>>> property it will start to work again.
>>>>>>>
>>>>>> I am seeing the same problem with my BeagleBoard Rev. C4. There is
>>>>>> something common, to more than one board, happening with this commit.
>>>>>
>>>>> You should enable debug console and send the log.
>>>>> Do you have enough space for malloc?
>>>>>
>>>> I will have little time this weekend to go further. Some things will
>>>> need to be un-configured to have enough space. I am around 7 KiB over
>>>> with DEBUG enabled.
>>>
>>>
>>> I'm not quite sure what exactly is going wrong here - maybe some asm code
>>> is accessing the fields without proper offset generation?
>>>
>>> Either way, the patch below seems to fix the issue for me (on
>>> beaglebone):
>>>
>>> diff --git a/include/ns16550.h b/include/ns16550.h
>>> index 5eeacd6..1311f4c 100644
>>> --- a/include/ns16550.h
>>> +++ b/include/ns16550.h
>>> @@ -54,9 +54,9 @@
>>>   */
>>>  struct ns16550_platdata {
>>>         unsigned long base;
>>> -       int reg_offset;
>>>         int reg_shift;
>>>         int clock;
>>> +       int reg_offset;
>>>  };
>>>
>>>  struct udevice;
>>>
>>
>> I see the following grep results:
>>
>> $ grep -RI -e "const struct ns16550_platdata" .
>> ./arch/arm/cpu/armv7/am33xx/board.c:static const struct ns16550_platdata
>> am33xx_serial[] = {
>> ./arch/arm/cpu/arm926ejs/lpc32xx/devices.c:static const struct
>> ns16550_platdata lpc32xx_uart[] = {
>> ./board/timll/devkit8000/devkit8000.c:static const struct ns16550_platdata
>> devkit8000_serial = {
>> ./board/ti/beagle/beagle.c:static const struct ns16550_platdata
>> beagle_serial = {
>> ./board/logicpd/zoom1/zoom1.c:static const struct ns16550_platdata
>> zoom1_serial = {
>> ./board/logicpd/omap3som/omap3logic.c:static const struct ns16550_platdata
>> omap3logic_serial = {
>> ./board/quipos/cairo/cairo.c:static const struct ns16550_platdata
>> cairo_serial = {
>> ./board/lge/sniper/sniper.c:static const struct ns16550_platdata
>> serial_omap_platdata = {
>> ./board/isee/igep00x0/igep00x0.c:static const struct ns16550_platdata
>> igep_serial = {
>> ./board/overo/overo.c:static const struct ns16550_platdata overo_serial =
>> {
>>
>> Could the use of 'const' be a part of the problem?
>>
>> - Derald
>>
>>
>
> The structure initializers need rework for the additional member.
>
>
> - Derald
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-29  3:56                       ` Adam Ford
@ 2016-02-29  4:58                         ` Derald D. Woods
  2016-02-29  5:15                           ` Simon Glass
  0 siblings, 1 reply; 25+ messages in thread
From: Derald D. Woods @ 2016-02-29  4:58 UTC (permalink / raw)
  To: u-boot

On Sun, Feb 28, 2016 at 5:51 PM, Derald D. Woods 
<woods.technical@gmail.com> wrote:
>> On 02/28/2016 05:45 PM, Derald D. Woods wrote:
>>> On 02/28/2016 04:39 PM, Alexander Graf wrote:
>>>>
>>>>
>>>> On 02/25/2016 02:38 PM, Derald D. Woods wrote:
>>>>> On Thu, Feb 25, 2016 at 09:11:24AM +0100, Michal Simek wrote:
>>>>>> On 25.2.2016 05:47, Derald D. Woods wrote:
>>>>>>> On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
>>>>>>>> On 24.2.2016 11:56, Adam Ford wrote:
>>>>>>>>> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org>
>>>>>>>>> wrote:
>>>>>>>>>> Hi Michal,
>>>>>>>>>>
>>>>>>>>>> On 22 February 2016 at 00:40, Michal Simek
>>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>>> On 19.2.2016 21:55, Simon Glass wrote:
>>>>>>>>>>>> Hi Michal,
>>>>>>>>>>>>
>>>>>>>>>>>> On 16 February 2016 at 08:17, Michal Simek
>>>>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>>>>>>>>>>> It is shifting start of address space by reg-offset.
>>>>>>>>>>>>> On Xilinx platform this offset is typically 0x1000.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>>>>>>>>>>> ---
>>>>>>>>>>>>>
>>>>>>>>>>>>>    drivers/serial/ns16550.c | 6 ++++--
>>>>>>>>>>>>>    include/ns16550.h        | 1 +
>>>>>>>>>>>>>    2 files changed, 5 insertions(+), 2 deletions(-)
>>>>>>>>>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>>>>>>>>>>
>>>>>>>>>>>> Do you support the debug UART feature on your boards?
>>>>>>>>>>> yes. I do support it but there you can put just address plus
>>>>>>>>>>> offset and
>>>>>>>>>>> there is no reason to add one more option to Kconfig.
>>>>>>>>>>> But let me know if you think that this is incorrect flow.
>>>>>>>>> This patch seems to break my OMAP3 board.  Does anyone know if I
>>>>>>>>> need
>>>>>>>>> to set a certain offset for OMAP3 to make this work (and where is
>>>>>>>>> the
>>>>>>>>> right place for it) ?
>>>>>>>> Are you using DT init? Check your DT description if there is
>>>>>>>> reg-offset
>>>>>>>> property. I expect if your board worked before and you remove this
>>>>>>>> property it will start to work again.
>>>>>>>>
>>>>>>> I am seeing the same problem with my BeagleBoard Rev. C4. There is
>>>>>>> something common, to more than one board, happening with this commit.
>>>>>> You should enable debug console and send the log.
>>>>>> Do you have enough space for malloc?
>>>>>>
>>>>> I will have little time this weekend to go further. Some things will
>>>>> need to be un-configured to have enough space. I am around 7 KiB over
>>>>> with DEBUG enabled.
>>>>
>>>> I'm not quite sure what exactly is going wrong here - maybe some asm code
>>>> is accessing the fields without proper offset generation?
>>>>
>>>> Either way, the patch below seems to fix the issue for me (on
>>>> beaglebone):
>>>>
>>>> diff --git a/include/ns16550.h b/include/ns16550.h
>>>> index 5eeacd6..1311f4c 100644
>>>> --- a/include/ns16550.h
>>>> +++ b/include/ns16550.h
>>>> @@ -54,9 +54,9 @@
>>>>    */
>>>>   struct ns16550_platdata {
>>>>          unsigned long base;
>>>> -       int reg_offset;
>>>>          int reg_shift;
>>>>          int clock;
>>>> +       int reg_offset;
>>>>   };
>>>>
>>>>   struct udevice;
>>>>
>>> I see the following grep results:
>>>
>>> $ grep -RI -e "const struct ns16550_platdata" .
>>> ./arch/arm/cpu/armv7/am33xx/board.c:static const struct ns16550_platdata
>>> am33xx_serial[] = {
>>> ./arch/arm/cpu/arm926ejs/lpc32xx/devices.c:static const struct
>>> ns16550_platdata lpc32xx_uart[] = {
>>> ./board/timll/devkit8000/devkit8000.c:static const struct ns16550_platdata
>>> devkit8000_serial = {
>>> ./board/ti/beagle/beagle.c:static const struct ns16550_platdata
>>> beagle_serial = {
>>> ./board/logicpd/zoom1/zoom1.c:static const struct ns16550_platdata
>>> zoom1_serial = {
>>> ./board/logicpd/omap3som/omap3logic.c:static const struct ns16550_platdata
>>> omap3logic_serial = {
>>> ./board/quipos/cairo/cairo.c:static const struct ns16550_platdata
>>> cairo_serial = {
>>> ./board/lge/sniper/sniper.c:static const struct ns16550_platdata
>>> serial_omap_platdata = {
>>> ./board/isee/igep00x0/igep00x0.c:static const struct ns16550_platdata
>>> igep_serial = {
>>> ./board/overo/overo.c:static const struct ns16550_platdata overo_serial =
>>> {
>>>
>>> Could the use of 'const' be a part of the problem?
>>>
>>> - Derald
>>>
>>>
>> The structure initializers need rework for the additional member.
>>
>>
>> - Derald
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
On 02/28/2016 09:56 PM, Adam Ford wrote:
> I first tried removing the 'const' in the board file as suggested by
> Derald, but that wasn't successful.  I can boot with Alexander's
> patch, but modifying the order inside the header seems weird to me.  I
> haven't had any time to  look this weekend, but I wonder if something
> in one of the files is modifying the structure and expects the order
> of the structure to always be a certain order.
>
> adam
>
>

According to "doc/driver-model/README.txt" the use of 'U_BOOT_DEVICE' 
will the problematic going forward.

For now, I would expect something like the following would work, without 
modifying the structure again:

[board/logicpd/omap3som/omap3logic.c]
...
static struct ns16550_platdata omap3logic_serial = {
     OMAP34XX_UART1,
     0,
     2,
     V_NS16550_CLK
};
...

[board/ti/beagle/beagle.c]
...
static const struct ns16550_platdata beagle_serial = {
     OMAP34XX_UART3,
     0,
     2,
     V_NS16550_CLK
};
...

All static instances of the structure initialization would be incorrect 
without adding the new 'reg_offset' member after 'base'.

If 'U_BOOT_DEVICE' is not expected to work anymore, then efforts may 
need to be directed towards the new DM/FDT way.


- Derald

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-29  4:58                         ` Derald D. Woods
@ 2016-02-29  5:15                           ` Simon Glass
  2016-02-29  7:38                             ` Michal Simek
  0 siblings, 1 reply; 25+ messages in thread
From: Simon Glass @ 2016-02-29  5:15 UTC (permalink / raw)
  To: u-boot

Hi,

On 28 February 2016 at 21:58, Derald D. Woods <woods.technical@gmail.com> wrote:
> On Sun, Feb 28, 2016 at 5:51 PM, Derald D. Woods <woods.technical@gmail.com>
> wrote:
>>>
>>> On 02/28/2016 05:45 PM, Derald D. Woods wrote:
>>>>
>>>> On 02/28/2016 04:39 PM, Alexander Graf wrote:
>>>>>
>>>>>
>>>>>
>>>>> On 02/25/2016 02:38 PM, Derald D. Woods wrote:
>>>>>>
>>>>>> On Thu, Feb 25, 2016 at 09:11:24AM +0100, Michal Simek wrote:
>>>>>>>
>>>>>>> On 25.2.2016 05:47, Derald D. Woods wrote:
>>>>>>>>
>>>>>>>> On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
>>>>>>>>>
>>>>>>>>> On 24.2.2016 11:56, Adam Ford wrote:
>>>>>>>>>>
>>>>>>>>>> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org>
>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi Michal,
>>>>>>>>>>>
>>>>>>>>>>> On 22 February 2016 at 00:40, Michal Simek
>>>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> On 19.2.2016 21:55, Simon Glass wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> Hi Michal,
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 16 February 2016 at 08:17, Michal Simek
>>>>>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>>>>>>>>>>>> It is shifting start of address space by reg-offset.
>>>>>>>>>>>>>> On Xilinx platform this offset is typically 0x1000.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>>>>>>>>>>>> ---
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>    drivers/serial/ns16550.c | 6 ++++--
>>>>>>>>>>>>>>    include/ns16550.h        | 1 +
>>>>>>>>>>>>>>    2 files changed, 5 insertions(+), 2 deletions(-)
>>>>>>>>>>>>>
>>>>>>>>>>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Do you support the debug UART feature on your boards?
>>>>>>>>>>>>
>>>>>>>>>>>> yes. I do support it but there you can put just address plus
>>>>>>>>>>>> offset and
>>>>>>>>>>>> there is no reason to add one more option to Kconfig.
>>>>>>>>>>>> But let me know if you think that this is incorrect flow.
>>>>>>>>>>
>>>>>>>>>> This patch seems to break my OMAP3 board.  Does anyone know if I
>>>>>>>>>> need
>>>>>>>>>> to set a certain offset for OMAP3 to make this work (and where is
>>>>>>>>>> the
>>>>>>>>>> right place for it) ?
>>>>>>>>>
>>>>>>>>> Are you using DT init? Check your DT description if there is
>>>>>>>>> reg-offset
>>>>>>>>> property. I expect if your board worked before and you remove this
>>>>>>>>> property it will start to work again.
>>>>>>>>>
>>>>>>>> I am seeing the same problem with my BeagleBoard Rev. C4. There is
>>>>>>>> something common, to more than one board, happening with this
>>>>>>>> commit.
>>>>>>>
>>>>>>> You should enable debug console and send the log.
>>>>>>> Do you have enough space for malloc?
>>>>>>>
>>>>>> I will have little time this weekend to go further. Some things will
>>>>>> need to be un-configured to have enough space. I am around 7 KiB over
>>>>>> with DEBUG enabled.
>>>>>
>>>>>
>>>>> I'm not quite sure what exactly is going wrong here - maybe some asm
>>>>> code
>>>>> is accessing the fields without proper offset generation?
>>>>>
>>>>> Either way, the patch below seems to fix the issue for me (on
>>>>> beaglebone):
>>>>>
>>>>> diff --git a/include/ns16550.h b/include/ns16550.h
>>>>> index 5eeacd6..1311f4c 100644
>>>>> --- a/include/ns16550.h
>>>>> +++ b/include/ns16550.h
>>>>> @@ -54,9 +54,9 @@
>>>>>    */
>>>>>   struct ns16550_platdata {
>>>>>          unsigned long base;
>>>>> -       int reg_offset;
>>>>>          int reg_shift;
>>>>>          int clock;
>>>>> +       int reg_offset;
>>>>>   };
>>>>>
>>>>>   struct udevice;
>>>>>
>>>> I see the following grep results:
>>>>
>>>> $ grep -RI -e "const struct ns16550_platdata" .
>>>> ./arch/arm/cpu/armv7/am33xx/board.c:static const struct ns16550_platdata
>>>> am33xx_serial[] = {
>>>> ./arch/arm/cpu/arm926ejs/lpc32xx/devices.c:static const struct
>>>> ns16550_platdata lpc32xx_uart[] = {
>>>> ./board/timll/devkit8000/devkit8000.c:static const struct
>>>> ns16550_platdata
>>>> devkit8000_serial = {
>>>> ./board/ti/beagle/beagle.c:static const struct ns16550_platdata
>>>> beagle_serial = {
>>>> ./board/logicpd/zoom1/zoom1.c:static const struct ns16550_platdata
>>>> zoom1_serial = {
>>>> ./board/logicpd/omap3som/omap3logic.c:static const struct
>>>> ns16550_platdata
>>>> omap3logic_serial = {
>>>> ./board/quipos/cairo/cairo.c:static const struct ns16550_platdata
>>>> cairo_serial = {
>>>> ./board/lge/sniper/sniper.c:static const struct ns16550_platdata
>>>> serial_omap_platdata = {
>>>> ./board/isee/igep00x0/igep00x0.c:static const struct ns16550_platdata
>>>> igep_serial = {
>>>> ./board/overo/overo.c:static const struct ns16550_platdata overo_serial
>>>> =
>>>> {
>>>>
>>>> Could the use of 'const' be a part of the problem?
>>>>
>>>> - Derald
>>>>
>>>>
>>> The structure initializers need rework for the additional member.
>>>
>>>
>>> - Derald
>>> _______________________________________________
>>> U-Boot mailing list
>>> U-Boot at lists.denx.de
>>> http://lists.denx.de/mailman/listinfo/u-boot
>
> On 02/28/2016 09:56 PM, Adam Ford wrote:
>>
>> I first tried removing the 'const' in the board file as suggested by
>> Derald, but that wasn't successful.  I can boot with Alexander's
>> patch, but modifying the order inside the header seems weird to me.  I
>> haven't had any time to  look this weekend, but I wonder if something
>> in one of the files is modifying the structure and expects the order
>> of the structure to always be a certain order.
>>
>> adam
>>
>>
>
> According to "doc/driver-model/README.txt" the use of 'U_BOOT_DEVICE' will
> the problematic going forward.
>
> For now, I would expect something like the following would work, without
> modifying the structure again:
>
> [board/logicpd/omap3som/omap3logic.c]
> ...
> static struct ns16550_platdata omap3logic_serial = {
>     OMAP34XX_UART1,
>     0,
>     2,
>     V_NS16550_CLK
> };
> ...
>
> [board/ti/beagle/beagle.c]
> ...
> static const struct ns16550_platdata beagle_serial = {
>     OMAP34XX_UART3,
>     0,
>     2,
>     V_NS16550_CLK
> };
> ...
>
> All static instances of the structure initialization would be incorrect
> without adding the new 'reg_offset' member after 'base'.
>
> If 'U_BOOT_DEVICE' is not expected to work anymore, then efforts may need to
> be directed towards the new DM/FDT way.

Yes indeed.

For platform data I'd recommend adding member names.

Regards,
Simon

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-29  5:15                           ` Simon Glass
@ 2016-02-29  7:38                             ` Michal Simek
  0 siblings, 0 replies; 25+ messages in thread
From: Michal Simek @ 2016-02-29  7:38 UTC (permalink / raw)
  To: u-boot

On 29.2.2016 06:15, Simon Glass wrote:
> Hi,
> 
> On 28 February 2016 at 21:58, Derald D. Woods <woods.technical@gmail.com> wrote:
>> On Sun, Feb 28, 2016 at 5:51 PM, Derald D. Woods <woods.technical@gmail.com>
>> wrote:
>>>>
>>>> On 02/28/2016 05:45 PM, Derald D. Woods wrote:
>>>>>
>>>>> On 02/28/2016 04:39 PM, Alexander Graf wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 02/25/2016 02:38 PM, Derald D. Woods wrote:
>>>>>>>
>>>>>>> On Thu, Feb 25, 2016 at 09:11:24AM +0100, Michal Simek wrote:
>>>>>>>>
>>>>>>>> On 25.2.2016 05:47, Derald D. Woods wrote:
>>>>>>>>>
>>>>>>>>> On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
>>>>>>>>>>
>>>>>>>>>> On 24.2.2016 11:56, Adam Ford wrote:
>>>>>>>>>>>
>>>>>>>>>>> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org>
>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>> Hi Michal,
>>>>>>>>>>>>
>>>>>>>>>>>> On 22 February 2016 at 00:40, Michal Simek
>>>>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 19.2.2016 21:55, Simon Glass wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi Michal,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On 16 February 2016 at 08:17, Michal Simek
>>>>>>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>>>>>>>>>>>>> It is shifting start of address space by reg-offset.
>>>>>>>>>>>>>>> On Xilinx platform this offset is typically 0x1000.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>>>>>>>>>>>>> ---
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>    drivers/serial/ns16550.c | 6 ++++--
>>>>>>>>>>>>>>>    include/ns16550.h        | 1 +
>>>>>>>>>>>>>>>    2 files changed, 5 insertions(+), 2 deletions(-)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Do you support the debug UART feature on your boards?
>>>>>>>>>>>>>
>>>>>>>>>>>>> yes. I do support it but there you can put just address plus
>>>>>>>>>>>>> offset and
>>>>>>>>>>>>> there is no reason to add one more option to Kconfig.
>>>>>>>>>>>>> But let me know if you think that this is incorrect flow.
>>>>>>>>>>>
>>>>>>>>>>> This patch seems to break my OMAP3 board.  Does anyone know if I
>>>>>>>>>>> need
>>>>>>>>>>> to set a certain offset for OMAP3 to make this work (and where is
>>>>>>>>>>> the
>>>>>>>>>>> right place for it) ?
>>>>>>>>>>
>>>>>>>>>> Are you using DT init? Check your DT description if there is
>>>>>>>>>> reg-offset
>>>>>>>>>> property. I expect if your board worked before and you remove this
>>>>>>>>>> property it will start to work again.
>>>>>>>>>>
>>>>>>>>> I am seeing the same problem with my BeagleBoard Rev. C4. There is
>>>>>>>>> something common, to more than one board, happening with this
>>>>>>>>> commit.
>>>>>>>>
>>>>>>>> You should enable debug console and send the log.
>>>>>>>> Do you have enough space for malloc?
>>>>>>>>
>>>>>>> I will have little time this weekend to go further. Some things will
>>>>>>> need to be un-configured to have enough space. I am around 7 KiB over
>>>>>>> with DEBUG enabled.
>>>>>>
>>>>>>
>>>>>> I'm not quite sure what exactly is going wrong here - maybe some asm
>>>>>> code
>>>>>> is accessing the fields without proper offset generation?
>>>>>>
>>>>>> Either way, the patch below seems to fix the issue for me (on
>>>>>> beaglebone):
>>>>>>
>>>>>> diff --git a/include/ns16550.h b/include/ns16550.h
>>>>>> index 5eeacd6..1311f4c 100644
>>>>>> --- a/include/ns16550.h
>>>>>> +++ b/include/ns16550.h
>>>>>> @@ -54,9 +54,9 @@
>>>>>>    */
>>>>>>   struct ns16550_platdata {
>>>>>>          unsigned long base;
>>>>>> -       int reg_offset;
>>>>>>          int reg_shift;
>>>>>>          int clock;
>>>>>> +       int reg_offset;
>>>>>>   };
>>>>>>
>>>>>>   struct udevice;
>>>>>>
>>>>> I see the following grep results:
>>>>>
>>>>> $ grep -RI -e "const struct ns16550_platdata" .
>>>>> ./arch/arm/cpu/armv7/am33xx/board.c:static const struct ns16550_platdata
>>>>> am33xx_serial[] = {
>>>>> ./arch/arm/cpu/arm926ejs/lpc32xx/devices.c:static const struct
>>>>> ns16550_platdata lpc32xx_uart[] = {
>>>>> ./board/timll/devkit8000/devkit8000.c:static const struct
>>>>> ns16550_platdata
>>>>> devkit8000_serial = {
>>>>> ./board/ti/beagle/beagle.c:static const struct ns16550_platdata
>>>>> beagle_serial = {
>>>>> ./board/logicpd/zoom1/zoom1.c:static const struct ns16550_platdata
>>>>> zoom1_serial = {
>>>>> ./board/logicpd/omap3som/omap3logic.c:static const struct
>>>>> ns16550_platdata
>>>>> omap3logic_serial = {
>>>>> ./board/quipos/cairo/cairo.c:static const struct ns16550_platdata
>>>>> cairo_serial = {
>>>>> ./board/lge/sniper/sniper.c:static const struct ns16550_platdata
>>>>> serial_omap_platdata = {
>>>>> ./board/isee/igep00x0/igep00x0.c:static const struct ns16550_platdata
>>>>> igep_serial = {
>>>>> ./board/overo/overo.c:static const struct ns16550_platdata overo_serial
>>>>> =
>>>>> {
>>>>>
>>>>> Could the use of 'const' be a part of the problem?
>>>>>
>>>>> - Derald
>>>>>
>>>>>
>>>> The structure initializers need rework for the additional member.
>>>>
>>>>
>>>> - Derald
>>>> _______________________________________________
>>>> U-Boot mailing list
>>>> U-Boot at lists.denx.de
>>>> http://lists.denx.de/mailman/listinfo/u-boot
>>
>> On 02/28/2016 09:56 PM, Adam Ford wrote:
>>>
>>> I first tried removing the 'const' in the board file as suggested by
>>> Derald, but that wasn't successful.  I can boot with Alexander's
>>> patch, but modifying the order inside the header seems weird to me.  I
>>> haven't had any time to  look this weekend, but I wonder if something
>>> in one of the files is modifying the structure and expects the order
>>> of the structure to always be a certain order.
>>>
>>> adam
>>>
>>>
>>
>> According to "doc/driver-model/README.txt" the use of 'U_BOOT_DEVICE' will
>> the problematic going forward.
>>
>> For now, I would expect something like the following would work, without
>> modifying the structure again:
>>
>> [board/logicpd/omap3som/omap3logic.c]
>> ...
>> static struct ns16550_platdata omap3logic_serial = {
>>     OMAP34XX_UART1,
>>     0,
>>     2,
>>     V_NS16550_CLK
>> };
>> ...
>>
>> [board/ti/beagle/beagle.c]
>> ...
>> static const struct ns16550_platdata beagle_serial = {
>>     OMAP34XX_UART3,
>>     0,
>>     2,
>>     V_NS16550_CLK
>> };
>> ...
>>
>> All static instances of the structure initialization would be incorrect
>> without adding the new 'reg_offset' member after 'base'.
>>
>> If 'U_BOOT_DEVICE' is not expected to work anymore, then efforts may need to
>> be directed towards the new DM/FDT way.
> 
> Yes indeed.
> 
> For platform data I'd recommend adding member names.

yes please.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160229/bd7b4292/attachment.sig>

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-02-28 22:39                 ` Alexander Graf
  2016-02-28 23:45                   ` Derald D. Woods
@ 2016-03-13  1:54                   ` Simon Glass
  2016-03-15 12:31                     ` Adam Ford
  2016-03-31  9:16                     ` Michal Simek
  1 sibling, 2 replies; 25+ messages in thread
From: Simon Glass @ 2016-03-13  1:54 UTC (permalink / raw)
  To: u-boot

Hi,

On 28 February 2016 at 15:39, Alexander Graf <agraf@suse.de> wrote:
>
>
> On 02/25/2016 02:38 PM, Derald D. Woods wrote:
>>
>> On Thu, Feb 25, 2016 at 09:11:24AM +0100, Michal Simek wrote:
>>>
>>> On 25.2.2016 05:47, Derald D. Woods wrote:
>>>>
>>>> On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
>>>>>
>>>>> On 24.2.2016 11:56, Adam Ford wrote:
>>>>>>
>>>>>> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org>
>>>>>> wrote:
>>>>>>>
>>>>>>> Hi Michal,
>>>>>>>
>>>>>>> On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> On 19.2.2016 21:55, Simon Glass wrote:
>>>>>>>>>
>>>>>>>>> Hi Michal,
>>>>>>>>>
>>>>>>>>> On 16 February 2016 at 08:17, Michal Simek
>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>>
>>>>>>>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>>>>>>>> It is shifting start of address space by reg-offset.
>>>>>>>>>> On Xilinx platform this offset is typically 0x1000.
>>>>>>>>>>
>>>>>>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>>>>>>>> ---
>>>>>>>>>>
>>>>>>>>>>   drivers/serial/ns16550.c | 6 ++++--
>>>>>>>>>>   include/ns16550.h        | 1 +
>>>>>>>>>>   2 files changed, 5 insertions(+), 2 deletions(-)
>>>>>>>>>
>>>>>>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>>>>>>>
>>>>>>>>> Do you support the debug UART feature on your boards?
>>>>>>>>
>>>>>>>> yes. I do support it but there you can put just address plus offset
>>>>>>>> and
>>>>>>>> there is no reason to add one more option to Kconfig.
>>>>>>>> But let me know if you think that this is incorrect flow.
>>>>>>
>>>>>> This patch seems to break my OMAP3 board.  Does anyone know if I need
>>>>>> to set a certain offset for OMAP3 to make this work (and where is the
>>>>>> right place for it) ?
>>>>>
>>>>> Are you using DT init? Check your DT description if there is reg-offset
>>>>> property. I expect if your board worked before and you remove this
>>>>> property it will start to work again.
>>>>>
>>>> I am seeing the same problem with my BeagleBoard Rev. C4. There is
>>>> something common, to more than one board, happening with this commit.
>>>
>>> You should enable debug console and send the log.
>>> Do you have enough space for malloc?
>>>
>> I will have little time this weekend to go further. Some things will
>> need to be un-configured to have enough space. I am around 7 KiB over
>> with DEBUG enabled.
>
>
> I'm not quite sure what exactly is going wrong here - maybe some asm code is
> accessing the fields without proper offset generation?
>
> Either way, the patch below seems to fix the issue for me (on beaglebone):
>
> diff --git a/include/ns16550.h b/include/ns16550.h
> index 5eeacd6..1311f4c 100644
> --- a/include/ns16550.h
> +++ b/include/ns16550.h
> @@ -54,9 +54,9 @@
>   */
>  struct ns16550_platdata {
>         unsigned long base;
> -       int reg_offset;
>         int reg_shift;
>         int clock;
> +       int reg_offset;
>  };
>
>  struct udevice;
>

I picked up Alexander's suggestion: Still, we should fix everything up
to use member names.

Applied to u-boot-dm/next, thanks!

- Simon

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-03-13  1:54                   ` Simon Glass
@ 2016-03-15 12:31                     ` Adam Ford
  2016-03-31  9:16                     ` Michal Simek
  1 sibling, 0 replies; 25+ messages in thread
From: Adam Ford @ 2016-03-15 12:31 UTC (permalink / raw)
  To: u-boot

On Sat, Mar 12, 2016 at 7:54 PM, Simon Glass <sjg@chromium.org> wrote:
> Hi,
>
> On 28 February 2016 at 15:39, Alexander Graf <agraf@suse.de> wrote:
>>
>>
>> On 02/25/2016 02:38 PM, Derald D. Woods wrote:
>>>
>>> On Thu, Feb 25, 2016 at 09:11:24AM +0100, Michal Simek wrote:
>>>>
>>>> On 25.2.2016 05:47, Derald D. Woods wrote:
>>>>>
>>>>> On Wed, Feb 24, 2016 at 12:26:09PM +0100, Michal Simek wrote:
>>>>>>
>>>>>> On 24.2.2016 11:56, Adam Ford wrote:
>>>>>>>
>>>>>>> On Tue, Feb 23, 2016 at 12:38 AM, Simon Glass <sjg@chromium.org>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> Hi Michal,
>>>>>>>>
>>>>>>>> On 22 February 2016 at 00:40, Michal Simek <michal.simek@xilinx.com>
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> On 19.2.2016 21:55, Simon Glass wrote:
>>>>>>>>>>
>>>>>>>>>> Hi Michal,
>>>>>>>>>>
>>>>>>>>>> On 16 February 2016 at 08:17, Michal Simek
>>>>>>>>>> <michal.simek@xilinx.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> reg-offset is the part of standard 8250 binding in the kernel.
>>>>>>>>>>> It is shifting start of address space by reg-offset.
>>>>>>>>>>> On Xilinx platform this offset is typically 0x1000.
>>>>>>>>>>>
>>>>>>>>>>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
>>>>>>>>>>> ---
>>>>>>>>>>>
>>>>>>>>>>>   drivers/serial/ns16550.c | 6 ++++--
>>>>>>>>>>>   include/ns16550.h        | 1 +
>>>>>>>>>>>   2 files changed, 5 insertions(+), 2 deletions(-)
>>>>>>>>>>
>>>>>>>>>> Reviewed-by: Simon Glass <sjg@chromium.org>
>>>>>>>>>>
>>>>>>>>>> Do you support the debug UART feature on your boards?
>>>>>>>>>
>>>>>>>>> yes. I do support it but there you can put just address plus offset
>>>>>>>>> and
>>>>>>>>> there is no reason to add one more option to Kconfig.
>>>>>>>>> But let me know if you think that this is incorrect flow.
>>>>>>>
>>>>>>> This patch seems to break my OMAP3 board.  Does anyone know if I need
>>>>>>> to set a certain offset for OMAP3 to make this work (and where is the
>>>>>>> right place for it) ?
>>>>>>
>>>>>> Are you using DT init? Check your DT description if there is reg-offset
>>>>>> property. I expect if your board worked before and you remove this
>>>>>> property it will start to work again.
>>>>>>
>>>>> I am seeing the same problem with my BeagleBoard Rev. C4. There is
>>>>> something common, to more than one board, happening with this commit.
>>>>
>>>> You should enable debug console and send the log.
>>>> Do you have enough space for malloc?
>>>>
>>> I will have little time this weekend to go further. Some things will
>>> need to be un-configured to have enough space. I am around 7 KiB over
>>> with DEBUG enabled.
>>
>>
>> I'm not quite sure what exactly is going wrong here - maybe some asm code is
>> accessing the fields without proper offset generation?
>>
>> Either way, the patch below seems to fix the issue for me (on beaglebone):
>>
>> diff --git a/include/ns16550.h b/include/ns16550.h
>> index 5eeacd6..1311f4c 100644
>> --- a/include/ns16550.h
>> +++ b/include/ns16550.h
>> @@ -54,9 +54,9 @@
>>   */
>>  struct ns16550_platdata {
>>         unsigned long base;
>> -       int reg_offset;
>>         int reg_shift;
>>         int clock;
>> +       int reg_offset;
>>  };
>>
>>  struct udevice;
>>
>
> I picked up Alexander's suggestion: Still, we should fix everything up
> to use member names.
>

As far as I know a bunch of impacted boards should be fixed now.
http://git.denx.de/?p=u-boot.git;a=commitdiff;h=2f6ed3b89a1760ffa73123fb266de3d56eb5d88e

I think Alexander's patch shouldn't impact anything else.

adam

> Applied to u-boot-dm/next, thanks!
>
> - Simon
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-03-13  1:54                   ` Simon Glass
  2016-03-15 12:31                     ` Adam Ford
@ 2016-03-31  9:16                     ` Michal Simek
  2016-04-05  0:03                       ` Simon Glass
  1 sibling, 1 reply; 25+ messages in thread
From: Michal Simek @ 2016-03-31  9:16 UTC (permalink / raw)
  To: u-boot

Hi Simon,


>> diff --git a/include/ns16550.h b/include/ns16550.h
>> index 5eeacd6..1311f4c 100644
>> --- a/include/ns16550.h
>> +++ b/include/ns16550.h
>> @@ -54,9 +54,9 @@
>>   */
>>  struct ns16550_platdata {
>>         unsigned long base;
>> -       int reg_offset;
>>         int reg_shift;
>>         int clock;
>> +       int reg_offset;
>>  };
>>
>>  struct udevice;
>>
> 
> I picked up Alexander's suggestion: Still, we should fix everything up
> to use member names.
> 
> Applied to u-boot-dm/next, thanks!

I can't see this patch applied to your next branch.
Can you please check it?

Thanks,
Michal



-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160331/e166401d/attachment.sig>

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-03-31  9:16                     ` Michal Simek
@ 2016-04-05  0:03                       ` Simon Glass
  2016-04-05 11:39                         ` Michal Simek
  0 siblings, 1 reply; 25+ messages in thread
From: Simon Glass @ 2016-04-05  0:03 UTC (permalink / raw)
  To: u-boot

Hi Michal,

On 31 March 2016 at 03:16, Michal Simek <monstr@monstr.eu> wrote:
> Hi Simon,
>
>
>>> diff --git a/include/ns16550.h b/include/ns16550.h
>>> index 5eeacd6..1311f4c 100644
>>> --- a/include/ns16550.h
>>> +++ b/include/ns16550.h
>>> @@ -54,9 +54,9 @@
>>>   */
>>>  struct ns16550_platdata {
>>>         unsigned long base;
>>> -       int reg_offset;
>>>         int reg_shift;
>>>         int clock;
>>> +       int reg_offset;
>>>  };
>>>
>>>  struct udevice;
>>>
>>
>> I picked up Alexander's suggestion: Still, we should fix everything up
>> to use member names.
>>
>> Applied to u-boot-dm/next, thanks!
>
> I can't see this patch applied to your next branch.
> Can you please check it?

It's in mainline now - I have have updated the u-boot-dm/next branch already.

Regards,
Simon

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

* [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property
  2016-04-05  0:03                       ` Simon Glass
@ 2016-04-05 11:39                         ` Michal Simek
  0 siblings, 0 replies; 25+ messages in thread
From: Michal Simek @ 2016-04-05 11:39 UTC (permalink / raw)
  To: u-boot

Hi Simon,

On 5.4.2016 02:03, Simon Glass wrote:
> Hi Michal,
> 
> On 31 March 2016 at 03:16, Michal Simek <monstr@monstr.eu> wrote:
>> Hi Simon,
>>
>>
>>>> diff --git a/include/ns16550.h b/include/ns16550.h
>>>> index 5eeacd6..1311f4c 100644
>>>> --- a/include/ns16550.h
>>>> +++ b/include/ns16550.h
>>>> @@ -54,9 +54,9 @@
>>>>   */
>>>>  struct ns16550_platdata {
>>>>         unsigned long base;
>>>> -       int reg_offset;
>>>>         int reg_shift;
>>>>         int clock;
>>>> +       int reg_offset;
>>>>  };
>>>>
>>>>  struct udevice;
>>>>
>>>
>>> I picked up Alexander's suggestion: Still, we should fix everything up
>>> to use member names.
>>>
>>> Applied to u-boot-dm/next, thanks!
>>
>> I can't see this patch applied to your next branch.
>> Can you please check it?
> 
> It's in mainline now - I have have updated the u-boot-dm/next branch already.

ok.

Thanks,
Michal

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

end of thread, other threads:[~2016-04-05 11:39 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-16 15:17 [U-Boot] [PATCH] dm: ns16550: Add support for reg-offset property Michal Simek
2016-02-19 20:55 ` Simon Glass
2016-02-22  7:40   ` Michal Simek
2016-02-23  6:38     ` Simon Glass
2016-02-24 10:56       ` Adam Ford
2016-02-24 11:26         ` Michal Simek
2016-02-24 22:47           ` Derald D. Woods
2016-02-25  0:33             ` Simon Glass
2016-02-25  3:05               ` Derald D. Woods
2016-02-25  4:47           ` Derald D. Woods
2016-02-25  8:11             ` Michal Simek
2016-02-25 13:38               ` Derald D. Woods
2016-02-28 22:39                 ` Alexander Graf
2016-02-28 23:45                   ` Derald D. Woods
2016-02-28 23:51                     ` Derald D. Woods
2016-02-29  3:56                       ` Adam Ford
2016-02-29  4:58                         ` Derald D. Woods
2016-02-29  5:15                           ` Simon Glass
2016-02-29  7:38                             ` Michal Simek
2016-03-13  1:54                   ` Simon Glass
2016-03-15 12:31                     ` Adam Ford
2016-03-31  9:16                     ` Michal Simek
2016-04-05  0:03                       ` Simon Glass
2016-04-05 11:39                         ` Michal Simek
2016-02-20  0:54 ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.