Lines Matching +full:uefi +full:- +full:rtc +full:- +full:info

1 // SPDX-License-Identifier: GPL-2.0-only
15 #include <xen/xen-ops.h>
54 /* Linux <-> Xen vCPU id mapping */
58 /* These are unused until we support booting "pre-ballooned" */
83 struct pvclock_wall_clock *wall_clock = &(s->wc); in xen_read_wallclock()
87 version = wall_clock->version; in xen_read_wallclock()
89 now.tv_sec = ((uint64_t)wall_clock->sec_hi << 32) | wall_clock->sec; in xen_read_wallclock()
90 now.tv_nsec = wall_clock->nsec; in xen_read_wallclock()
92 } while ((wall_clock->version & 1) || (version != wall_clock->version)); in xen_read_wallclock()
109 now.tv_sec = tk->xtime_sec; in xen_pvclock_gtod_notify()
110 now.tv_nsec = (long)(tk->tkr_mono.xtime_nsec >> tk->tkr_mono.shift); in xen_pvclock_gtod_notify()
111 system_time = timespec64_add(now, tk->wall_to_monotonic); in xen_pvclock_gtod_notify()
115 * or when the 11 minutes RTC synchronization time elapsed. in xen_pvclock_gtod_notify()
130 * the hardware RTC. in xen_pvclock_gtod_notify()
144 struct vcpu_register_vcpu_info info; in xen_starting_cpu() local
151 * can happen with cpu-hotplug. in xen_starting_cpu()
159 info.mfn = percpu_to_gfn(vcpup); in xen_starting_cpu()
160 info.offset = xen_offset_in_page(vcpup); in xen_starting_cpu()
163 &info); in xen_starting_cpu()
216 } hyper_node = {"xen,xen", "xen,xen-", NULL, false};
237 * "/hypervisor/uefi" node in DT. If so, runtime services are available in fdt_find_hyper_node()
243 if ((of_get_flat_dt_subnode_by_name(node, "uefi") > 0) && in fdt_find_hyper_node()
307 * A type-less specific Xen resource which contains extended regions
318 uint64_t min_gpaddr = -1, max_gpaddr = 0; in arch_xen_unpopulated_init()
323 return -ENODEV; in arch_xen_unpopulated_init()
326 return -ENODEV; in arch_xen_unpopulated_init()
330 return -ENODEV; in arch_xen_unpopulated_init()
339 return -EINVAL; in arch_xen_unpopulated_init()
345 return -ENOMEM; in arch_xen_unpopulated_init()
374 if (regs[i - 1].end + 1 > regs[i].start) { in arch_xen_unpopulated_init()
375 rc = -EINVAL; in arch_xen_unpopulated_init()
380 if (regs[i - 1].end + 1 == regs[i].start) in arch_xen_unpopulated_init()
383 start = regs[i - 1].end + 1; in arch_xen_unpopulated_init()
384 end = regs[i].start - 1; in arch_xen_unpopulated_init()
388 rc = -ENOMEM; in arch_xen_unpopulated_init()
392 tmp_res->name = "Unavailable space"; in arch_xen_unpopulated_init()
393 tmp_res->start = start; in arch_xen_unpopulated_init()
394 tmp_res->end = end; in arch_xen_unpopulated_init()
454 return -ENODEV; in xen_guest_init()
468 return -ENOMEM; in xen_guest_init()
482 * The shared info contains exactly 1 CPU (the boot CPU). The guest in xen_guest_init()
483 * is required to use VCPUOP_register_vcpu_info to place vcpu info in xen_guest_init()
488 1 << fls(sizeof(struct vcpu_info) - 1)); in xen_guest_init()
490 return -ENOMEM; in xen_guest_init()
521 return -EINVAL; in xen_guest_init()
542 return -ENODEV; in xen_late_init()