Skip to contentSkip to conversation

dm: ns16550: Add support for reg-offset property

PATCH New Michal Simek 7 participants 25 messages Feb 16, 2016 – Apr 5, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

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.

---

 drivers/serial/ns16550.c | 6 ++++--
 include/ns16550.h        | 1 +
 2 files changed, 5 insertions(+), 2 deletions(-)
drivers/serial/ns16550.c +4 -2
index 93dad338b375..28da9ddfd859 100644
@@ -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,
include/ns16550.h +1 -0
index 4e620676c453..5eeacd6ff945 100644
@@ -54,6 +54,7 @@
  */
 struct ns16550_platdata {
 	unsigned long base;
+	int reg_offset;
 	int reg_shift;
 	int clock;
 };
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Hi Michal,

Quoted 10 lines · Michal Simek

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.

---

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

Do you support the debug UART feature on your boards?

Regards,
Simon

#2 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 10 lines · Simon Glass

Hi Michal,

Quoted 7 lines · Michal Simek

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.

---

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

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

#3 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Hi Michal,

Quoted 15 lines · Michal Simek
Quoted 14 lines · Simon Glass

Hi Michal,

Quoted 10 lines · Michal Simek

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.

---

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

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

#4 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 26 lines · Simon Glass

Hi Michal,

Quoted 22 lines · Michal Simek
Quoted 10 lines · Simon Glass

Hi Michal,

Quoted 7 lines · Michal Simek

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.

---

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

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) ?

Quoted 8 lines

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

#5 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 23 lines · Adam Ford
Quoted 22 lines · Simon Glass

Hi Michal,

Quoted 19 lines · Michal Simek
Quoted 17 lines · Simon Glass

Hi Michal,

Quoted 10 lines · Michal Simek

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.

---

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

Do you support the debug UART feature on your boards?

Quoted 8 lines
Quoted 4 lines
Quoted 3 lines

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

#6 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 29 lines · Michal Simek
Quoted 28 lines · Adam Ford
Quoted 26 lines · Simon Glass

Hi Michal,

Quoted 22 lines · Michal Simek
Quoted 10 lines · Simon Glass

Hi Michal,

Quoted 7 lines · Michal Simek

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.

---

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

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.

Quoted 8 lines
Quoted 3 lines

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

Quoted 8 lines

Thanks,
Michal

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

#7 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Hi,

Quoted 34 lines · Derald D. Woods
Quoted 33 lines · Michal Simek
Quoted 31 lines · Adam Ford
Quoted 26 lines · Simon Glass

Hi Michal,

Quoted 22 lines · Michal Simek
Quoted 10 lines · Simon Glass

Hi Michal,

Quoted 7 lines · Michal Simek

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.

---

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

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) ?

Quoted 7 lines
Quoted 4 lines

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

#8 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 42 lines · Simon Glass

Hi,

Quoted 39 lines · Derald D. Woods
Quoted 37 lines · Michal Simek
Quoted 23 lines · Adam Ford
Quoted 22 lines · Simon Glass

Hi Michal,

Quoted 19 lines · Michal Simek
Quoted 17 lines · Simon Glass

Hi Michal,

Quoted 10 lines · Michal Simek

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.

---

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

Do you support the debug UART feature on your boards?

Quoted 8 lines
Quoted 4 lines
Quoted 3 lines

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.

Quoted 6 lines
Quoted 2 lines

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

#9 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

In reply to Michal Simek
Quoted 29 lines · Michal Simek
Quoted 28 lines · Adam Ford
Quoted 26 lines · Simon Glass

Hi Michal,

Quoted 22 lines · Michal Simek
Quoted 10 lines · Simon Glass

Hi Michal,

Quoted 7 lines · Michal Simek

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.

---

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

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.

Quoted 8 lines
Quoted 3 lines

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

Quoted 2 lines

Thanks,
Michal

#10 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 34 lines · Derald D. Woods
Quoted 33 lines · Michal Simek
Quoted 31 lines · Adam Ford
Quoted 26 lines · Simon Glass

Hi Michal,

Quoted 22 lines · Michal Simek
Quoted 10 lines · Simon Glass

Hi Michal,

Quoted 7 lines · Michal Simek

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.

---

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

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) ?

Quoted 7 lines
Quoted 4 lines

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

#11 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 40 lines · Michal Simek
Quoted 39 lines · Derald D. Woods
Quoted 37 lines · Michal Simek
Quoted 23 lines · Adam Ford
Quoted 22 lines · Simon Glass

Hi Michal,

Quoted 19 lines · Michal Simek
Quoted 17 lines · Simon Glass

Hi Michal,

Quoted 10 lines · Michal Simek

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.

---

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

Do you support the debug UART feature on your boards?

Quoted 8 lines
Quoted 4 lines
Quoted 3 lines

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.

Quoted 6 lines
Quoted 2 lines

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

Quoted 7 lines

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

#12 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 35 lines · Derald D. Woods
Quoted 34 lines · Michal Simek
Quoted 33 lines · Derald D. Woods
Quoted 32 lines · Michal Simek
Quoted 20 lines · Adam Ford
Quoted 19 lines · Simon Glass

Hi Michal,

Quoted 16 lines · Michal Simek
Quoted 15 lines · Simon Glass

Hi Michal,

Quoted 10 lines · Michal Simek

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.

---

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

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.

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

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):

include/ns16550.h +1 -1
index 5eeacd6..1311f4c 100644
@@ -54,9 +54,9 @@
   */
  struct ns16550_platdata {
         unsigned long base;
-       int reg_offset;
         int reg_shift;
         int clock;
+       int reg_offset;
  };
 
  struct udevice;
#13 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 66 lines · Alexander Graf
Quoted 42 lines · Derald D. Woods
Quoted 41 lines · Michal Simek
Quoted 40 lines · Derald D. Woods
Quoted 39 lines · Michal Simek
Quoted 28 lines · Adam Ford
Quoted 26 lines · Simon Glass

Hi Michal,

Quoted 22 lines · Michal Simek
Quoted 11 lines · Simon Glass

Hi Michal,

Quoted 7 lines · Michal Simek

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.

---

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

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.

Quoted 5 lines

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.

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

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):

include/ns16550.h +0 -0
index 5eeacd6..1311f4c 100644

include/ns16550.h line 62

Quoted 10 lines
include/ns16550.h +1 -1
@@ -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

#14 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 102 lines · Derald D. Woods
Quoted 66 lines · Alexander Graf
Quoted 42 lines · Derald D. Woods
Quoted 41 lines · Michal Simek
Quoted 40 lines · Derald D. Woods
Quoted 39 lines · Michal Simek
Quoted 28 lines · Adam Ford
Quoted 26 lines · Simon Glass

Hi Michal,

Quoted 22 lines · Michal Simek
Quoted 11 lines · Simon Glass

Hi Michal,

Quoted 7 lines · Michal Simek

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.

---

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

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.

Quoted 5 lines

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.

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

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):

include/ns16550.h +0 -0
index 5eeacd6..1311f4c 100644

include/ns16550.h line 62

Quoted 10 lines
include/ns16550.h +1 -1
@@ -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 = {
Quoted 5 lines

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

- Derald

The structure initializers need rework for the additional member.

- Derald

#15 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

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

Quoted 134 lines · Derald D. Woods
Quoted 119 lines · Derald D. Woods
Quoted 82 lines · Alexander Graf
Quoted 58 lines · Derald D. Woods
Quoted 56 lines · Michal Simek
Quoted 53 lines · Derald D. Woods
Quoted 44 lines · Michal Simek
Quoted 36 lines · Adam Ford
Quoted 32 lines · Simon Glass

Hi Michal,

Quoted 27 lines · Michal Simek
Quoted 13 lines · Simon Glass

Hi Michal,

Quoted 8 lines · Michal Simek

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.

---

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

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.

Quoted 5 lines

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) ?

Quoted 5 lines

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.

Quoted 6 lines
Quoted 3 lines

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):

include/ns16550.h +0 -0
index 5eeacd6..1311f4c 100644

include/ns16550.h line 62

Quoted 10 lines
include/ns16550.h +1 -1
@@ -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 =
{
Quoted 5 lines

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

#16 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 115 lines · Derald D. Woods
Quoted 115 lines · Derald D. Woods
Quoted 101 lines · Alexander Graf
Quoted 66 lines · Derald D. Woods
Quoted 42 lines · Michal Simek
Quoted 41 lines · Derald D. Woods
Quoted 40 lines · Michal Simek
Quoted 39 lines · Adam Ford
Quoted 28 lines
Quoted 26 lines · Simon Glass

Hi Michal,

Quoted 22 lines · Michal Simek
Quoted 11 lines · Simon Glass

Hi Michal,

Quoted 7 lines · Michal Simek

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 <[email protected]>
---

Quoted 6 lines
Quoted 3 lines

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

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.

Quoted 5 lines

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.

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

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):

include/ns16550.h +0 -0
index 5eeacd6..1311f4c 100644

include/ns16550.h line 62

Quoted 10 lines
include/ns16550.h +1 -1
@@ -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 =
{
Quoted 5 lines

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

Quoted 10 lines · Adam Ford

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

#17 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Hi,

Quoted 178 lines · Derald D. Woods
Quoted 138 lines · Derald D. Woods
Quoted 138 lines · Derald D. Woods
Quoted 123 lines · Alexander Graf
Quoted 84 lines · Derald D. Woods
Quoted 59 lines · Michal Simek
Quoted 57 lines · Derald D. Woods
Quoted 54 lines · Michal Simek
Quoted 44 lines · Adam Ford
Quoted 36 lines
Quoted 32 lines · Simon Glass

Hi Michal,

Quoted 27 lines · Michal Simek
Quoted 20 lines · Simon Glass

Hi Michal,

On 16 February 2016 at 08:17, Michal Simek
<[email protected]> 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 <[email protected]>
---

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

Reviewed-by: Simon Glass <[email protected]>

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.

Quoted 5 lines

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) ?

Quoted 5 lines

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.

Quoted 6 lines
Quoted 3 lines

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):

include/ns16550.h +0 -0
index 5eeacd6..1311f4c 100644

include/ns16550.h line 62

Quoted 10 lines
include/ns16550.h +1 -1
@@ -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
=
{
Quoted 5 lines

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

Quoted 11 lines · Adam Ford

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
};
Quoted 7 lines

...

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

#18 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 186 lines · Simon Glass

Hi,

Quoted 183 lines · Derald D. Woods
Quoted 138 lines · Derald D. Woods
Quoted 138 lines · Derald D. Woods
Quoted 123 lines · Alexander Graf
Quoted 84 lines · Derald D. Woods
Quoted 59 lines · Michal Simek
Quoted 57 lines · Derald D. Woods
Quoted 54 lines · Michal Simek
Quoted 44 lines · Adam Ford
Quoted 36 lines
Quoted 32 lines · Simon Glass

Hi Michal,

Quoted 27 lines · Michal Simek

On 19.2.2016 21:55, Simon Glass wrote:

Hi Michal,

On 16 February 2016 at 08:17, Michal Simek
<[email protected]> 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 <[email protected]>
---

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

Reviewed-by: Simon Glass <[email protected]>

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.

Quoted 5 lines

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) ?

Quoted 5 lines

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.

Quoted 6 lines
Quoted 3 lines

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):

include/ns16550.h +0 -0
index 5eeacd6..1311f4c 100644

include/ns16550.h line 62

Quoted 10 lines
include/ns16550.h +1 -1
@@ -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
=
{
Quoted 5 lines

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

Quoted 11 lines · Adam Ford

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'.

Quoted 6 lines
Quoted 2 lines

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

Signature · 14 lines
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>
#19 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

In reply to Alexander Graf

Hi,

Quoted 77 lines · Alexander Graf
Quoted 55 lines · Derald D. Woods
Quoted 53 lines · Michal Simek
Quoted 50 lines · Derald D. Woods
Quoted 38 lines · Michal Simek
Quoted 36 lines · Adam Ford
Quoted 32 lines · Simon Glass

Hi Michal,

Quoted 27 lines · Michal Simek
Quoted 13 lines · Simon Glass

Hi Michal,

Quoted 8 lines · Michal Simek

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.

---

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

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.

Quoted 8 lines
Quoted 3 lines

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.

Quoted 6 lines
Quoted 3 lines

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):

include/ns16550.h +0 -0
index 5eeacd6..1311f4c 100644

include/ns16550.h line 62

Quoted 10 lines
include/ns16550.h +1 -1
@@ -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

#20 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Quoted 88 lines · Simon Glass

Hi,

Quoted 85 lines · Alexander Graf
Quoted 55 lines · Derald D. Woods
Quoted 53 lines · Michal Simek
Quoted 50 lines · Derald D. Woods
Quoted 38 lines · Michal Simek
Quoted 36 lines · Adam Ford
Quoted 32 lines · Simon Glass

Hi Michal,

Quoted 27 lines · Michal Simek
Quoted 13 lines · Simon Glass

Hi Michal,

Quoted 8 lines · Michal Simek

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.

---

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

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.

Quoted 8 lines
Quoted 3 lines

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.

Quoted 6 lines
Quoted 3 lines

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):

include/ns16550.h +1 -1
index 5eeacd6..1311f4c 100644
@@ -54,9 +54,9 @@
  */
 struct ns16550_platdata {
        unsigned long base;
-       int reg_offset;
        int reg_shift;
        int clock;
+       int reg_offset;
 };
 
Quoted 6 lines

include/ns16550.h line 62

Quoted 2 lines
include/ns16550.h +0 -0
 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

Quoted 7 lines

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

#21 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

In reply to Simon Glass

Hi Simon,

Quoted 14 lines
Quoted 14 lines
include/ns16550.h +1 -1
index 5eeacd6..1311f4c 100644
@@ -54,9 +54,9 @@
  */
 struct ns16550_platdata {
        unsigned long base;
-       int reg_offset;
        int reg_shift;
        int clock;
+       int reg_offset;
 };
 
Quoted 7 lines

include/ns16550.h line 62

Quoted 2 lines
include/ns16550.h +0 -0
 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>

#22 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Hi Michal,

Quoted 23 lines · Michal Simek

Hi Simon,

Quoted 20 lines
Quoted 6 lines
include/ns16550.h +0 -0
index 5eeacd6..1311f4c 100644

include/ns16550.h line 62

Quoted 10 lines
include/ns16550.h +1 -1
@@ -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.

Quoted 4 lines
Quoted 1 line

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

#23 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

Hi Simon,

Quoted 26 lines · Simon Glass

Hi Michal,

Quoted 23 lines · Michal Simek

Hi Simon,

Quoted 20 lines
Quoted 6 lines
include/ns16550.h +0 -0
index 5eeacd6..1311f4c 100644

include/ns16550.h line 62

Quoted 10 lines
include/ns16550.h +1 -1
@@ -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.

Quoted 6 lines
Quoted 4 lines
Quoted 1 line

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

#24 lore raw

PATCH 1/1 dm: ns16550: Add support for reg-offset property

In reply to Michal Simek
Quoted 5 lines · Michal Simek

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.

Signature · 8 lines
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>