CPM UART on MPC8270
hellohello
hellohello008 at 163.com
Thu Jun 10 12:04:28 EST 2010
Although I haven't used scc port as uart, I think your smc1 part in your dts file maybe is wrong.
serial at 11a82 { ...
reg = <0x11a80 0x20 0x87fc 2>;
should be:
reg = <0x11a80 0x20 XXX 40>;
XXX is the value which is set at 0x87fc in your bootloader.
I just got this mistake a few days ago.
----- Original Message -----
From: "Martyn Welch" <martyn.welch at ge.com>
To: "linuxppc-dev list" <linuxppc-dev at ozlabs.org>
Sent: Wednesday, June 09, 2010 10:37 PM
Subject: CPM UART on MPC8270
> Hi All,
>
> I'm attempting to get an SCC port on an MPC8270 working with Linux. I'm
> not overly familiar with the CPM and am having a bit of trouble.
>
> Linux is booting natively on the 8270. I have access to the 8270 via a
> set of PCI windows from a second core (includes one setup over the main
> memory and one over the IMMR) and SMC1 is up and working with a console.
>
> The SCCs seem to be detected correctly at boot:
>
> f011a80.serial: ttyCPM0 at MMIO 0xc3014a80 (irq = 16) is a CPM UART
> f011a00.serial: ttyCPM1 at MMIO 0xc3018a00 (irq = 40) is a CPM UART
> f011a20.serial: ttyCPM2 at MMIO 0xc3020a20 (irq = 41) is a CPM UART
> f011a40.serial: ttyCPM3 at MMIO 0xc3028a40 (irq = 42) is a CPM UART
>
> With the DTS reading:
>
> smc1: serial at 11a80 {
> device_type = "serial";
> compatible = "fsl,mpc8270-smc-uart",
> "fsl,cpm2-smc-uart";
> reg = <0x11a80 0x20 0x87fc 2>;
> interrupts = <4 8>;
> interrupt-parent = <&PIC>;
> fsl,cpm-brg = <7>;
> fsl,cpm-command = <0x1d000000>;
> };
>
> scc1: serial at 11a00 {
> device_type = "serial";
> compatible = "fsl,mpc8270-scc-uart",
> "fsl,cpm2-scc-uart";
> reg = <0x11a00 0x20 0x8000 0x100>;
> interrupts = <40 8>;
> interrupt-parent = <&PIC>;
> fsl,cpm-brg = <3>;
> fsl,cpm-command = <0x800000>;
> };
>
> scc2: serial at 11a20 {
> device_type = "serial";
> compatible = "fsl,mpc8270-scc-uart",
> "fsl,cpm2-scc-uart";
> reg = <0x11a20 0x20 0x8100 0x100>;
> interrupts = <41 8>;
> interrupt-parent = <&PIC>;
> fsl,cpm-brg = <6>;
> fsl,cpm-command = <0x4a00000>;
> };
>
> scc3: serial at 11a40 {
> device_type = "serial";
> compatible = "fsl,mpc8270-scc-uart",
> "fsl,cpm2-scc-uart";
> reg = <0x11a40 0x20 0x8200 0x100>;
> interrupts = <42 8>;
> interrupt-parent = <&PIC>;
> fsl,cpm-brg = <1>;
> fsl,cpm-command = <0x8c00000>;
> };
>
> I believe that I have the pins setup correctly and the BRGs connected
> correctly in the setup_arch function.
>
> At the moment I have SCC3 wired out. If I attempt to echo data out of
> the SCC (echo "Hello" > /dev/ttyCPM3) I get the prompt sits waiting.
> Rebooting and turning on the debug yields the following output on the
> console (but nothing out of the SCC port):
>
> CPM uart[3]:startup
> Interrupt attached
> CPM uart[3]:set_termios
> CPM uart[3]:start tx
> CPM uart[3]:stop tx
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:stop rx
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:shutdown
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> CPM uart[3]:tx_empty: 0
> ...
>
>
> It seemed to be waiting for ready bit of the Transmit Buffer Descriptor
> to be cleared (which it never seems to be), prodding this bit through
> the pci window did cause the process to continue, no data out but I did
> get back to the prompt on the console.
>
> I'm sure I'm just missing something really basic - can anyone enlighten me?
>
> Martyn
>
> --
> Martyn Welch (Principal Software Engineer) | Registered in England and
> GE Intelligent Platforms | Wales (3828642) at 100
> T +44(0)127322748 | Barbirolli Square, Manchester,
> E martyn.welch at ge.com | M2 3AB VAT:GB 927559189
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
More information about the Linuxppc-dev
mailing list