diff options
Diffstat (limited to 'arch/powerpc/boot/treeboot-bamboo.c')
-rw-r--r-- | arch/powerpc/boot/treeboot-bamboo.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/arch/powerpc/boot/treeboot-bamboo.c b/arch/powerpc/boot/treeboot-bamboo.c index 1f1fe5aaac12..9eee48fc7114 100644 --- a/arch/powerpc/boot/treeboot-bamboo.c +++ b/arch/powerpc/boot/treeboot-bamboo.c | |||
@@ -12,16 +12,32 @@ | |||
12 | #include "ops.h" | 12 | #include "ops.h" |
13 | #include "stdio.h" | 13 | #include "stdio.h" |
14 | #include "44x.h" | 14 | #include "44x.h" |
15 | 15 | #include "stdlib.h" | |
16 | extern char _end[]; | ||
17 | 16 | ||
18 | BSS_STACK(4096); | 17 | BSS_STACK(4096); |
19 | 18 | ||
19 | #define PIBS_MAC0 0xfffc0400 | ||
20 | #define PIBS_MAC1 0xfffc0500 | ||
21 | char pibs_mac0[6]; | ||
22 | char pibs_mac1[6]; | ||
23 | |||
24 | static void read_pibs_mac(void) | ||
25 | { | ||
26 | unsigned long long mac64; | ||
27 | |||
28 | mac64 = strtoull((char *)PIBS_MAC0, 0, 16); | ||
29 | memcpy(&pibs_mac0, (char *)&mac64+2, 6); | ||
30 | |||
31 | mac64 = strtoull((char *)PIBS_MAC1, 0, 16); | ||
32 | memcpy(&pibs_mac1, (char *)&mac64+2, 6); | ||
33 | } | ||
34 | |||
20 | void platform_init(void) | 35 | void platform_init(void) |
21 | { | 36 | { |
22 | unsigned long end_of_ram = 0x8000000; | 37 | unsigned long end_of_ram = 0x8000000; |
23 | unsigned long avail_ram = end_of_ram - (unsigned long)_end; | 38 | unsigned long avail_ram = end_of_ram - (unsigned long)_end; |
24 | 39 | ||
25 | simple_alloc_init(_end, avail_ram, 32, 64); | 40 | simple_alloc_init(_end, avail_ram, 32, 64); |
26 | bamboo_init(); | 41 | read_pibs_mac(); |
42 | bamboo_init((u8 *)&pibs_mac0, (u8 *)&pibs_mac1); | ||
27 | } | 43 | } |