Patchwork powerpc/83xx: Make serial ports work on MPC8315E-RDB w/ FSL U-Boots

login
register
mail settings
Submitter Anton Vorontsov
Date Jan. 11, 2009, 3:30 p.m.
Message ID <20090111153013.GA31791@oksana.dev.rtsoft.ru>
Download mbox | patch
Permalink /patch/17816/
State Accepted, archived
Commit 6c9789de2a02755101f757789ffcb17312f3fa9b
Delegated to: Kumar Gala
Headers show

Comments

Anton Vorontsov - Jan. 11, 2009, 3:30 p.m.
FSL U-Boots use /soc8315@e0000000 node to search and fixup serial
nodes' clock-frequency properties. Though in upstream kernels we use
new naming convention -- for IMMR address space dts files specify
/immr@e0000000 nodes.

This makes FSL U-Boots fail to fixup the clock frequencies, and that
leads to serial ports misbehaviour. We can workaround the issue by
filling the clock frequency values manually.

p.s. For the same reason FSL U-Boots fail to fixup MAC addresses for
ethernet nodes, so users should either change the .dts file locally
or set MAC address via `ifconfig hw ether' command.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
---

Leon,

With this patch 2.6.28 kernel boots and works fine with the U-Boot
I took from this image (downloadable from freescale.com):

$ md5sum MPC8315ERDB_20080321-ltib.iso
009730826366d593347b88fa4fdb9be0  MPC8315ERDB_20080321-ltib.iso

That is, U-Boot 1.3.0-rc2 (Mar 21 2008 - 13:36:09) MPC83XX

 arch/powerpc/boot/dts/mpc8315erdb.dts |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Kumar Gala - Jan. 12, 2009, 3:07 p.m.
On Jan 12, 2009, at 1:55 AM, Li Yang wrote:

>> -----Original Message-----
>> From: linuxppc-dev-bounces+leoli=freescale.com@ozlabs.org
>> [mailto:linuxppc-dev-bounces+leoli=freescale.com@ozlabs.org]
>> On Behalf Of Anton Vorontsov
>> Sent: Sunday, January 11, 2009 11:30 PM
>> To: Kumar Gala
>> Cc: linuxppc-dev@ozlabs.org
>> Subject: [PATCH] powerpc/83xx: Make serial ports work on
>> MPC8315E-RDB w/FSL U-Boots
>>
>> FSL U-Boots use /soc8315@e0000000 node to search and fixup
>> serial nodes' clock-frequency properties. Though in upstream
>> kernels we use new naming convention -- for IMMR address
>> space dts files specify /immr@e0000000 nodes.
>>
>> This makes FSL U-Boots fail to fixup the clock frequencies,
>> and that leads to serial ports misbehaviour. We can
>> workaround the issue by filling the clock frequency values manually.
>
> Freescale BSP is for customer who needs the out-of-box experience.   
> It's
> better tested, but doesn't update very frequently.  I would suggest  
> the
> customer to use the upstream u-boot, if they decide to use latest
> upstream kernel.
>
> - Leo

Agreed.  However I don't think there is any harm w/the patch as  
upstream u-boot will update the property.

- k
Kumar Gala - Jan. 12, 2009, 3:10 p.m.
On Jan 11, 2009, at 9:30 AM, Anton Vorontsov wrote:

> FSL U-Boots use /soc8315@e0000000 node to search and fixup serial
> nodes' clock-frequency properties. Though in upstream kernels we use
> new naming convention -- for IMMR address space dts files specify
> /immr@e0000000 nodes.
>
> This makes FSL U-Boots fail to fixup the clock frequencies, and that
> leads to serial ports misbehaviour. We can workaround the issue by
> filling the clock frequency values manually.
>
> p.s. For the same reason FSL U-Boots fail to fixup MAC addresses for
> ethernet nodes, so users should either change the .dts file locally
> or set MAC address via `ifconfig hw ether' command.
>
> Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
> ---
>
> Leon,
>
> With this patch 2.6.28 kernel boots and works fine with the U-Boot
> I took from this image (downloadable from freescale.com):
>
> $ md5sum MPC8315ERDB_20080321-ltib.iso
> 009730826366d593347b88fa4fdb9be0  MPC8315ERDB_20080321-ltib.iso
>
> That is, U-Boot 1.3.0-rc2 (Mar 21 2008 - 13:36:09) MPC83XX
>
> arch/powerpc/boot/dts/mpc8315erdb.dts |    4 ++--
> 1 files changed, 2 insertions(+), 2 deletions(-)

applied

- k
Leon Woestenberg - Jan. 12, 2009, 5:20 p.m.
Hello,

On Mon, Jan 12, 2009 at 4:07 PM, Kumar Gala <galak@kernel.crashing.org> wrote:
> On Jan 12, 2009, at 1:55 AM, Li Yang wrote:
>>> -----Original Message-----
>> Freescale BSP is for customer who needs the out-of-box experience.  It's
>> better tested, but doesn't update very frequently.  I would suggest the
>> customer to use the upstream u-boot, if they decide to use latest
>> upstream kernel.
>>
>
The upstream u-boot did however not support PCI Express, which the
latest Freescale kernel did.

So it was a chicken-egg problem experience for people wanting to test
both the latest Freescale kernel as well as Antov's work to bring the
PCI Express support upstream.

Thanks Antov et al,
Kumar Gala - Jan. 12, 2009, 6:59 p.m.
On Jan 12, 2009, at 11:20 AM, Leon Woestenberg wrote:

> Hello,
>
> On Mon, Jan 12, 2009 at 4:07 PM, Kumar Gala  
> <galak@kernel.crashing.org> wrote:
>> On Jan 12, 2009, at 1:55 AM, Li Yang wrote:
>>>> -----Original Message-----
>>> Freescale BSP is for customer who needs the out-of-box  
>>> experience.  It's
>>> better tested, but doesn't update very frequently.  I would  
>>> suggest the
>>> customer to use the upstream u-boot, if they decide to use latest
>>> upstream kernel.
>>>
>>
> The upstream u-boot did however not support PCI Express, which the
> latest Freescale kernel did.
>
> So it was a chicken-egg problem experience for people wanting to test
> both the latest Freescale kernel as well as Antov's work to bring the
> PCI Express support upstream.
>
> Thanks Antov et al,

Please gripe at your Freescale contacts about getting code into  
mainline/upstream kernel.

(The more they hear it from customers the more importance it will  
get.  The team I work on at Freescale can focus on only so much and  
the other groups need to hear that customers want code in mainline.)

And thanks Anton for cleaning all this up and getting it in a state  
that is acceptable :)

- k

Patch

diff --git a/arch/powerpc/boot/dts/mpc8315erdb.dts b/arch/powerpc/boot/dts/mpc8315erdb.dts
index 9a4fa2a..88d691c 100644
--- a/arch/powerpc/boot/dts/mpc8315erdb.dts
+++ b/arch/powerpc/boot/dts/mpc8315erdb.dts
@@ -257,7 +257,7 @@ 
 			device_type = "serial";
 			compatible = "ns16550";
 			reg = <0x4500 0x100>;
-			clock-frequency = <0>;
+			clock-frequency = <133333333>;
 			interrupts = <9 0x8>;
 			interrupt-parent = <&ipic>;
 		};
@@ -267,7 +267,7 @@ 
 			device_type = "serial";
 			compatible = "ns16550";
 			reg = <0x4600 0x100>;
-			clock-frequency = <0>;
+			clock-frequency = <133333333>;
 			interrupts = <10 0x8>;
 			interrupt-parent = <&ipic>;
 		};