Commit 658e8170 authored by Josh Boyer's avatar Josh Boyer Committed by Josh Boyer

[POWERPC] cuimage for Bamboo board

Add a cuboot wrapper for the Bamboo board.  Additionally, we enable MAC
address fixups for both cuboot and treeboot.

This also removes some obsoleted linker declarations that have been
moved into ops.h
Signed-off-by: default avatarJosh Boyer <jwboyer@linux.vnet.ibm.com>
Acked-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent 0ce49a39
...@@ -11,6 +11,6 @@ ...@@ -11,6 +11,6 @@
#define _PPC_BOOT_44X_H_ #define _PPC_BOOT_44X_H_
void ebony_init(void *mac0, void *mac1); void ebony_init(void *mac0, void *mac1);
void bamboo_init(void); void bamboo_init(void *mac0, void *mac1);
#endif /* _PPC_BOOT_44X_H_ */ #endif /* _PPC_BOOT_44X_H_ */
...@@ -49,7 +49,7 @@ src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \ ...@@ -49,7 +49,7 @@ src-wlib := string.S crt0.S stdio.c main.c flatdevtree.c flatdevtree_misc.c \
src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c \ src-plat := of.c cuboot-83xx.c cuboot-85xx.c holly.c \
cuboot-ebony.c treeboot-ebony.c prpmc2800.c \ cuboot-ebony.c treeboot-ebony.c prpmc2800.c \
ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \ ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \
cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c cuboot-bamboo.c
src-boot := $(src-wlib) $(src-plat) empty.c src-boot := $(src-wlib) $(src-plat) empty.c
src-boot := $(addprefix $(obj)/, $(src-boot)) src-boot := $(addprefix $(obj)/, $(src-boot))
...@@ -146,7 +146,7 @@ image-$(CONFIG_8260) += cuImage.pq2 ...@@ -146,7 +146,7 @@ image-$(CONFIG_8260) += cuImage.pq2
image-$(CONFIG_PPC_83xx) += cuImage.83xx image-$(CONFIG_PPC_83xx) += cuImage.83xx
image-$(CONFIG_PPC_85xx) += cuImage.85xx image-$(CONFIG_PPC_85xx) += cuImage.85xx
image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony image-$(CONFIG_EBONY) += treeImage.ebony cuImage.ebony
image-$(CONFIG_BAMBOO) += treeImage.bamboo image-$(CONFIG_BAMBOO) += treeImage.bamboo cuImage.bamboo
image-$(CONFIG_SEQUOIA) += cuImage.sequoia image-$(CONFIG_SEQUOIA) += cuImage.sequoia
image-$(CONFIG_WALNUT) += treeImage.walnut image-$(CONFIG_WALNUT) += treeImage.walnut
endif endif
......
...@@ -24,8 +24,7 @@ ...@@ -24,8 +24,7 @@
#include "4xx.h" #include "4xx.h"
#include "44x.h" #include "44x.h"
extern char _dtb_start[]; static u8 *bamboo_mac0, *bamboo_mac1;
extern char _dtb_end[];
static void bamboo_fixups(void) static void bamboo_fixups(void)
{ {
...@@ -34,12 +33,15 @@ static void bamboo_fixups(void) ...@@ -34,12 +33,15 @@ static void bamboo_fixups(void)
ibm440ep_fixup_clocks(sysclk, 11059200); ibm440ep_fixup_clocks(sysclk, 11059200);
ibm4xx_fixup_memsize(); ibm4xx_fixup_memsize();
ibm4xx_quiesce_eth((u32 *)0xef600e00, (u32 *)0xef600f00); 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.fixups = bamboo_fixups;
platform_ops.exit = ibm44x_dbcr_reset; platform_ops.exit = ibm44x_dbcr_reset;
bamboo_mac0 = mac0;
bamboo_mac1 = mac1;
ft_init(_dtb_start, 0, 32); ft_init(_dtb_start, 0, 32);
serial_console_init(); serial_console_init();
} }
/*
* Old U-boot compatibility for Bamboo
*
* Author: Josh Boyer <jwboyer@linux.vnet.ibm.com>
*
* Copyright 2007 IBM Corporation
*
* Based on cuboot-ebony.c
*
* 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 "stdio.h"
#include "44x.h"
#include "cuboot.h"
#define TARGET_44x
#include "ppcboot.h"
static bd_t bd;
void platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
unsigned long r6, unsigned long r7)
{
CUBOOT_INIT();
bamboo_init(&bd.bi_enetaddr, &bd.bi_enet1addr);
}
...@@ -12,16 +12,32 @@ ...@@ -12,16 +12,32 @@
#include "ops.h" #include "ops.h"
#include "stdio.h" #include "stdio.h"
#include "44x.h" #include "44x.h"
#include "stdlib.h"
extern char _end[];
BSS_STACK(4096); 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) void platform_init(void)
{ {
unsigned long end_of_ram = 0x8000000; unsigned long end_of_ram = 0x8000000;
unsigned long avail_ram = end_of_ram - (unsigned long)_end; unsigned long avail_ram = end_of_ram - (unsigned long)_end;
simple_alloc_init(_end, avail_ram, 32, 64); simple_alloc_init(_end, avail_ram, 32, 64);
bamboo_init(); read_pibs_mac();
bamboo_init((u8 *)&pibs_mac0, (u8 *)&pibs_mac1);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment