[U-Boot-Users] [PATCH 2/6] cmdbootz

Robert Schwebel robert at schwebel.de
Mon Dec 15 19:50:27 CET 2003


-------------- next part --------------
# 
# Author:	Robert Schwebel <r.schwebel at pengutronix.de>
# 
# Description:	Holger Schurig's patch to boot a normal zImage if you do
# 		need the functionality of U-Boot's uImages. 
#
# State:	2003-12-09: submit
#


#
# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
#

--- /dev/null	1970-01-01 01:00:00.000000000 +0100
+++ u-boot-patches/include/cmd_bootz.h	2003-12-09 19:39:58.000000000 +0100
@@ -0,0 +1,38 @@
+/*
+ * (C) Copyright 2003
+ * Holger Schurig, M&N Logistik-Loesungen Online GmbH, <h.schurig at mn...>
+ *
+ * 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
+ */
+
+/*
+ * Linux zImage Boot support
+ */
+#ifndef       _CMD_BOOTZ_H
+#define       _CMD_BOOTZ_H
+int do_bootz (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#define       CMD_TBL_BOOTZ   MK_CMD_TBL_ENTRY(				\
+      "bootz",        5,      CFG_MAXARGS,    1,      do_bootz,               \
+      "bootz   - boot Linux zImage from memory\n",                            \
+      "[addr [arg ...]]\n    - boot zImage stored in memory\n"                \
+      "        passing arguments 'arg ...'\n"                                 \
+),
+
+#endif /* _CMD_BOOTZ_H */
--- u-boot-patches/include/cmd_confdefs.h~cmdbootz	2003-12-09 19:39:58.000000000 +0100
+++ u-boot-patches/include/cmd_confdefs.h	2003-12-09 19:39:58.000000000 +0100
@@ -86,6 +86,7 @@
 #define CFG_CMD_FAT	0x0010000000000000U	/* FAT support			*/
 #define CFG_CMD_IMLS	0x0020000000000000U	/* List all found images        */
 #define CFG_CMD_XIMG	0x0040000000000000U	/* load part of multi image     */
+#define CFG_CMD_BOOTZ	0x0080000000000000U	/* directly boot Linux zImage   */
 
 #define CFG_CMD_ALL	0xFFFFFFFFFFFFFFFFU	/* ALL commands			*/
 
--- u-boot-patches/common/cmd_bootz.c~cmdbootz	2003-12-09 19:39:58.000000000 +0100
+++ u-boot-patches/common/cmd_bootz.c	2003-12-09 19:40:32.000000000 +0100
@@ -1,3 +1,4 @@
+
 /*
  * (C) Copyright 2003
  * Holger Schurig, M&N Logistik-Loesungen Online GmbH, <h.schurig at mn...>
@@ -30,7 +31,7 @@
 #include <asm/byteorder.h>
 
 #define DEBUG
- 
+
 #ifdef CONFIG_SHOW_BOOT_PROGRESS
 # include <status_led.h>
 # define SHOW_BOOT_PROGRESS(arg)        show_boot_progress(arg)
@@ -38,63 +39,63 @@
 # define SHOW_BOOT_PROGRESS(arg)
 #endif
 
-
 #define CONFIG_KERNEL_RAM_BASE 0x40000
 
-int do_bootz (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int
+do_bootz(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
 {
-    DECLARE_GLOBAL_DATA_PTR;
+	DECLARE_GLOBAL_DATA_PTR;
 
-    ulong addr = 0x40000;
-    ulong initrd_start = 0;
-    ulong initrd_end = 0;
-    ulong data;
-    void (*theKernel)(int zero, int arch, struct tag *params);
-    bd_t *bd = gd->bd;
+	ulong addr = 0x40000;
+	ulong initrd_start = 0;
+	ulong initrd_end = 0;
+	ulong data;
+	void (*theKernel) (int zero, int arch, struct tag * params);
+	bd_t *bd = gd->bd;
 #ifdef CONFIG_CMDLINE_TAG
-    char *commandline = getenv("bootargs");
+	char *commandline = getenv("bootargs");
 #endif
-    addr = simple_strtoul(argv[1], NULL, 16);
+	addr = simple_strtoul(argv[1], NULL, 16);
 
-    theKernel = (void (*)(int, int, struct tag*))addr;
+	theKernel = (void (*)(int, int, struct tag *)) addr;
 
-    SHOW_BOOT_PROGRESS (14);
+	SHOW_BOOT_PROGRESS(14);
 
 #ifdef DEBUG
-    printf ("## Transferring control to Linux (at address %08lx) ...\n",
-            (ulong)theKernel);
+	printf("## Transferring control to Linux (at address %08lx) ...\n",
+	       (ulong) theKernel);
 #endif
 
 #if defined (CONFIG_SETUP_MEMORY_TAGS) || \
     defined (CONFIG_CMDLINE_TAG) || \
     defined (CONFIG_INITRD_TAG) || \
     defined (CONFIG_VFD)
-    setup_start_tag(bd);
+	setup_start_tag(bd);
 #ifdef CONFIG_SETUP_MEMORY_TAGS
-    setup_memory_tags(bd);
+	setup_memory_tags(bd);
 #endif
 #ifdef CONFIG_CMDLINE_TAG
-    setup_commandline_tag(bd, commandline);
+	setup_commandline_tag(bd, commandline);
 #endif
 #ifdef CONFIG_INITRD_TAG
-    setup_initrd_tag(bd, initrd_start, initrd_end);
+	setup_initrd_tag(bd, initrd_start, initrd_end);
 #endif
 #if 0
-    setup_ramdisk_tag(bd);
+	setup_ramdisk_tag(bd);
 #endif
 #if defined (CONFIG_VFD)
-    setup_videolfb_tag(gd);
+	setup_videolfb_tag(gd);
 #endif
-    setup_end_tag(bd);
+	setup_end_tag(bd);
 #endif
 
-    /* we assume that the kernel is in place */
-    printf("\nStarting kernel ...\n\n");
+	/* we assume that the kernel is in place */
+	printf("\nStarting kernel ...\n\n");
 
-    cleanup_before_linux();
+	cleanup_before_linux();
 
-    theKernel(0, bd->bi_arch_number, params);
+	theKernel(0, bd->bi_arch_number, params);
 
-    printf("ERROR: we should never come to this place ...\n\n");
-    return 0;
+	printf("ERROR: we should never come to this place ...\n\n");
+	return 0;
 }
--- u-boot-patches/cmd_bootz.c~cmdbootz
+++ u-boot-patches/cmd_bootz.c


More information about the U-Boot mailing list