待辦事項 #34742

UEFI環境において、VM0でWindows 8.1,10を起動すると、シリアルコンソールへVMMのメッセージが出力されなくなる

啟用日期: 2014-12-27 16:51 最後更新: 2015-09-27 22:59

回報者:
負責人:
類型:
狀態:
開啟 [Owner assigned]
元件:
(無)
里程碑:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
檔案:
1

細節

UEFI環境において、VM0でWindows 8.1を起動すると、シリアルコンソールへVMMのメッセージが出力されなくなる。

BIOS環境で発生した同様の問題(#33013)は、_DIS メソッドを無効化することで対策済み。

障害発生リビジョン: r301

Ticket History (3/6 Histories)

2014-12-27 16:51 Updated by: yuichi_xy
  • New Ticket "UEFI環境において、VM0でWindows 8.1を起動すると、シリアルコンソールへVMMのメッセージが出力されなくなる" created
2014-12-27 16:59 Updated by: yuichi_xy
評語

superioのUARTを無効化できなくするパッチを作成してみましたが、効果がありませんでした。 Windows 8.1上でTeraTermを起動しCOM1(UART)に接続すると、VMMもUARTにアクセスできるようになるので、その状態でデバッグログを表示してみると次のようになりました。

Starting a virtual machine.
Processor 1 (AP)
Processor 2 (AP)
Processor 3 (AP)
Starting shell.
> msr_pass: microcode updates cannot be loaded.
msr_pass: microcode updates cannot be loaded.
SUPERIO: write LDNR 0x8
SUPERIO: write reg 0xf0 0xb0
SUPERIO: write LDNR 0xa
SUPERIO: write LDNR 0xa
SUPERIO: write reg 0xf2 0x5c
SUPERIO: write reg 0x30 0x0
SUPERIO: write LDNR 0xa
SUPERIO: write reg 0xe0 0x1
SUPERIO: write reg 0xf6 0x0
SUPERIO: write reg 0xf2 0x5c
SUPERIO: write LDNR 0xb
SUPERIO: write reg 0x30 0xe1
SUPERIO: write LDNR 0x3
SUPERIO: write LDNR 0x6
SUPERIO: write LDNR 0x3
SUPERIO: write LDNR 0x6
SUPERIO: write LDNR 0x3
SUPERIO: write LDNR 0x6
SUPERIO: write LDNR 0x2
SUPERIO: write reg 0x61 0xf8
SUPERIO: write reg 0x60 0x3
SUPERIO: write reg 0x70 0x4
SUPERIO: write reg 0x74 0x4
SUPERIO: write LDNR 0x2
SUPERIO: write ACTR 0x1 0x1
SUPERIO: write LDNR 0x2
SUPERIO: write ACTR 0x0 0x1  <-- ここでOSはUARTをinactiveにしようとするが、VMMはactiveのままにするはずなのに、、、。
SUPERIO: write LDNR 0x2
SUPERIO: write reg 0x61 0xf8
SUPERIO: write reg 0x60 0x3
SUPERIO: write reg 0x70 0x4
SUPERIO: write reg 0x74 0x4
SUPERIO: write LDNR 0x2
SUPERIO: write ACTR 0x1 0x1
2014-12-28 21:56 Updated by: yuichi_xy
評語

OSがUARTをinactiveにしようとしたあとにアクセスしたioportを、デバッグメッセージで出力してみました。 420h-42fhにアクセスしているようです。

SUPERIO: write LDNR 0x2
SUPERIO: write reg 0x61 0xf8
SUPERIO: write reg 0x60 0x3
SUPERIO: write reg 0x70 0x4
SUPERIO: write reg 0x74 0x4
SUPERIO: write LDNR 0x2
SUPERIO: write ACTR 0x1 0x1
SUPERIO: write LDNR 0x2
SUPERIO: write ACTR 0x0 0x1 <-- ここでOSはUARTをinactiveにしようとしている。
IOPASS: outb 0x2f 0x1
IOPASS: outb 0x2e 0x60
IOPASS: inb 0x2f 0x3
IOPASS: outb 0x2e 0x61
IOPASS: inb 0x2f 0xf8
IOPASS: outb 0x2e 0xaa
IOPASS: outb 0x428 0x0
IOPASS: outb 0x429 0x0
IOPASS: outb 0x42a 0x0
IOPASS: outb 0x42b 0x0
IOPASS: outb 0x42c 0x0
IOPASS: outb 0x42d 0x0
IOPASS: outb 0x42e 0x0
IOPASS: outb 0x42f 0x0
IOPASS: inb 0x420 0x0
IOPASS: outb 0x420 0x0
IOPASS: inb 0x421 0x0
IOPASS: outb 0x421 0x0
IOPASS: inb 0x422 0x83
IOPASS: outb 0x422 0x0
IOPASS: inb 0x423 0x4e
IOPASS: outb 0x423 0x0
IOPASS: inb 0x424 0x0
IOPASS: outb 0x424 0x0
IOPASS: inb 0x425 0x0
IOPASS: outb 0x425 0x0
IOPASS: inb 0x426 0x0
IOPASS: outb 0x426 0x0
IOPASS: inb 0x427 0x0
IOPASS: outb 0x427 0x0
IOPASS: outb 0x428 0xfe
IOPASS: outb 0x429 0x7b
IOPASS: outb 0x42a 0x0
IOPASS: outb 0x42b 0x20
IOPASS: outb 0x42c 0x21
IOPASS: outb 0x42d 0x0
IOPASS: outb 0x42e 0x0
IOPASS: outb 0x42f 0x0
IOPASS: outb 0x2e 0x87
IOPASS: outb 0x2e 0x87
IOPASS: outb 0x2e 0x7
SUPERIO: write LDNR 0x3
2014-12-29 10:53 Updated by: yuichi_xy
評語

yuichi_xy への返信

OSがUARTをinactiveにしようとしたあとにアクセスしたioportを、デバッグメッセージで出力してみました。 420h-42fhにアクセスしているようです。

420h-42fhへのアクセスを無効化してみても、効果がありませんでした。

2015-09-27 22:59 Updated by: yuichi_xy
  • Summary Updated
評語

Windows 10, r347 の組み合わせでも発生しました。

Attachment File List

編輯

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » 登入