Page MenuHomeFreeBSD

xen/efi: disable PV EFI clock on non-x86
AbandonedPublic

Authored by ehem_freebsd_m5p.com on Jul 5 2021, 6:42 PM.

Details

Summary

Unfortunately "bootmethod" is only available on x86. Other architectures
need distinct approaches for querying presence of EFI.

Xen's EFI support is also quite troublesome on non-x86. This is being
slowly remedied, but until in better shape the EFI clock functionality
should be disabled.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 40323
Build 37212: arc lint + arc unit

Event Timeline

I was taking some glances at making this cross-architecture, but the simpler short-term approach is to make this !arm64. Plus for that matter, Xen's EFI/ACPI support on arm64 isn't yet in particularly good shape.

Another alternative would be to have this depend on xentimer, but I've got no idea whether that would be correct (in fact I was under the impression they're quite distinct, so doing that would be an ugly hack).

Ideal solution would be to fix D28619. This though requires merging "bootmethod" from x86 with "arm64_bus_method" from ARM64.

Thing is bootmethod is a string, arm64_bus_method is an enum. The enum seems to make more sense. I'm though curious why the somewhat similar vm_guest variable is declared as an int, even though its values are declared as enums.

Testing confirmed making pvefi.c depend on xentimer works, but I'm unsure whether that is correct.

I'm marking D31065 as abandoned as D31955 fixes the root cause. D31065 could be resurrected if appropriate, but somehow I don't expect that to happen.