These changes are part of the large review, which includes : D36256 , D36052.
The changes are to refactor the code of vmbus.c and hyperv.c to keep minimal arch specific codes there and have them in separate files in x86/ arm64/ .
x86 is a new directory, which contains codes for x86 / x86_64. Instead of repeating the same codes in existing amd64/ and i386/, this approach reduced the
repetition.
Details
- Reviewers
lwhsu whu - Commits
- rG6cf00ef80c20: arm64: enablement for ARM64 in Hyper-V (Part 1)
Diff Detail
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
sys/dev/hyperv/vmbus/aarch64/hyperv_machdep.c | ||
---|---|---|
61 ↗ | (On Diff #111175) | But who will check if the target supports PSCI 1.2 (or later)? All my FDT-based boards hang inside the arm_smccc_1_2_hvc() function (none of them support PSCI 1.2). |
sys/dev/hyperv/vmbus/aarch64/hyperv_aarch64.c | ||
---|---|---|
191 | Huh, this function is obviously wrong and incomplete . We don't always run on a hypervisor and don't need SMCCC 1.2. There is no check for return values in hv_get_vpreg_128() . |
sys/dev/hyperv/vmbus/aarch64/hyperv_aarch64.c | ||
---|---|---|
191 | Thanks for pointing, I have just found this problem. Will add a check with AcpiGbl_FADT HypervisorId to check if we are on Hyper-V or not , if (AcpiGbl_FADT.HypervisorId == "MsHyperv") vm_guest = VM_GUEST_HV; else return (False); hv_get_vpreg_128(CPUID_LEAF_HV_FEATURES, &result); |
Will put the
sys/dev/hyperv/vmbus/aarch64/hyperv_aarch64.c | ||
---|---|---|
191 | WIll put the new patch for review by tomorrow. |