The Qemu specific bootm implementation was intended for a special Qemu target in Linux kernel. But this target has been dropped in v2.6.25-rc1 by commit 302922e5f6901eb6f29c58539631f71b3d9746b8 Author: Ralf Baechle <ralf@linux-mips.org> Date: Tue Jan 29 10:15:02 2008 +0000 [MIPS] Qemu: Remove platform. The Qemu platform was originally implemented to have an easily supportable platform until Qemu reaches a state where it emulates a real world system. Since the latest release Qemu is capable of emulating the MIPSsim and Malta platforms, so this goal has been reached. The Qemu plaform is also rather underfeatured so less useful than a Malta emulation. Thus the special bootm implementation is obsolete by now and can be dropped. The Qemu support in U-Boot is going to be replaced by MIPS Malta board support. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>master
parent
b87493f49a
commit
4b17645d5d
@ -1,62 +0,0 @@ |
||||
/*
|
||||
* (C) Copyright 2008 |
||||
* Jean-Christophe PLAGNIOL-VILLARD <jcplagniol@jcrosoft.com> |
||||
* |
||||
* SPDX-License-Identifier: GPL-2.0+ |
||||
*/ |
||||
|
||||
#include <common.h> |
||||
#include <command.h> |
||||
#include <image.h> |
||||
#include <asm/byteorder.h> |
||||
#include <asm/addrspace.h> |
||||
|
||||
DECLARE_GLOBAL_DATA_PTR; |
||||
|
||||
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; |
||||
|
||||
/* 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", |
||||
(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); |
||||
|
||||
/* 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; |
||||
|
||||
len = strlen(bootargs); |
||||
|
||||
strncpy(start, bootargs, len + 1); |
||||
|
||||
start += len; |
||||
|
||||
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), |
||||
(uint) len); |
||||
} |
||||
|
||||
/* we assume that the kernel is in place */ |
||||
printf("\nStarting kernel ...\n\n"); |
||||
|
||||
theKernel(0, NULL, NULL, 0); |
||||
|
||||
/* does not return */ |
||||
return 1; |
||||
} |
Loading…
Reference in new issue