Subject: Re: Compile Error using SMC1 on a MPC8272 for 2.6.19-rc4

From: Heiko Schocher <[email-masked]>
Date: Mon, 04 Dec 2006 13:09:10 +0100

Hello Vitaly,

Am Samstag, den 11.11.2006, 00:15 +0300 schrieb Vitaly Bordug:
> On Fri, 10 Nov 2006 12:53:14 +0100
> Heiko Schocher wrote:
> > I tried to compile the Linux Kernel 2.6.19-rc5 with a MPC8272 CPU and
> > a console on SMC1, and get the following Compile Error:
> > 
> >   CC      drivers/serial/cpm_uart/cpm_uart_cpm2.o
> > drivers/serial/cpm_uart/cpm_uart_cpm2.c: In function
> > 'cpm_uart_init_portdesc':
> > drivers/serial/cpm_uart/cpm_uart_cpm2.c:364: warning: assignment makes
> > integer from pointer without a cast
> > drivers/serial/cpm_uart/cpm_uart_cpm2.c:368: error: invalid type
> > argument of 'unary *'
> > make[3]: *** [drivers/serial/cpm_uart/cpm_uart_cpm2.o] Error 1
> > make[2]: *** [drivers/serial/cpm_uart] Error 2
> > make[1]: *** [drivers/serial] Error 2
> > make: *** [drivers] Error 2
> > 
> > The following Code solves the problem:
> > 
> > diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm2.c
> > b/drivers/serial/cpm_uart/cpm_uart_cpm2.c
> > index 0599030..bb0a6c1 100644
> > --- a/drivers/serial/cpm_uart/cpm_uart_cpm2.c
> > +++ b/drivers/serial/cpm_uart/cpm_uart_cpm2.c
> > @@ -349,7 +349,7 @@ void cpm_uart_freebuf(struct uart_cpm_po
> >  int cpm_uart_init_portdesc(void)
> >  {
> >  #if defined(CONFIG_SERIAL_CPM_SMC1) ||
> > defined(CONFIG_SERIAL_CPM_SMC2)
> > -	u32 addr;
> > +	u32 *addr;
> >  #endif
> >  	pr_debug("CPM uart[-]:init portdesc\n");
> >  
> Yes, but that is not the only issue. I am working on that.

Yes, i think so too, because I tried the 2.6.19 Kernel on a board with
MPC8272, SMC1-2 and SMCC1-4 used as serial port, SMC2 as Console, and
it dont work ... with a 2.6.14er Kernel it worked ...

I had to change the following Code:
----------------------------------------------------------------------------
diff --git a/drivers/serial/cpm_uart/cpm_uart_cpm2.c
b/drivers/serial/cpm_uart/cpm_uart_cpm2.c
index bb0a6c1..4ee1bfc 100644
@@ -349,7 +351,7 @@ void cpm_uart_freebuf(struct uart_cpm_po
 int cpm_uart_init_portdesc(void)
 {
 #if defined(CONFIG_SERIAL_CPM_SMC1) || defined(CONFIG_SERIAL_CPM_SMC2)
-	u32 *addr;
+	u16 *addr;
 #endif
 	pr_debug("CPM uart[-]:init portdesc\n");
 
----------------------------------------------------------------------------

With this change, Linux comes up, with SMC1-2 and SCC1-4 as serial port,
and a console on SMC2 :-)

If I use the Plattform Bus:
I have also to apply the patch from:
http://ozlabs.org/pipermail/linuxppc-embedded/2006-November/025101.html

to bring it up working.

thanks
Heiko