# # Author: Robert Schwebel # # 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, + * + * 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, @@ -30,7 +31,7 @@ #include #define DEBUG - + #ifdef CONFIG_SHOW_BOOT_PROGRESS # include # 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