summaryrefslogtreecommitdiff
path: root/kexec/arch/ppc/kexec-ppc.h
diff options
context:
space:
mode:
authorMaxim Uvarov <muvarov@gmail.com>2010-05-12 11:08:41 +0400
committerSimon Horman <horms@verge.net.au>2010-05-13 23:47:28 +0900
commit00f6fff403c6bbb3241def8451d17f5f2544b5a9 (patch)
treeda4ac430f191fb9e9e8031cf5c6fb86e6e33c118 /kexec/arch/ppc/kexec-ppc.h
parent51234576b4ed8d4fcaf2ef1bbd625e050c592d15 (diff)
Fix kexec on powerpc32
Signed-off-by: Maxim Uvarov <muvarov@gmail.com> Signed-off-by: Maxim Uvarov <muvarov@gmail.com> Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'kexec/arch/ppc/kexec-ppc.h')
-rw-r--r--kexec/arch/ppc/kexec-ppc.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/kexec/arch/ppc/kexec-ppc.h b/kexec/arch/ppc/kexec-ppc.h
index 6cec467..fc0471f 100644
--- a/kexec/arch/ppc/kexec-ppc.h
+++ b/kexec/arch/ppc/kexec-ppc.h
@@ -1,6 +1,11 @@
#ifndef KEXEC_PPC_H
#define KEXEC_PPC_H
+#define MAXBYTES 128
+#define MAX_LINE 160
+#define CORE_TYPE_ELF32 1
+#define CORE_TYPE_ELF64 2
+
extern unsigned char setup_simple_start[];
extern uint32_t setup_simple_size;
@@ -16,6 +21,8 @@ extern struct {
uint32_t spr8;
} setup_dol_regs;
+#define SIZE_16M (16*1024*1024UL)
+
int elf_ppc_probe(const char *buf, off_t len);
int elf_ppc_load(int argc, char **argv, const char *buf, off_t len,
struct kexec_info *info);
@@ -37,4 +44,29 @@ void dol_ppc_usage(void);
*/
#define KERNEL_ACCESS_TOP (24 * 1024 * 1024)
+/* boot block version 17 as defined by the linux kernel */
+struct bootblock {
+ unsigned magic,
+ totalsize,
+ off_dt_struct,
+ off_dt_strings,
+ off_mem_rsvmap,
+ version,
+ last_comp_version,
+ boot_physid,
+ dt_strings_size,
+ dt_struct_size;
+};
+
+typedef struct mem_rgns {
+ unsigned int size;
+ struct memory_range *ranges;
+} mem_rgns_t;
+extern mem_rgns_t usablemem_rgns;
+extern int max_memory_ranges;
+extern unsigned long long initrd_base, initrd_size;
+extern unsigned char reuse_initrd;
+#define COMMAND_LINE_SIZE 512 /* from kernel */
+/*fs2dt*/
+void reserve(unsigned long long where, unsigned long long length);
#endif /* KEXEC_PPC_H */