[U-Boot-Users] [PATCH 2/6] bootz command

# # Author: Robert Schwebel r.schwebel@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@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@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
participants (1)
-
Robert Schwebel