powerpc port for sbc8260-based board problem

11 messages, 3 authors, 2008-05-08 · open the first message on its own page

powerpc port for sbc8260-based board problem

From: Boris Shteinbock <hidden>
Date: 2008-05-07 08:38:35

Hi.
I am doing a port from ppc to powerpc ARCH on sbc8260 based board.
The problem is, that I can't get  SMC1 UART to work.
After SMC console  is initialized.  
cpm_uart_console_write() hangs here

        /* Wait for transmitter fifo to empty.
         * Ready indicates output is ready, and xmt is doing
         * that, not that it is ready for us to send.
         */
        while ((in_be16(&bdp->cbd_sc) & BD_SC_READY) != 0)
            ;

I am using dts tree modified  from ep8248 port since it is the only one that has smc description in it. :


     brg@119f0 {
       compatible = "fsl,mpc8260-brg",
                    "fsl,cpm2-brg",
                    "fsl,cpm-brg";
       reg = <119f0 10 115f0 10>;
       clock-frequency = <135000000>;
       
     };

     /* Monitor port/SMC1 */
     smc1: serial@11a80 {
       device_type = "serial";
       compatible = "fsl,mpc8260-smc-uart",
                    "fsl,cpm2-smc-uart";
       reg = <0x11a80 0x20 0x1100 0x40>;
       interrupts = <4 8>;
       interrupt-parent = <&PIC>;
       fsl,cpm-brg = <1>;
       fsl,cpm-command = <0x1d000000>;
       linux,my-label = "SMC1";
     };

I checked a BRG settings against working u-boot configuration and they are the same. Anyway a wrong BRG setting wouldn't hang this loop

13 more lines

Re: powerpc port for sbc8260-based board problem

From: Sergej Stepanov <hidden>
Date: 2008-05-07 18:03:02

Hallo.

I had the same problem.
The following patch can help.

diff -pruN paulus-git/drivers/serial/cpm_uart/cpm_uart_core.c linuxppc-2.6.=
24-ids8247/drivers/serial/cpm_uart/cpm_uart_core.c
--- paulus-git/drivers/serial/cpm_uart/cpm_uart_core.c	2008-03-28 11:03:32.=
000000000 +0100
+++ linuxppc-2.6.24-ids8247/drivers/serial/cpm_uart/cpm_uart_core.c	2008-05=
-07 19:35:21.000000000 +0200
@@ -1350,6 +1349,9 @@ static int __init cpm_uart_console_setup
 	uart_set_options(port, co, baud, parity, bits, flow);
 	cpm_line_cr_cmd(pinfo, CPM_CR_RESTART_TX);
=20
+#ifndef CONFIG_PPC_EARLY_DEBUG_CPM
+	cpm_set_brg(pinfo->brg - 1, baud);
+#endif
 	return 0;
 }
=20
Regards
Sergej.

Am Mittwoch, den 07.05.2008, 01:31 -0700 schrieb Boris Shteinbock:
Hi.
I am doing a port from ppc to powerpc ARCH on sbc8260 based board.
The problem is, that I can't get  SMC1 UART to work.
After SMC console  is initialized. =20
cpm_uart_console_write() hangs here
=20
        /* Wait for transmitter fifo to empty.
         * Ready indicates output is ready, and xmt is doing
         * that, not that it is ready for us to send.
         */
        while ((in_be16(&bdp->cbd_sc) & BD_SC_READY) !=3D 0)
            ;
=20
I am using dts tree modified  from ep8248 port since it is the only one t=
hat has smc description in it. :
=20
=20
     brg@119f0 {
       compatible =3D "fsl,mpc8260-brg",
                    "fsl,cpm2-brg",
                    "fsl,cpm-brg";
       reg =3D <119f0 10 115f0 10>;
       clock-frequency =3D <135000000>;
      =20
     };
=20
     /* Monitor port/SMC1 */
     smc1: serial@11a80 {
       device_type =3D "serial";
       compatible =3D "fsl,mpc8260-smc-uart",
                    "fsl,cpm2-smc-uart";
       reg =3D <0x11a80 0x20 0x1100 0x40>;
       interrupts =3D <4 8>;
       interrupt-parent =3D <&PIC>;
       fsl,cpm-brg =3D <1>;
       fsl,cpm-command =3D <0x1d000000>;
       linux,my-label =3D "SMC1";
     };
=20
I checked a BRG settings against working u-boot configuration and they ar=
e the same. Anyway a wrong BRG setting wouldn't hang this loop
=20
So I have a few questions.
If someone has done sbc8260 dts tree and port to "powerpc" already, I'd b=
e very  grateful if he can share it with me.
I couldn't find anything on the internet.
=20
Can someone, also, explain, how "fsl, cpm-command" field works,  booting-=
without-of document doesn't provide much information.
I feel, that just copying this value from ep8248.dts isn't right somehow.
=20
Thank you
=20
=20
      ___________________________________________________________________=
_________________
Be a better friend, newshound, and=20
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_y=
lt=3DAhu06i62sR8HDtDypao8Wcj9tAcJ
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev
--=20
Dipl.-Ing. Sergej Stepanov=20
Software-Entwicklung

IDS GmbH=20
E-PA  (Entwicklung - Prozess Automatisierung)
Nobelstr. 18,=20
D-76275 Ettlingen=20
T. (0) 72 43/2 18-615=20
F. (0) 72 43/2 18-100=20
E. Sergej.Stepanov@ids.de

<http://www.ids.de>
Gesch=C3=A4ftsf=C3=BChrer: Norbert Wagner, Friedrich Abri=C3=9F=20
Sitz der Gesellschaft: Ettlingen=20
Amtsgericht Mannheim HRB 362503=20

Re: powerpc port for sbc8260-based board problem

From: Scott Wood <hidden>
Date: 2008-05-07 18:21:20

On Wed, May 07, 2008 at 01:31:52AM -0700, Boris Shteinbock wrote:
     /* Monitor port/SMC1 */
     smc1: serial@11a80 {
       device_type = "serial";
       compatible = "fsl,mpc8260-smc-uart",
                    "fsl,cpm2-smc-uart";
       reg = <0x11a80 0x20 0x1100 0x40>;
The second reg resource depends on where your firmware set up the SMC pram
regs.  With U-boot, it's usually zero.

Note that as of 2.6.26-rc1, this is set up dynamically instead, and the
second resource should be 0x87fc 2.
Can someone, also, explain, how "fsl, cpm-command" field works,
It's the device-specific portion of the value that gets written to the CPM
command register (page, sub-block, and mcc channel).
booting-without-of document doesn't provide much information. I feel, that
just copying this value from ep8248.dts isn't right somehow.
It should be the same.

-Scott

Re: powerpc port for sbc8260-based board problem

From: Sergej Stepanov <hidden>
Date: 2008-05-07 18:40:54

Hello Scott

Am Mittwoch, den 07.05.2008, 13:22 -0500 schrieb Scott Wood:
On Wed, May 07, 2008 at 01:31:52AM -0700, Boris Shteinbock wrote:
quoted
     /* Monitor port/SMC1 */
     smc1: serial@11a80 {
       device_type =3D "serial";
       compatible =3D "fsl,mpc8260-smc-uart",
                    "fsl,cpm2-smc-uart";
       reg =3D <0x11a80 0x20 0x1100 0x40>;
=20
The second reg resource depends on where your firmware set up the SMC pra=
m
regs.  With U-boot, it's usually zero.
=20
Note that as of 2.6.26-rc1, this is set up dynamically instead, and the
second resource should be 0x87fc 2.
=20
You are right with 0x87fc. It is one more point.
Also if your brg clock-frequency-property was correctly fixed from
u-boot.

My story is follow: we have mpc8247 based card.
The problem with smc happens due to the cpm reset.
Of course, if you have not CONFIG_PPC_EARLY_DEBUG_CPM with
CONFIG_PPC_CPM_NEW_BINDING.
May be it is some kind of mistake, but i could fix the problem with the
patch i told above.
Could give me some your note, please? Thank you.

Regards
Sergej.


--=20
Dipl.-Ing. Sergej Stepanov=20
Software-Entwicklung

IDS GmbH=20
E-PA  (Entwicklung - Prozess Automatisierung)
Nobelstr. 18,=20
D-76275 Ettlingen=20
T. (0) 72 43/2 18-615=20
F. (0) 72 43/2 18-100=20
E. Sergej.Stepanov@ids.de

<http://www.ids.de>
Gesch=C3=A4ftsf=C3=BChrer: Norbert Wagner, Friedrich Abri=C3=9F=20
Sitz der Gesellschaft: Ettlingen=20
Amtsgericht Mannheim HRB 362503=20

Re: powerpc port for sbc8260-based board problem

From: Scott Wood <hidden>
Date: 2008-05-07 18:56:53

Sergej Stepanov wrote:
My story is follow: we have mpc8247 based card.
The problem with smc happens due to the cpm reset.
Of course, if you have not CONFIG_PPC_EARLY_DEBUG_CPM with
CONFIG_PPC_CPM_NEW_BINDING.
May be it is some kind of mistake, but i could fix the problem with the
patch i told above.
Could give me some your note, please? Thank you.
I'm not sure how it would make a difference -- the BRG should have already been set through the set_termios callback, which is called from uart_set_options.

-Scott

Re: powerpc port for sbc8260-based board problem

From: Sergej Stepanov <hidden>
Date: 2008-05-07 19:26:56

Am Mittwoch, den 07.05.2008, 13:57 -0500 schrieb Scott Wood:
Sergej Stepanov wrote:
quoted
My story is follow: we have mpc8247 based card.
The problem with smc happens due to the cpm reset.
Of course, if you have not CONFIG_PPC_EARLY_DEBUG_CPM with
CONFIG_PPC_CPM_NEW_BINDING.
May be it is some kind of mistake, but i could fix the problem with the
patch i told above.
Could give me some your note, please? Thank you.
I'm not sure how it would make a difference -- the BRG should have 
already been set through the set_termios callback, which is called from 
uart_set_options.

-Scott
Yes, i thought it also, but i traced it for us for the uart console.
The cpm_uart_set_termios(..) was not called.
At which place should it be called?
Is it uart_set_options(..)?

Sergej.

Re: powerpc port for sbc8260-based board problem

From: Scott Wood <hidden>
Date: 2008-05-07 19:33:16

Sergej Stepanov wrote:
Am Mittwoch, den 07.05.2008, 13:57 -0500 schrieb Scott Wood:
quoted
I'm not sure how it would make a difference -- the BRG should have already been set through the set_termios callback, which is called from uart_set_options.

-Scott
Yes, i thought it also, but i traced it for us for the uart console.
The cpm_uart_set_termios(..) was not called.
At which place should it be called?
Is it uart_set_options(..)?
Yes, uart_set_options() calls port->ops->set_termios().

-Scott

Re: powerpc port for sbc8260-based board problem

From: Sergej Stepanov <hidden>
Date: 2008-05-07 19:40:40

Am Mittwoch, den 07.05.2008, 14:34 -0500 schrieb Scott Wood:
Sergej Stepanov wrote:
quoted
Am Mittwoch, den 07.05.2008, 13:57 -0500 schrieb Scott Wood:
quoted
I'm not sure how it would make a difference -- the BRG should have 
already been set through the set_termios callback, which is called from 
uart_set_options.

-Scott
Yes, i thought it also, but i traced it for us for the uart console.
The cpm_uart_set_termios(..) was not called.
At which place should it be called?
Is it uart_set_options(..)?
Yes, uart_set_options() calls port->ops->set_termios().

-Scott
Hm... it looks like the default uart_set_termios from

static const struct tty_operations uart_ops in serial_core.c

and not cpm_uart_set_termios(..)?..

Is not it? but why?...

Ok, i have to look at my code again...
Regards.

Re: powerpc port for sbc8260-based board problem

From: Scott Wood <hidden>
Date: 2008-05-07 19:42:05

Sergej Stepanov wrote:
Hm... it looks like the default uart_set_termios from

static const struct tty_operations uart_ops in serial_core.c

and not cpm_uart_set_termios(..)?..

Is not it? but why?...
tty_operations != uart_ops

-Scott

Re: powerpc port for sbc8260-based board problem

From: Scott Wood <hidden>
Date: 2008-05-07 19:43:27

Scott Wood wrote:
Sergej Stepanov wrote:
quoted
Hm... it looks like the default uart_set_termios from

static const struct tty_operations uart_ops in serial_core.c

and not cpm_uart_set_termios(..)?..

Is not it? but why?...
tty_operations != uart_ops
Despite the unfortunate name of the instance of the former.

-Scott

Re: powerpc port for sbc8260-based board problem

From: Sergej Stepanov <hidden>
Date: 2008-05-08 06:22:06

Am Mittwoch, den 07.05.2008, 14:44 -0500 schrieb Scott Wood:
Scott Wood wrote:
quoted
Sergej Stepanov wrote:
quoted
Hm... it looks like the default uart_set_termios from

static const struct tty_operations uart_ops in serial_core.c

and not cpm_uart_set_termios(..)?..

Is not it? but why?...
tty_operations != uart_ops
Despite the unfortunate name of the instance of the former.

-Scott
Of course :)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help