diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-06-30 12:24:58 +0000 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-06-30 12:27:06 +0000 |
| commit | 33606b41d35115f887ea688b1a16f2ff85bf2fe4 (patch) | |
| tree | 406b2c7b19a087ba437c68f3dbf0b589fa1d6150 /results/scraper/launchpad-without-comments/1904490 | |
| parent | adedf8771bc4de3113041ca21bd4d0d1c0014b6a (diff) | |
| download | emulator-bug-study-33606b41d35115f887ea688b1a16f2ff85bf2fe4.tar.gz emulator-bug-study-33606b41d35115f887ea688b1a16f2ff85bf2fe4.zip | |
add launchpad bug reports without comments
Diffstat (limited to 'results/scraper/launchpad-without-comments/1904490')
| -rw-r--r-- | results/scraper/launchpad-without-comments/1904490 | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/results/scraper/launchpad-without-comments/1904490 b/results/scraper/launchpad-without-comments/1904490 new file mode 100644 index 00000000..e44b472c --- /dev/null +++ b/results/scraper/launchpad-without-comments/1904490 @@ -0,0 +1,24 @@ +intel-hda: valid registers are unknown + +According to HDA specification, "3.1.2 General Register Behaviors and Access Requirements": + +"All controller registers must be addressable as byte, Word, and Dword quantities." + +But e.g. if you try the following to reset and enable the CORB, assuming es:esi contains the base MMIO address of the controller, + + es or [esi+4bh], byte 80h ; reset CORB +corbresetloop: + es test [esi+4bh], byte 80h ; is HW done resetting yet? + jnz corbreset1ok ; yes, bit is now 1 + hlt ; wait a little bit + jmp corbresetloop ; and check again +corbreset1ok: + es and [esi+4bh], byte 7fh ; clear the bit + +It will hang indefinitely because the bit never gets set, and if you enable debug output of the controller with "-device intel-hda,debug=1", you will see infinitely the line "unknown register, addr 0x4b" output. The same code on a real hardware (I tried with ICH7M) works fine, as it should according to the spec. + +Host/guest/version does not matter (I am writing own drivers) --- as of right now, latest version still has this code: + +https://github.com/qemu/qemu/blob/master/hw/audio/intel-hda.c + +which seems to emit "unknown register" message in intel_hda_reg_find(), and this function does not take into account range of addresses that each register occupies. \ No newline at end of file |