diff options
author | Palmer Dabbelt <palmer@dabbelt.com> | 2017-08-10 12:47:28 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-10 12:47:28 -0700 |
commit | 2dcae927fd6cc4493de0f77434a7f191157ba8b7 (patch) | |
tree | db800512c351b0fb1cb07fd8542f4e40586d76d7 | |
parent | 6b501de8e8512abd969199c57c5531737e52a105 (diff) | |
parent | 147cfa612b8a601ee7646da3bce5267e08c30bdc (diff) | |
download | riscv-pk-2dcae927fd6cc4493de0f77434a7f191157ba8b7.zip riscv-pk-2dcae927fd6cc4493de0f77434a7f191157ba8b7.tar.gz riscv-pk-2dcae927fd6cc4493de0f77434a7f191157ba8b7.tar.bz2 |
Merge pull request #60 from riscv/hart1
The DTB argument to boot_other_hart shouldn't be used in BBL
-rw-r--r-- | bbl/bbl.c | 14 |
1 files changed, 6 insertions, 8 deletions
@@ -17,7 +17,7 @@ static uintptr_t dtb_output() return (end + MEGAPAGE_SIZE - 1) / MEGAPAGE_SIZE * MEGAPAGE_SIZE; } -static uintptr_t filter_dtb(uintptr_t source) +static void filter_dtb(uintptr_t source) { uintptr_t dest = dtb_output(); uint32_t size = fdt_size(source); @@ -28,31 +28,29 @@ static uintptr_t filter_dtb(uintptr_t source) filter_plic(dest); filter_compat(dest, "riscv,clint0"); filter_compat(dest, "riscv,debug-013"); - - return dest; } -void boot_other_hart(uintptr_t dtb) +void boot_other_hart(uintptr_t unused __attribute__((unused))) { const void* entry; do { entry = entry_point; mb(); } while (!entry); - enter_supervisor_mode(entry, read_csr(mhartid), dtb); + enter_supervisor_mode(entry, read_csr(mhartid), dtb_output()); } void boot_loader(uintptr_t dtb) { extern char _payload_start; - dtb = filter_dtb(dtb); + filter_dtb(dtb); #ifdef PK_ENABLE_LOGO print_logo(); #endif #ifdef PK_PRINT_DEVICE_TREE - fdt_print(dtb); + fdt_print(dtb_output()); #endif mb(); entry_point = &_payload_start; - boot_other_hart(dtb); + boot_other_hart(0); } |