Date: Sat, 20 Jul 2019 17:38:23 +0000 From: bugzilla-noreply@freebsd.org To: virtualization@FreeBSD.org Subject: [Bug 239341] HDA support doesn't work for me Message-ID: <bug-239341-27103-ye4Cbh5bvZ@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-239341-27103@https.bugs.freebsd.org/bugzilla/> References: <bug-239341-27103@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D239341 --- Comment #1 from shamaz.mazum@gmail.com --- Unfortunately, this quick&dirty fix works only for Fedora as a guest. And l= et me clarify myself a bit about that 4 byte shift. I've added some additional debug code into hda_stream_start diff --git a/usr.sbin/bhyve/pci_hda.c b/usr.sbin/bhyve/pci_hda.c index 99f8aec31c6..9d19e2ec504 100644 --- a/usr.sbin/bhyve/pci_hda.c +++ b/usr.sbin/bhyve/pci_hda.c @@ -678,6 +678,20 @@ hda_stream_start(struct hda_softc *sc, uint8_t stream_= ind) st->bdl_cnt =3D bdl_cnt; + /* bdl_vaddr -=3D 4; */ + + bdle =3D (struct hda_bdle *)bdl_vaddr; + for (i =3D 0; i < bdl_cnt; i++, bdle++) { + bdle_sz =3D bdle->len; + assert(!(bdle_sz % HDA_DMA_ACCESS_LEN)); + + bdle_addrl =3D bdle->addrl; + bdle_addrh =3D bdle->addrh; + + bdle_paddr =3D bdle_addrl | (bdle_addrh << 32); + DPRINTF("paddr: 0x%lx, len: 0x%x\n", bdle_paddr, bdle_sz); + } + bdle =3D (struct hda_bdle *)bdl_vaddr; for (i =3D 0; i < bdl_cnt; i++, bdle++) { bdle_sz =3D bdle->len; This is what I get in bhyve_hda.log when booting Fedora. hda_stream_start-677: stream: 0x4 bdl_cnt: 0x2 bdl_paddr: 0x75a09000 hda_stream_start-692: paddr: 0x79f0000000000000, len: 0x0 hda_stream_start-692: paddr: 0x79f2b11000000000, len: 0x0 hda_stream_start-706: Fail to get the guest virtual address I have gussed that bdl_vaddr is incorrect and bdle->addrh actualy contains bdle->addrl, and bdle->ioc is actually bdle->len. So I subtracted 4 from bdl_vaddr and got sound worked. But, unfortunatelly, it works only with Fed= ora guest. Other guests give no sound output or noise. Waiting reply from users of CURRENT. Do you have the same trouble? --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-239341-27103-ye4Cbh5bvZ>