diff options
author | Maxim Uvarov <muvarov@gmail.com> | 2010-03-03 14:05:53 +0300 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2010-03-08 11:47:40 +1100 |
commit | 6adc05c6e3fdbc8b9f5d915af78ca05d0a09cb17 (patch) | |
tree | e7f77201ba84a243898a5984f9426626912b8eca /kexec/arch/mips/kexec-mips.h | |
parent | 5996651eccbffb7c195c2911f37fda2f2258e48d (diff) |
some kexec MIPS improvements
- using simple mips* ) in configure.ac to make it compilable on mips2
and mips64
- remove kexec/arch/mips/mips-setup-simple.S which prepares cmdline for
new kernel, it is better to move this work to kernel code. BTW this code was
compilable only on o32 because of t4 is not defined on 64-64 or n32 MIPS ABIs.
- simple put cmdline as string, kernel code should catch cmdline like this
int board_kexec_prepare(struct kimage *image)
{
int i;
char *bootloader = "kexec";
board_boot_desc_ptr->argc = 0;
for(i=0;i<image->nr_segments;i++)
{
printk("segment %d
if (!strncmp(bootloader, (char*)image->segment[i].buf,
strlen(bootloader)))
{
/*
* convert command line string to array
* of parameters (as bootloader does).
*/
int argc = 0, offt;
char *str = (char *)image->segment[i].buf;
char *ptr = strchr(str, ' ');
while (ptr && (ARGV_MAX_ARGS > argc)) {
*ptr = '\0';
if (ptr[1] != ' ') {
offt = (int)(ptr - str + 1);
boot_desc_ptr->argv[argc] =
image->segment[i].mem + offt;
argc++;
}
ptr = strchr(ptr + 1, ' ');
}
boot_desc_ptr->argc = argc;
break;
}
}
Keep it as string make code simple and more readable.
- add crashdump support
- do not redefine syscalls numbers if they defined in system
remove fixups for /proc/iomem. If your board provides wrong /proc/iomem please
fix kernel, or at least you local version of kexec. No need to support it in
main line. At least add option --fake-iomem
- some minor fixes
Signed-off-by: Maxim Uvarov <muvarov@gmail.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
Diffstat (limited to 'kexec/arch/mips/kexec-mips.h')
-rw-r--r-- | kexec/arch/mips/kexec-mips.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/kexec/arch/mips/kexec-mips.h b/kexec/arch/mips/kexec-mips.h index 13f82be..6d062fc 100644 --- a/kexec/arch/mips/kexec-mips.h +++ b/kexec/arch/mips/kexec-mips.h @@ -1,6 +1,11 @@ #ifndef KEXEC_MIPS_H #define KEXEC_MIPS_H +#define MAX_MEMORY_RANGES 64 +#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; @@ -14,4 +19,8 @@ int elf_mips_load(int argc, char **argv, const char *buf, off_t len, struct kexec_info *info); void elf_mips_usage(void); +struct arch_options_t { + int core_header_type; +}; + #endif /* KEXEC_MIPS_H */ |