summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/boot/cuboot.h
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2007-06-13 06:53:00 +0200
committerPaul Mackerras <paulus@samba.org>2007-06-14 14:30:16 +0200
commit85aecac8d2893372c618bac373e2de9cf102dfbc (patch)
tree7684b8b8818bc5ee420f9e30cce164da28b29260 /arch/powerpc/boot/cuboot.h
parent[POWERPC] Derive ebc ranges property from EBC registers (diff)
downloadlinux-85aecac8d2893372c618bac373e2de9cf102dfbc.tar.xz
linux-85aecac8d2893372c618bac373e2de9cf102dfbc.zip
[POWERPC] Consolidate cuboot initialization code
The various cuboot platforms (i.e. pre-device tree aware u-boot for 83xx, 85xx and Ebony) share a certain amount of code for parsing the boot parameters. To a certain extent that's inevitable, since they platforms have different definitions of the bd_t structure. However, with some macro work and a helper function, this patch improves the situation a bit. In the process, this fixes a bug on Ebony, which was incorrectly handling the parameters passed form u-boot for the command line (the bug was copied from 83xx and 85xx which have subsequently been fixed). Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/boot/cuboot.h')
-rw-r--r--arch/powerpc/boot/cuboot.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/powerpc/boot/cuboot.h b/arch/powerpc/boot/cuboot.h
new file mode 100644
index 000000000000..cd2aa7f348f3
--- /dev/null
+++ b/arch/powerpc/boot/cuboot.h
@@ -0,0 +1,14 @@
+#ifndef _PPC_BOOT_CUBOOT_H_
+#define _PPC_BOOT_CUBOOT_H_
+
+void cuboot_init(unsigned long r4, unsigned long r5,
+ unsigned long r6, unsigned long r7,
+ unsigned long end_of_ram);
+
+#define CUBOOT_INIT() \
+ do { \
+ memcpy(&bd, (bd_t *)r3, sizeof(bd)); \
+ cuboot_init(r4, r5, r6, r7, bd.bi_memstart + bd.bi_memsize); \
+ } while (0)
+
+#endif /* _PPC_BOOT_CUBOOT_H_ */