[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