diff options
author | Christoph Hellwig <hch@lst.de> | 2019-04-15 11:14:38 +0200 |
---|---|---|
committer | Palmer Dabbelt <palmer@sifive.com> | 2019-04-25 14:51:11 -0700 |
commit | ba9c0141941ce618b04361a772c92a4da6dfcb35 (patch) | |
tree | 3e6ce6a474ce9e4c53a2fc9501b2ed224890331b /arch/riscv | |
parent | c637b911e0669753ba85f8d61f10ca4b8f441dd3 (diff) | |
download | linux-ba9c0141941ce618b04361a772c92a4da6dfcb35.tar.bz2 |
riscv: cleanup the parse_dtb calling conventions
No need to pass the hartid, and the dtb address passed is a physical
address, so don't pretend it is a kernel pointer.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
Diffstat (limited to 'arch/riscv')
-rw-r--r-- | arch/riscv/kernel/head.S | 3 | ||||
-rw-r--r-- | arch/riscv/kernel/setup.c | 6 |
2 files changed, 5 insertions, 4 deletions
diff --git a/arch/riscv/kernel/head.S b/arch/riscv/kernel/head.S index 62d2c9c85433..478821d31bb3 100644 --- a/arch/riscv/kernel/head.S +++ b/arch/riscv/kernel/head.S @@ -72,8 +72,7 @@ clear_bss_done: la sp, init_thread_union + THREAD_SIZE /* Start the kernel */ - mv a0, s0 - mv a1, s1 + mv a0, s1 call parse_dtb tail start_kernel diff --git a/arch/riscv/kernel/setup.c b/arch/riscv/kernel/setup.c index 540a331d1376..d93bcce004e3 100644 --- a/arch/riscv/kernel/setup.c +++ b/arch/riscv/kernel/setup.c @@ -52,9 +52,11 @@ struct screen_info screen_info = { atomic_t hart_lottery; unsigned long boot_cpu_hartid; -void __init parse_dtb(unsigned int hartid, void *dtb) +void __init parse_dtb(phys_addr_t dtb_phys) { - if (early_init_dt_scan(__va(dtb))) + void *dtb = __va(dtb_phys); + + if (early_init_dt_scan(dtb)) return; pr_err("No DTB passed to the kernel\n"); |