int arch_devtree_reserve_addr(u32 index, physical_addr_t *addr) { u64 tmp; int rc = VMM_OK; struct fdt_fileinfo fdt; if (load_bank_resv_sz) { if (index == 0) { *addr = load_bank_resv_pa; return VMM_OK; } else { index -= 1; } } rc = libfdt_parse_fileinfo((virtual_addr_t)&dt_blob_start, &fdt); if (rc) { return rc; } rc = libfdt_reserve_address(&fdt, index, &tmp); if (rc) { return rc; } *addr = (physical_addr_t)tmp; return VMM_OK; }
int arch_devtree_reserve_addr(u32 index, physical_addr_t *addr) { u64 tmp; int rc = VMM_OK; struct fdt_fileinfo fdt; rc = libfdt_parse_fileinfo((virtual_addr_t)&dt_blob_start, &fdt); if (rc) { return rc; } rc = libfdt_reserve_address(&fdt, index, &tmp); if (rc) { return rc; } *addr = (physical_addr_t)tmp; return VMM_OK; }