summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2007-07-15 14:02:53 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2007-07-15 14:02:53 +0200
commit8881fb7984fb86469e0e66b88d8230be347e21f9 (patch)
treed8ebe4c3c5e8b2dd6f4be71dea425a60ea2d3c96 /arch/arm
parent665291e693efd1fd2955c6f8bfb89956711b0aef (diff)
downloadbarebox-8881fb7984fb86469e0e66b88d8230be347e21f9.tar.gz
barebox-8881fb7984fb86469e0e66b88d8230be347e21f9.tar.xz
use memmap() to save one memcpy call in bootm
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/lib/armlinux.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/arm/lib/armlinux.c b/arch/arm/lib/armlinux.c
index be950f00a7..78a14a3783 100644
--- a/arch/arm/lib/armlinux.c
+++ b/arch/arm/lib/armlinux.c
@@ -67,10 +67,10 @@ static struct tag *params;
#endif
-int do_bootm_linux(image_header_t *os_header, image_header_t *initrd)
+int do_bootm_linux(struct image_handle *os_handle, struct image_handle *initrd)
{
- ulong initrd_start, initrd_end;
void (*theKernel)(int zero, int arch, uint params);
+ image_header_t *os_header = &os_handle->header;
#ifdef CONFIG_CMDLINE_TAG
const char *commandline = getenv ("bootargs");
#endif
@@ -78,7 +78,9 @@ int do_bootm_linux(image_header_t *os_header, image_header_t *initrd)
printf("Multifile images not handled at the moment\n");
return -1;
}
-printf("os header: 0x%p ep: %\n", os_header, os_header + 1);
+
+ printf("commandline: %s\n", commandline);
+
theKernel = (void (*)(int, int, uint))ntohl((unsigned long)(os_header->ih_ep));
debug ("## Transferring control to Linux (at address %08lx) ...\n",
@@ -113,7 +115,7 @@ printf("os header: 0x%p ep: %\n", os_header, os_header + 1);
#endif
setup_end_tag ();
#endif
- if (relocate_image(os_header, (void *)ntohl(os_header->ih_load)))
+ if (relocate_image(os_handle, (void *)ntohl(os_header->ih_load)))
return -1;
/* we assume that the kernel is in place */