diff options
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/include/asm/u-boot-mips.h | 11 | ||||
-rw-r--r-- | arch/mips/lib/board.c | 7 | ||||
-rw-r--r-- | arch/mips/lib/bootm.c | 102 | ||||
-rw-r--r-- | arch/mips/lib/bootm_qemu_mips.c | 26 |
4 files changed, 76 insertions, 70 deletions
diff --git a/arch/mips/include/asm/u-boot-mips.h b/arch/mips/include/asm/u-boot-mips.h new file mode 100644 index 0000000..6f26dfa --- /dev/null +++ b/arch/mips/include/asm/u-boot-mips.h @@ -0,0 +1,11 @@ +/* + * This file is released under the terms of GPL v2 and any later version. + * See the file COPYING in the root directory of the source tree for details. + * + * Copyright (C) 2003 Wolfgang Denk, DENX Software Engineering, wd@denx.de + */ + +extern ulong uboot_end_data; +extern ulong uboot_end; + +extern int incaip_set_cpuclk(void); diff --git a/arch/mips/lib/board.c b/arch/mips/lib/board.c index 59a8001..62d47a8 100644 --- a/arch/mips/lib/board.c +++ b/arch/mips/lib/board.c @@ -38,13 +38,6 @@ DECLARE_GLOBAL_DATA_PTR; -extern int timer_init(void); - -extern int incaip_set_cpuclk(void); - -extern ulong uboot_end_data; -extern ulong uboot_end; - ulong monitor_flash_len; static char *failed = "*** failed ***\n"; diff --git a/arch/mips/lib/bootm.c b/arch/mips/lib/bootm.c index 9930abf..608c1a7 100644 --- a/arch/mips/lib/bootm.c +++ b/arch/mips/lib/bootm.c @@ -33,22 +33,23 @@ DECLARE_GLOBAL_DATA_PTR; #define LINUX_MAX_ENVS 256 #define LINUX_MAX_ARGS 256 -static int linux_argc; -static char ** linux_argv; +static int linux_argc; +static char **linux_argv; -static char ** linux_env; -static char * linux_env_p; -static int linux_env_idx; +static char **linux_env; +static char *linux_env_p; +static int linux_env_idx; -static void linux_params_init (ulong start, char * commandline); -static void linux_env_set (char * env_name, char * env_val); +static void linux_params_init(ulong start, char *commandline); +static void linux_env_set(char *env_name, char *env_val); -int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *images) +int do_bootm_linux(int flag, int argc, char * const argv[], + bootm_headers_t *images) { - void (*theKernel) (int, char **, char **, int *); - char *commandline = getenv ("bootargs"); - char env_buf[12]; - char *cp; + void (*theKernel) (int, char **, char **, int *); + char *commandline = getenv("bootargs"); + char env_buf[12]; + char *cp; if ((flag != 0) && (flag != BOOTM_STATE_OS_GO)) return 1; @@ -59,53 +60,53 @@ int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *ima bootstage_mark(BOOTSTAGE_ID_RUN_OS); #ifdef DEBUG - printf ("## Transferring control to Linux (at address %08lx) ...\n", + printf("## Transferring control to Linux (at address %08lx) ...\n", (ulong) theKernel); #endif - linux_params_init (UNCACHED_SDRAM (gd->bd->bi_boot_params), commandline); + linux_params_init(UNCACHED_SDRAM(gd->bd->bi_boot_params), commandline); #ifdef CONFIG_MEMSIZE_IN_BYTES - sprintf (env_buf, "%lu", (ulong)gd->ram_size); - debug ("## Giving linux memsize in bytes, %lu\n", (ulong)gd->ram_size); + sprintf(env_buf, "%lu", (ulong)gd->ram_size); + debug("## Giving linux memsize in bytes, %lu\n", (ulong)gd->ram_size); #else - sprintf (env_buf, "%lu", (ulong)(gd->ram_size >> 20)); - debug ("## Giving linux memsize in MB, %lu\n", (ulong)(gd->ram_size >> 20)); + sprintf(env_buf, "%lu", (ulong)(gd->ram_size >> 20)); + debug("## Giving linux memsize in MB, %lu\n", + (ulong)(gd->ram_size >> 20)); #endif /* CONFIG_MEMSIZE_IN_BYTES */ - linux_env_set ("memsize", env_buf); + linux_env_set("memsize", env_buf); - sprintf (env_buf, "0x%08X", (uint) UNCACHED_SDRAM (images->rd_start)); - linux_env_set ("initrd_start", env_buf); + sprintf(env_buf, "0x%08X", (uint) UNCACHED_SDRAM(images->rd_start)); + linux_env_set("initrd_start", env_buf); - sprintf (env_buf, "0x%X", (uint) (images->rd_end - images->rd_start)); - linux_env_set ("initrd_size", env_buf); + sprintf(env_buf, "0x%X", (uint) (images->rd_end - images->rd_start)); + linux_env_set("initrd_size", env_buf); - sprintf (env_buf, "0x%08X", (uint) (gd->bd->bi_flashstart)); - linux_env_set ("flash_start", env_buf); + sprintf(env_buf, "0x%08X", (uint) (gd->bd->bi_flashstart)); + linux_env_set("flash_start", env_buf); - sprintf (env_buf, "0x%X", (uint) (gd->bd->bi_flashsize)); - linux_env_set ("flash_size", env_buf); + sprintf(env_buf, "0x%X", (uint) (gd->bd->bi_flashsize)); + linux_env_set("flash_size", env_buf); cp = getenv("ethaddr"); - if (cp != NULL) { + if (cp) linux_env_set("ethaddr", cp); - } cp = getenv("eth1addr"); - if (cp != NULL) { + if (cp) linux_env_set("eth1addr", cp); - } /* we assume that the kernel is in place */ - printf ("\nStarting kernel ...\n\n"); + printf("\nStarting kernel ...\n\n"); + + theKernel(linux_argc, linux_argv, linux_env, 0); - theKernel (linux_argc, linux_argv, linux_env, 0); /* does not return */ return 1; } -static void linux_params_init (ulong start, char *line) +static void linux_params_init(ulong start, char *line) { char *next, *quote, *argp; @@ -117,26 +118,25 @@ static void linux_params_init (ulong start, char *line) next = line; while (line && *line && linux_argc < LINUX_MAX_ARGS) { - quote = strchr (line, '"'); - next = strchr (line, ' '); + quote = strchr(line, '"'); + next = strchr(line, ' '); - while (next != NULL && quote != NULL && quote < next) { + while (next && quote && quote < next) { /* we found a left quote before the next blank * now we have to find the matching right quote */ - next = strchr (quote + 1, '"'); - if (next != NULL) { - quote = strchr (next + 1, '"'); - next = strchr (next + 1, ' '); + next = strchr(quote + 1, '"'); + if (next) { + quote = strchr(next + 1, '"'); + next = strchr(next + 1, ' '); } } - if (next == NULL) { - next = line + strlen (line); - } + if (!next) + next = line + strlen(line); linux_argv[linux_argc] = argp; - memcpy (argp, line, next - line); + memcpy(argp, line, next - line); argp[next - line] = 0; argp += next - line + 1; @@ -154,19 +154,19 @@ static void linux_params_init (ulong start, char *line) linux_env_idx = 0; } -static void linux_env_set (char *env_name, char *env_val) +static void linux_env_set(char *env_name, char *env_val) { if (linux_env_idx < LINUX_MAX_ENVS - 1) { linux_env[linux_env_idx] = linux_env_p; - strcpy (linux_env_p, env_name); - linux_env_p += strlen (env_name); + strcpy(linux_env_p, env_name); + linux_env_p += strlen(env_name); - strcpy (linux_env_p, "="); + strcpy(linux_env_p, "="); linux_env_p += 1; - strcpy (linux_env_p, env_val); - linux_env_p += strlen (env_val); + strcpy(linux_env_p, env_val); + linux_env_p += strlen(env_val); linux_env_p++; linux_env[++linux_env_idx] = 0; diff --git a/arch/mips/lib/bootm_qemu_mips.c b/arch/mips/lib/bootm_qemu_mips.c index bb6442a..0815c9c 100644 --- a/arch/mips/lib/bootm_qemu_mips.c +++ b/arch/mips/lib/bootm_qemu_mips.c @@ -29,30 +29,31 @@ DECLARE_GLOBAL_DATA_PTR; -int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *images) +int do_bootm_linux(int flag, int argc, char * const argv[], + bootm_headers_t *images) { - void (*theKernel) (int, char **, char **, int *); - char *bootargs = getenv ("bootargs"); - char *start; - uint len; + void (*theKernel) (int, char **, char **, int *); + char *bootargs = getenv("bootargs"); + char *start; + uint len; /* find kernel entry point */ theKernel = (void (*)(int, char **, char **, int *))images->ep; bootstage_mark(BOOTSTAGE_ID_RUN_OS); - debug ("## Transferring control to Linux (at address %08lx) ...\n", + debug("## Transferring control to Linux (at address %08lx) ...\n", (ulong) theKernel); gd->bd->bi_boot_params = gd->bd->bi_memstart + (16 << 20) - 256; - debug ("%-12s= 0x%08lX\n", "boot_params", (ulong)gd->bd->bi_boot_params); + debug("%-12s= 0x%08lX\n", "boot_params", (ulong)gd->bd->bi_boot_params); /* set Magic */ *(int32_t *)(gd->bd->bi_boot_params - 4) = 0x12345678; /* set ram_size */ *(int32_t *)(gd->bd->bi_boot_params - 8) = gd->ram_size; - start = (char*)gd->bd->bi_boot_params; + start = (char *)gd->bd->bi_boot_params; len = strlen(bootargs); @@ -62,15 +63,16 @@ int do_bootm_linux(int flag, int argc, char * const argv[], bootm_headers_t *ima len = images->rd_end - images->rd_start; if (len > 0) { - start += sprintf(start," rd_start=0x%08X rd_size=0x%0X", - (uint) UNCACHED_SDRAM (images->rd_start), + start += sprintf(start, " rd_start=0x%08X rd_size=0x%0X", + (uint) UNCACHED_SDRAM(images->rd_start), (uint) len); } /* we assume that the kernel is in place */ - printf ("\nStarting kernel ...\n\n"); + printf("\nStarting kernel ...\n\n"); + + theKernel(0, NULL, NULL, 0); - theKernel (0, NULL, NULL, 0); /* does not return */ return 1; } |