チケット #34742

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

登録: 2014-12-27 16:51 最終更新: 2015-09-27 22:59

報告者:
担当者:
チケットの種類:
状況:
オープン [担当者決定済み]
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
なし
ファイル:
1

詳細

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

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

障害発生リビジョン: r301

チケットの履歴 (6 件中 3 件表示)

2014-12-27 16:51 更新者: yuichi_xy
  • 新しいチケット "UEFI環境において、VM0でWindows 8.1を起動すると、シリアルコンソールへVMMのメッセージが出力されなくなる" が作成されました
2014-12-27 16:59 更新者: 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 更新者: 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 更新者: yuichi_xy
コメント

yuichi_xy への返信

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

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

2015-09-27 22:59 更新者: yuichi_xy
  • 概要が更新されました
コメント

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

添付ファイルリスト

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする