summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2014-08-14 06:42:35 -0400
committerTom Rini <trini@ti.com>2014-08-30 07:46:40 -0400
commit3f1b6bebe0cbe71ad6beab3c7a00ab2f2b082ca7 (patch)
tree817e9462c63a5ab01eaa925cef984f24fedb9932 /arch/arm
parent9dec5270be87c01e50808001be69fce5b92a7af8 (diff)
downloadu-boot-imx-3f1b6bebe0cbe71ad6beab3c7a00ab2f2b082ca7.zip
u-boot-imx-3f1b6bebe0cbe71ad6beab3c7a00ab2f2b082ca7.tar.gz
u-boot-imx-3f1b6bebe0cbe71ad6beab3c7a00ab2f2b082ca7.tar.bz2
arm64: Correct passing of Linux kernel args
The Documentation/arm64/booting.txt document says that pass in x1/x2/x3 as 0 as they are reserved for future use. Signed-off-by: Tom Rini <trini@ti.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/lib/bootm.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c
index 178e8fb..39fe7a1 100644
--- a/arch/arm/lib/bootm.c
+++ b/arch/arm/lib/bootm.c
@@ -239,10 +239,12 @@ static void boot_prep_linux(bootm_headers_t *images)
static void boot_jump_linux(bootm_headers_t *images, int flag)
{
#ifdef CONFIG_ARM64
- void (*kernel_entry)(void *fdt_addr);
+ void (*kernel_entry)(void *fdt_addr, void *res0, void *res1,
+ void *res2);
int fake = (flag & BOOTM_STATE_OS_FAKE_GO);
- kernel_entry = (void (*)(void *fdt_addr))images->ep;
+ kernel_entry = (void (*)(void *fdt_addr, void *res0, void *res1,
+ void *res2))images->ep;
debug("## Transferring control to Linux (at address %lx)...\n",
(ulong) kernel_entry);
@@ -252,7 +254,7 @@ static void boot_jump_linux(bootm_headers_t *images, int flag)
if (!fake) {
do_nonsec_virt_switch();
- kernel_entry(images->ft_addr);
+ kernel_entry(images->ft_addr, NULL, NULL, NULL);
}
#else
unsigned long machid = gd->bd->bi_arch_number;