1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
semantic: 0.976
graphic: 0.975
assembly: 0.973
other: 0.972
instruction: 0.971
device: 0.970
network: 0.967
socket: 0.966
vnc: 0.966
boot: 0.956
KVM: 0.953
mistranslation: 0.940
qemu-system-aarch64: Windows 10 ARM64 BSoD on boot while using virt-3.0
When I emulate a virt-3.0 machine, Windows 10 BSoD on boot, with the error code being ACPI_BIOS_ERROR(0x000000A5), virt-2.12 boots fine.
Windows Build: 10.0.17134.1
QEMU version: 3.0.0
Commandline: qemu-system-aarch64 -M virt -accel tcg,thread=multi -cpu cortex-a57 -smp 2 -m 2048 -bios QEMU_EFI.fd -device ramfb -device nec-usb-xhci -device usb-kbd -device usb-tablet -hda disk.vhd -vnc :0
By the way, the patch to add DBG2 table discussed here https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg02550.html works (although minor change is required to adapt to the qemu 3.0.0 code), the table is accepted by Windows (Windows require both DBG2 and SPCR to be valid for serial kernel debugging to work), so it may help further diagnosing this issue.
On Sat, 24 Nov 2018 20:36:54 -0000
GH Cao <email address hidden> wrote:
> ** Description changed:
>
> When I emulate a virt-3.0 machine, Windows 10 BSoD on boot, with the
> error code being ACPI_BIOS_ERROR(0x000000A5), virt-2.12 boots fine.
>
> Windows Build: 10.0.17134.1
> QEMU version: 3.0.0
> Commandline: qemu-system-aarch64 -M virt -accel tcg,thread=multi -cpu cortex-a57 -smp 2 -m 2048 -bios QEMU_EFI.fd -device ramfb -device nec-usb-xhci -device usb-kbd -device usb-tablet -hda disk.vhd -vnc :0
>
> By the way, the patch to add DBG2 table discussed here
> - https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg02550.html
> + https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg01719.html
> works (although minor change is required to adapt to the qemu 3.0.0
> code), the table is accepted by Windows (Windows require both DBG2 and
> SPCR to be valid for serial kernel debugging to work), so it may help
> further diagnosing this issue.
>
if you are able to attach a debugger early before guest BSODs,
you can try to use AMIL Debugger
https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/the-amli-debugger
to find out what windows doesn't like in ACPI tables.
@imammedo:
I am new to kernel debugging, but I managed to get some traces, hope that will help you.
https://pastebin.com/shWUC1Pk
https://pastebin.com/n0gnSaVx
And the namespace objects tree of virt-2.12 is this.
https://pastebin.com/GybigJ9r
On Wed, 28 Nov 2018 19:25:07 -0000
GH Cao <email address hidden> wrote:
> @imammedo:
> I am new to kernel debugging, but I managed to get some traces, hope that will help you.
>
> https://pastebin.com/shWUC1Pk
> https://pastebin.com/n0gnSaVx
>
try it with following amli options set: errbrkon traceon spewon
hopefully errbrkon will stop at the error and the rest of options should provide context
Could it be related to:
commit 17ec075a651a3f9613429c2d97018fce459ed943
Author: Eric Auger <email address hidden>
Date: Fri Jun 22 13:28:37 2018 +0100
hw/arm/virt: Use 256MB ECAM region by default
With this patch, virt-3.0 machine uses a new 256MB ECAM region
by default instead of the legacy 16MB one, if highmem is set
(LPAE supported by the guest) and (!firmware_loaded || aarch64).
Indeed aarch32 mode FW may not support this high ECAM region.
As far as I can tell the only real differences between virt-2.12 and later at the size of the ECAM region and the max number of CPUs it supports:
static void virt_machine_2_12_options(MachineClass *mc)
{
VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
virt_machine_3_0_options(mc);
SET_MACHINE_COMPAT(mc, VIRT_COMPAT_2_12);
vmc->no_highmem_ecam = true;
mc->max_cpus = 255;
}
Yeah it seems to be. Windows boots fine after I disable hi ECAM region.
---Original---
From: "Alex Bennée"<email address hidden>
Date: 2018/12/5 19:41:40
To: "driver1998"<email address hidden>;
Subject: [Bug 1804961] Re: qemu-system-aarch64: Windows 10 ARM64 BSoD on boot while using virt-3.0
Could it be related to:
commit 17ec075a651a3f9613429c2d97018fce459ed943
Author: Eric Auger <email address hidden>
Date: Fri Jun 22 13:28:37 2018 +0100
hw/arm/virt: Use 256MB ECAM region by default
With this patch, virt-3.0 machine uses a new 256MB ECAM region
by default instead of the legacy 16MB one, if highmem is set
(LPAE supported by the guest) and (!firmware_loaded || aarch64).
Indeed aarch32 mode FW may not support this high ECAM region.
As far as I can tell the only real differences between virt-2.12 and
later at the size of the ECAM region and the max number of CPUs it
supports:
static void virt_machine_2_12_options(MachineClass *mc)
{
VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
virt_machine_3_0_options(mc);
SET_MACHINE_COMPAT(mc, VIRT_COMPAT_2_12);
vmc->no_highmem_ecam = true;
mc->max_cpus = 255;
}
** Tags added: aarch64 acpi
--
You received this bug notification because you are subscribed to the bug
report.
https://bugs.launchpad.net/bugs/1804961
Title:
qemu-system-aarch64: Windows 10 ARM64 BSoD on boot while using
virt-3.0
Status in QEMU:
New
Bug description:
When I emulate a virt-3.0 machine, Windows 10 BSoD on boot, with the
error code being ACPI_BIOS_ERROR(0x000000A5), virt-2.12 boots fine.
Windows Build: 10.0.17134.1
QEMU version: 3.0.0
Commandline: qemu-system-aarch64 -M virt -accel tcg,thread=multi -cpu cortex-a57 -smp 2 -m 2048 -bios QEMU_EFI.fd -device ramfb -device nec-usb-xhci -device usb-kbd -device usb-tablet -hda disk.vhd -vnc :0
By the way, the patch to add DBG2 table discussed here
https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg01719.html
works (although minor change is required to adapt to the qemu 3.0.0
code), the table is accepted by Windows (Windows require both DBG2 and
SPCR to be valid for serial kernel debugging to work), so it may help
further diagnosing this issue.
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1804961/+subscriptions
The QEMU project is currently considering to move its bug tracking to another system. For this we need to know which bugs are still valid and which could be closed already. Thus we are setting older bugs to "Incomplete" now.
If you still think this bug report here is valid, then please switch the state back to "New" within the next 60 days, otherwise this report will be marked as "Expired". Or mark it as "Fix Released" if the problem has been solved with a newer version of QEMU already. Thank you and sorry for the inconvenience.
[Expired for QEMU because there has been no activity for 60 days.]
|