Enable Serial Management Controller (SMC) in MPC8265

Scott Wood scottwood at freescale.com
Sat Apr 25 02:02:47 EST 2009

On Thu, Apr 23, 2009 at 07:50:25PM -0400, Andres F Marquez wrote:
>      I am working with a MPC8265 processor for which I am compiling a
> Kernel using LTIB.

Please contact Freescale support for issues with BSPs.  Around here
you'll be told to upgrade to the latest upstream kernel. :-)

>       I enabled SCC1 (for the console) and SMC2 through the Kernel
> (2.6.25) configuration tool using LTIB. I am able to run my system and
> execute minicom to try to configure the needed serial port. I have not
> been able to find the tty port that refers to either one of the two SMC
> ports.

All CPM serial ports (whether SCC or SMC) will be /dev/ttyCPMn.

> I have tried all the tty's that I get when I do ls /dev/tty* but
> none of them seem to work. Below, I provide the list of tty's that I am
> getting. ttyCPM0 is being used for the console. ttyCPM1 is the only one
> that I am allowed to configure through minicom (for the rest it says
> device not found).

Not allowed?  Don't you have root access to your board?

>      After doing some research online, I added an entry in my
> mpc8272ads.dts file for the smc serial controller. Below, I provide the
> entries for the serial ports (one SCC1 and one SMC2):
>                         serial at 11a00 {
>                                 device_type = "serial";
>                                 compatible = "fsl,mpc8280-scc-uart",
>                                              "fsl,cpm2-scc-uart";
>                                 reg = <11a00 20 8000 100>;
>                                 interrupts = <28 8>;
>                                 interrupt-parent = <&PIC>;
>                                 fsl,cpm-brg = <2>;
>                                 fsl,cpm-command = <00800000>;
>                         };
>                         serial at 11a92 {
>                                 device_type = "serial";
>                                 compatible = "fsl,mpc8280-smc-uart",
>                                                 "fsl,cpm2-smc-uart";
>                                 reg = <11a92 20 88fc 2>;
>                                 interrupts = <5 8>;
>                                 interrupt-parent = <&PIC>;
>                                 fsl,cpm-brg = <2>;
>                                 fsl,cpm-command = <21200000>;
>                         };

Do you really have both ports on the same BRG?

Change 11a92 to 11a90 -- it's the address of the register block, not the
first register within the block.

You should also change 8280 to 8265, though nothing currently cares.

Finally, I think 2.6.25 is too old to support automatic allocation of SMC
parameter RAM.  Unless they've backported something in the BSP, you'll
have to manually allocate some space, remove that chunk from the muram
node, program SMC2_BASE yourself, and put the address of the actual
parameter RAM in the device tree.  Or, upgrade to the latest upstream
kernel, or complain to Freescale sales and/or support that the BSP kernel
is too old for your desired use.

> For some reason in uboot, it seems like the configurations for SCC1 and
> SMC2 are exclusive. They depend on where the console is configured
> (SCC1 or SMC2). Either one can be configured, but not both at the same
> time (at least based on uboot configuration definitions. They are
> within if's and elif's...). As I said before, both of them are able to
> run the console.

I don't see any obvious pin conflict between SCC1 and SMC2.  It's
probably just a u-boot limitation -- but make sure that the pins get set
up for SMC2 even if u-boot doesn't use it.


More information about the Linuxppc-dev mailing list