diff mbox

[2/2] powerpc/405ex: support cuImage via included dtb

Message ID 1250562484-16415-3-git-send-email-tiejun.chen@windriver.com (mailing list archive)
State Changes Requested
Delegated to: Josh Boyer
Headers show

Commit Message

Tiejun Chen Aug. 18, 2009, 2:28 a.m. UTC
To support cuImage, we need to initialize the required sections and 
ensure that it is built.

Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com>
---
 arch/powerpc/boot/Makefile         |    3 +-
 arch/powerpc/boot/cuboot-kilauea.c |   50 ++++++++++++++++++++++++++++++++++++
 2 files changed, 52 insertions(+), 1 deletions(-)
 create mode 100644 arch/powerpc/boot/cuboot-kilauea.c

Comments

Josh Boyer Aug. 20, 2009, 1:31 p.m. UTC | #1
On Tue, Aug 18, 2009 at 10:28:04AM +0800, Tiejun Chen wrote:
>To support cuImage, we need to initialize the required sections and 
>ensure that it is built.
>
>-		cuboot-acadia.c cuboot-amigaone.c
>+		cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c
> src-boot := $(src-wlib) $(src-plat) empty.c
>
> src-boot := $(addprefix $(obj)/, $(src-boot))
>@@ -192,6 +192,7 @@ image-$(CONFIG_DEFAULT_UIMAGE)		+= uImage
> image-$(CONFIG_EP405)			+= dtbImage.ep405
> image-$(CONFIG_WALNUT)			+= treeImage.walnut
> image-$(CONFIG_ACADIA)			+= cuImage.acadia
>+image-$(CONFIG_KILAUEA)		+= cuImage.kilauea

I'm not thrilled with this part as cuImage is really the secondary
solution if the U-Boot that comes with a board if FDT aware.  If you
have a different board that needs this, perhaps you could add the
target when that board support gets upstream?

>+static void kilauea_fixups(void)
>+{
>+	/*TODO: Please change this as the real. Note that should be 33MHZ~100MHZ.*/

What does that mean?

josh
Tiejun Chen Aug. 21, 2009, 5:41 a.m. UTC | #2
Josh Boyer wrote:
> On Tue, Aug 18, 2009 at 10:28:04AM +0800, Tiejun Chen wrote:
>> To support cuImage, we need to initialize the required sections and 
>> ensure that it is built.
>>
>> -		cuboot-acadia.c cuboot-amigaone.c
>> +		cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c
>> src-boot := $(src-wlib) $(src-plat) empty.c
>>
>> src-boot := $(addprefix $(obj)/, $(src-boot))
>> @@ -192,6 +192,7 @@ image-$(CONFIG_DEFAULT_UIMAGE)		+= uImage
>> image-$(CONFIG_EP405)			+= dtbImage.ep405
>> image-$(CONFIG_WALNUT)			+= treeImage.walnut
>> image-$(CONFIG_ACADIA)			+= cuImage.acadia
>> +image-$(CONFIG_KILAUEA)		+= cuImage.kilauea
> 
> I'm not thrilled with this part as cuImage is really the secondary
> solution if the U-Boot that comes with a board if FDT aware.  If you
> have a different board that needs this, perhaps you could add the
> target when that board support gets upstream?
> 

Agreed and I will remove this line as you expect. Right?

>> +static void kilauea_fixups(void)
>> +{
>> +	/*TODO: Please change this as the real. Note that should be 33MHZ~100MHZ.*/
> 
> What does that mean?
> 

It's difficult to check the sysclk value on all revision Kilauea board for me,
and we have to check this value only by the real target, not by reading one
register. So I hope it's safe to remind other guys here.

But I am sure that should be 33MHZ ~ 100MHZ as PPC405EX manual.

Best Regards
Tiejun

> josh
>
Stefan Roese Aug. 21, 2009, 6:35 a.m. UTC | #3
On Friday 21 August 2009 07:41:42 tiejun.chen wrote:
> >> +static void kilauea_fixups(void)
> >> +{
> >> +	/*TODO: Please change this as the real. Note that should be
> >> 33MHZ~100MHZ.*/
> >
> > What does that mean?
>
> It's difficult to check the sysclk value on all revision Kilauea board for
> me, and we have to check this value only by the real target, not by reading
> one register. So I hope it's safe to remind other guys here.

Kilauea uses this value (33.333MHz) on all board revisions, AFAIK. Your 
comment is a bit confusing. I suggest that you just remove it.

Cheers,
Stefan
Tiejun Chen Aug. 21, 2009, 6:39 a.m. UTC | #4
Stefan Roese wrote:
> On Friday 21 August 2009 07:41:42 tiejun.chen wrote:
>>>> +static void kilauea_fixups(void)
>>>> +{
>>>> +	/*TODO: Please change this as the real. Note that should be
>>>> 33MHZ~100MHZ.*/
>>> What does that mean?
>> It's difficult to check the sysclk value on all revision Kilauea board for
>> me, and we have to check this value only by the real target, not by reading
>> one register. So I hope it's safe to remind other guys here.
> 
> Kilauea uses this value (33.333MHz) on all board revisions, AFAIK. Your 
> comment is a bit confusing. I suggest that you just remove it.
> 

I appreciate your help.

Best Regards
Tiejun

> Cheers,
> Stefan
>
Josh Boyer Aug. 21, 2009, 11:49 a.m. UTC | #5
On Fri, Aug 21, 2009 at 01:41:42PM +0800, tiejun.chen wrote:
>Josh Boyer wrote:
>> On Tue, Aug 18, 2009 at 10:28:04AM +0800, Tiejun Chen wrote:
>>> To support cuImage, we need to initialize the required sections and 
>>> ensure that it is built.
>>>
>>> -		cuboot-acadia.c cuboot-amigaone.c
>>> +		cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c
>>> src-boot := $(src-wlib) $(src-plat) empty.c
>>>
>>> src-boot := $(addprefix $(obj)/, $(src-boot))
>>> @@ -192,6 +192,7 @@ image-$(CONFIG_DEFAULT_UIMAGE)		+= uImage
>>> image-$(CONFIG_EP405)			+= dtbImage.ep405
>>> image-$(CONFIG_WALNUT)			+= treeImage.walnut
>>> image-$(CONFIG_ACADIA)			+= cuImage.acadia
>>> +image-$(CONFIG_KILAUEA)		+= cuImage.kilauea
>> 
>> I'm not thrilled with this part as cuImage is really the secondary
>> solution if the U-Boot that comes with a board if FDT aware.  If you
>> have a different board that needs this, perhaps you could add the
>> target when that board support gets upstream?
>> 
>
>Agreed and I will remove this line as you expect. Right?

Yep, that sounds right.

josh
diff mbox

Patch

diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 9ae7b7e..44ce95b 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -75,7 +75,7 @@  src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c
 		cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \
 		cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \
 		virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \
-		cuboot-acadia.c cuboot-amigaone.c
+		cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c
 src-boot := $(src-wlib) $(src-plat) empty.c
 
 src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -192,6 +192,7 @@  image-$(CONFIG_DEFAULT_UIMAGE)		+= uImage
 image-$(CONFIG_EP405)			+= dtbImage.ep405
 image-$(CONFIG_WALNUT)			+= treeImage.walnut
 image-$(CONFIG_ACADIA)			+= cuImage.acadia
+image-$(CONFIG_KILAUEA)		+= cuImage.kilauea
 
 # Board ports in arch/powerpc/platform/44x/Kconfig
 image-$(CONFIG_EBONY)			+= treeImage.ebony cuImage.ebony
diff --git a/arch/powerpc/boot/cuboot-kilauea.c b/arch/powerpc/boot/cuboot-kilauea.c
new file mode 100644
index 0000000..7db1b39
--- /dev/null
+++ b/arch/powerpc/boot/cuboot-kilauea.c
@@ -0,0 +1,50 @@ 
+/*
+ * Old U-boot compatibility for PPC405EX. This image is already included 
+ * a dtb.    
+ *
+ * Author: Tiejun Chen <tiejun.chen@windriver.com>
+ *
+ * Copyright (C) 2009 Wind River Systems, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation.
+ */
+
+#include "ops.h"
+#include "io.h"
+#include "dcr.h"
+#include "stdio.h"
+#include "4xx.h"
+#include "44x.h"
+#include "cuboot.h"
+
+#define TARGET_4xx
+#define TARGET_44x
+#include "ppcboot.h"
+
+#define KILAUEA_SYS_EXT_SERIAL_CLOCK     11059200        /* ext. 11.059MHz clk */
+
+static bd_t bd;
+
+static void kilauea_fixups(void)
+{
+	/*TODO: Please change this as the real. Note that should be 33MHZ~100MHZ.*/
+	unsigned long sysclk = 33333333;
+
+	ibm405ex_fixup_clocks(sysclk, KILAUEA_SYS_EXT_SERIAL_CLOCK);
+	dt_fixup_memory(bd.bi_memstart, bd.bi_memsize);
+	ibm4xx_fixup_ebc_ranges("/plb/opb/ebc");
+	dt_fixup_mac_address_by_alias("ethernet0", bd.bi_enetaddr);
+	dt_fixup_mac_address_by_alias("ethernet1", bd.bi_enet1addr);
+}
+
+void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
+		unsigned long r6, unsigned long r7)
+{
+	CUBOOT_INIT();
+	platform_ops.fixups = kilauea_fixups;
+	platform_ops.exit = ibm40x_dbcr_reset;
+	fdt_init(_dtb_start);
+	serial_console_init();
+}