Subject: Re: [patch 1/4] cuimage for Bamboo board

From: David Gibson <[email-masked]>
Date: Sat, 15 Sep 2007 12:19:52 +1000

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 <[email-masked]>
> Acked-by: David Gibson <[email-masked]>

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