Patchwork [U-Boot] MIPS: bootm.c: drop obsolete Qemu specific bootm implementation

login
register
mail settings
Submitter Daniel Schwierzeck
Date Jan. 12, 2013, 5:51 p.m.
Message ID <1358013086-2273-1-git-send-email-daniel.schwierzeck@gmail.com>
Download mbox | patch
Permalink /patch/211530/
State Superseded
Delegated to: Daniel Schwierzeck
Headers show

Comments

Daniel Schwierzeck - Jan. 12, 2013, 5:51 p.m.
From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>

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 should be converted to MIPS Malta
to support booting of Linux kernels.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
---
 arch/mips/lib/Makefile          |  4 ---
 arch/mips/lib/bootm_qemu_mips.c | 78 -----------------------------------------
 2 files changed, 82 deletions(-)
 delete mode 100644 arch/mips/lib/bootm_qemu_mips.c
Gabor Juhos - Jan. 12, 2013, 6:14 p.m.
Hi Daniel,

> From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
> 
> 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 should be converted to MIPS Malta
> to support booting of Linux kernels.

After this change, the qemu-mips board support will be broken, so the whole
qemu-mips stuff should be removed with the same change IMHO. Alternatively, this
should be kept until the qemu-malta support is not ready.

-Gabor

Patch

diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile
index 967e98a..a68a564 100644
--- a/arch/mips/lib/Makefile
+++ b/arch/mips/lib/Makefile
@@ -35,11 +35,7 @@  LGOBJS	:= $(addprefix $(obj),$(GLSOBJS))
 SOBJS-y	+=
 
 COBJS-y	+= board.o
-ifeq ($(CONFIG_QEMU_MIPS),y)
-COBJS-y	+= bootm_qemu_mips.o
-else
 COBJS-y	+= bootm.o
-endif
 
 SRCS	:= $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
 OBJS	:= $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
diff --git a/arch/mips/lib/bootm_qemu_mips.c b/arch/mips/lib/bootm_qemu_mips.c
deleted file mode 100644
index 0815c9c..0000000
--- a/arch/mips/lib/bootm_qemu_mips.c
+++ /dev/null
@@ -1,78 +0,0 @@ 
-/*
- * (C) Copyright 2008
- * Jean-Christophe PLAGNIOL-VILLARD <jcplagniol@jcrosoft.com>
- *
- * See file CREDITS for list of people who contributed to this
- * project.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- */
-
-#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;
-}