projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
net: move bootfile init into eth_initialize
[oweals/u-boot.git]
/
arch
/
x86
/
lib
/
bootm.c
diff --git
a/arch/x86/lib/bootm.c
b/arch/x86/lib/bootm.c
index 836803cbea3ca5c252bc57150976c1dac66ea19d..83caf6bdbd780113862d8d80374412cc9ff3cef4 100644
(file)
--- a/
arch/x86/lib/bootm.c
+++ b/
arch/x86/lib/bootm.c
@@
-28,16
+28,20
@@
#include <command.h>
#include <image.h>
#include <u-boot/zlib.h>
#include <command.h>
#include <image.h>
#include <u-boot/zlib.h>
+#include <asm/bootparam.h>
#include <asm/byteorder.h>
#include <asm/zimage.h>
#include <asm/byteorder.h>
#include <asm/zimage.h>
+#define COMMAND_LINE_OFFSET 0x9000
+
/*cmd_boot.c*/
int do_bootm_linux(int flag, int argc, char * const argv[],
bootm_headers_t *images)
{
/*cmd_boot.c*/
int do_bootm_linux(int flag, int argc, char * const argv[],
bootm_headers_t *images)
{
- void *base_ptr;
- ulong os_data, os_len;
- image_header_t *hdr;
+ struct boot_params *base_ptr = NULL;
+ ulong os_data, os_len;
+ image_header_t *hdr;
+ void *load_address;
#if defined(CONFIG_FIT)
const void *data;
#if defined(CONFIG_FIT)
const void *data;
@@
-73,13
+77,20
@@
int do_bootm_linux(int flag, int argc, char * const argv[],
goto error;
}
goto error;
}
- base_ptr = load_zimage((void *)os_data, os_len,
- images->rd_start, images->rd_end - images->rd_start, 0);
+#ifdef CONFIG_CMD_ZBOOT
+ base_ptr = load_zimage((void *)os_data, os_len, &load_address);
+#endif
if (NULL == base_ptr) {
printf("## Kernel loading failed ...\n");
goto error;
if (NULL == base_ptr) {
printf("## Kernel loading failed ...\n");
goto error;
+ }
+ if (setup_zimage(base_ptr, (char *)base_ptr + COMMAND_LINE_OFFSET,
+ 0, images->rd_start,
+ images->rd_end - images->rd_start)) {
+ printf("## Setting up boot parameters failed ...\n");
+ goto error;
}
#ifdef DEBUG
}
#ifdef DEBUG
@@
-90,7
+101,7
@@
int do_bootm_linux(int flag, int argc, char * const argv[],
/* 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");
- boot_zimage(base_ptr);
+ boot_zimage(base_ptr
, load_address
);
/* does not return */
error:
/* does not return */
error: