diff options
Diffstat (limited to 'sys/arm64/arm64/machdep.c')
-rw-r--r-- | sys/arm64/arm64/machdep.c | 49 |
1 files changed, 7 insertions, 42 deletions
diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c index 77d01d399ae7..84cd9921c7dd 100644 --- a/sys/arm64/arm64/machdep.c +++ b/sys/arm64/arm64/machdep.c @@ -964,16 +964,6 @@ try_load_dtb(caddr_t kmdp) vm_offset_t dtbp; dtbp = MD_FETCH(kmdp, MODINFOMD_DTBP, vm_offset_t); - -#if defined(FDT_DTB_STATIC) - /* - * In case the device tree blob was not retrieved (from metadata) try - * to use the statically embedded one. - */ - if (dtbp == 0) - dtbp = (vm_offset_t)&fdt_static_dtb; -#endif - if (dtbp == (vm_offset_t)NULL) { printf("ERROR loading DTB\n"); return; @@ -1077,26 +1067,6 @@ cache_setup(void) } } -static vm_offset_t -freebsd_parse_boot_param(struct arm64_bootparams *abp) -{ - vm_offset_t lastaddr; - void *kmdp; - static char *loader_envp; - - preload_metadata = (caddr_t)(uintptr_t)(abp->modulep); - kmdp = preload_search_by_type("elf kernel"); - if (kmdp == NULL) - return (0); - - boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); - loader_envp = MD_FETCH(kmdp, MODINFOMD_ENVP, char *); - init_static_kenv(loader_envp, 0); - lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t); - - return (lastaddr); -} - void initarm(struct arm64_bootparams *abp) { @@ -1112,32 +1082,27 @@ initarm(struct arm64_bootparams *abp) caddr_t kmdp; bool valid; - if ((abp->modulep & VM_MIN_KERNEL_ADDRESS) == - VM_MIN_KERNEL_ADDRESS) - /* Booted from loader. */ - lastaddr = freebsd_parse_boot_param(abp); -#ifdef LINUX_BOOT_ABI - else - /* Booted from U-Boot. */ - lastaddr = linux_parse_boot_param(abp); -#endif + /* Set the module data location */ + preload_metadata = (caddr_t)(uintptr_t)(abp->modulep); /* Find the kernel address */ kmdp = preload_search_by_type("elf kernel"); if (kmdp == NULL) kmdp = preload_search_by_type("elf64 kernel"); + boothowto = MD_FETCH(kmdp, MODINFOMD_HOWTO, int); + init_static_kenv(MD_FETCH(kmdp, MODINFOMD_ENVP, char *), 0); link_elf_ireloc(kmdp); #ifdef FDT try_load_dtb(kmdp); -#ifdef LINUX_BOOT_ABI - parse_bootargs(&lastaddr, abp); -#endif #endif efi_systbl_phys = MD_FETCH(kmdp, MODINFOMD_FW_HANDLE, vm_paddr_t); + /* Find the address to start allocating from */ + lastaddr = MD_FETCH(kmdp, MODINFOMD_KERNEND, vm_offset_t); + /* Load the physical memory ranges */ efihdr = (struct efi_map_header *)preload_search_info(kmdp, MODINFO_METADATA | MODINFOMD_EFI_MAP); |