[patch 1/4] cuimage for Bamboo board
David Gibson
dwg at au1.ibm.com
Sat Sep 15 12:19:52 EST 2007
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 <jwboyer at linux.vnet.ibm.com>
> Acked-by: David Gibson <david at gibson.dropbear.id.au>
Heh, well, I know I acked this already, but...
[snip]
> --- /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]
> --- 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.
>
> 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
More information about the Linuxppc-dev
mailing list