Re: [patch 1/4] cuimage for Bamboo board
From: David Gibson <hidden>
Date: 2007-09-15 02:29:38
On Fri, Sep 14, 2007 at 01:54:11PM -0500, Josh Boyer wrote:
Add a cuboot wrapper for the Bamboo board. This also removes some obsoleted linker declarations that have been moved into ops.h Signed-off-by: Josh Boyer <redacted> Acked-by: David Gibson <redacted>
Heh, well, I know I acked this already, but... [snip]
quoted hunk ↗ jump to hunk
--- /dev/null +++ linux-2.6/arch/powerpc/boot/cuboot-bamboo.c@@ -0,0 +1,30 @@ +/* + * Old U-boot compatibility for Ebony
Error in the comment here. [snip]
quoted hunk ↗ jump to hunk
--- linux-2.6.orig/arch/powerpc/boot/bamboo.c +++ linux-2.6/arch/powerpc/boot/bamboo.c@@ -24,8 +24,7 @@ #include "4xx.h" #include "44x.h" -extern char _dtb_start[]; -extern char _dtb_end[]; +static u8 *bamboo_mac0, *bamboo_mac1;
This additional handling of the MAC addresses should really also be mentioned in the commit comment.
quoted hunk ↗ jump to hunk
static void bamboo_fixups(void) {@@ -34,12 +33,15 @@ static void bamboo_fixups(void) ibm440ep_fixup_clocks(sysclk, 11059200); ibm4xx_fixup_memsize(); ibm4xx_quiesce_eth((u32 *)0xef600e00, (u32 *)0xef600f00); + dt_fixup_mac_addresses(bamboo_mac0, bamboo_mac1); } -void bamboo_init(void) +void bamboo_init(void *mac0, void *mac1) { platform_ops.fixups = bamboo_fixups; platform_ops.exit = ibm44x_dbcr_reset; + bamboo_mac0 = mac0; + bamboo_mac1 = mac1; ft_init(_dtb_start, 0, 32); serial_console_init(); } --- linux-2.6.orig/arch/powerpc/boot/treeboot-bamboo.c +++ linux-2.6/arch/powerpc/boot/treeboot-bamboo.c@@ -12,16 +12,32 @@ #include "ops.h" #include "stdio.h" #include "44x.h" - -extern char _end[]; +#include "stdlib.h" BSS_STACK(4096); +#define PIBS_MAC0 0xfffc0400 +#define PIBS_MAC1 0xfffc0500 +char pibs_mac0[6]; +char pibs_mac1[6]; + +static void read_pibs_mac(void) +{ + unsigned long long mac64; + + mac64 = strtoull((char *)PIBS_MAC0, 0, 16); + memcpy(&pibs_mac0, (char *)&mac64+2, 6); + + mac64 = strtoull((char *)PIBS_MAC1, 0, 16); + memcpy(&pibs_mac1, (char *)&mac64+2, 6); +} + void platform_init(void) { unsigned long end_of_ram = 0x8000000; unsigned long avail_ram = end_of_ram - (unsigned long)_end; simple_alloc_init(_end, avail_ram, 32, 64); - bamboo_init(); + read_pibs_mac(); + bamboo_init((u8 *)&pibs_mac0, (u8 *)&pibs_mac1); }
-- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson