From owner-soc-status@freebsd.org Sun Jun 26 17:49:05 2016 Return-Path: Delivered-To: soc-status@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CA94BB81B98 for ; Sun, 26 Jun 2016 17:49:05 +0000 (UTC) (envelope-from ionutalex.teaca@gmail.com) Received: from mail-oi0-x235.google.com (mail-oi0-x235.google.com [IPv6:2607:f8b0:4003:c06::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8F6C32457 for ; Sun, 26 Jun 2016 17:49:05 +0000 (UTC) (envelope-from ionutalex.teaca@gmail.com) Received: by mail-oi0-x235.google.com with SMTP id f189so174914254oig.3 for ; Sun, 26 Jun 2016 10:49:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=nvDQmmhsjWhzdGgFf3T6KTpDqgyY08HgjtMFRNhk9Xs=; b=PScfxlllz8hE5JrimB0tmPm9BUJXMduwf5I5ocr9tqzvO2bLyTiTNVmzkM9ihLYNks o3Dyr9gmcGmxJRHGFXxTdG+orNkC2yjinoB6LPwSDmmdThYYe56UFiJZeutzgCA5o8Bn Hft4WjvA5CmzAfp1PQlyN4YcVWbkdY2ecEpQGdAk85X5kp3THadkwkV2UQUuz/q1qUFT NAbaLrl77HMc9Yioi/cgy0RoLxFifvUCMG241tKPtmjWx7RGbjYvHNUSJu8oi3s2MH4M LVOu16Q2fp02t7udmWax8t7EeoHC0jTirr7fMmNDPnRO1soApLEHCU03fT7mbPW6fAeB GCDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=nvDQmmhsjWhzdGgFf3T6KTpDqgyY08HgjtMFRNhk9Xs=; b=S5qWh3PkLM59P6/BDeETJ/I7slz7JZ9b35wKWxIL41+X04vzgyp7JSPF5c4uEDrPc5 xRGcBqDy+Gd5OLAvtAkSxe0wqoa8pEDdC1dYmWpRN2IquK0eKgZOIHXI4+4v09ysUgbW IHXTg3vyCO4E3Xljhb3fbqDAOWQYLD2v9aciX02Jo56+QowHeLbOCYE04l1Jd5w8hPuS jq6tL+xoefsSydOpaUE49OipQRZhD0ECrZf7JUStj+GRUXenjOwh5oj5KPFUwDr54HG8 H+U5lscPWqQ/KwixZpWWzCsfn+Yf2JGQqWWRK2k7sbX2Z7nmkkAfJdl5epaAk+ue9tdl /9hg== X-Gm-Message-State: ALyK8tLVeAd+rHxvGk39mG+Olkjx4inmfj/0hEp21YJvyq/z1e4iHuJuB2kGMP/cIcEz0RehMr8cHoe75Ktlmw== X-Received: by 10.157.40.57 with SMTP id m54mr9264920otb.152.1466963344856; Sun, 26 Jun 2016 10:49:04 -0700 (PDT) MIME-Version: 1.0 Received: by 10.182.49.133 with HTTP; Sun, 26 Jun 2016 10:49:04 -0700 (PDT) In-Reply-To: References: From: Alex Teaca Date: Sun, 26 Jun 2016 20:49:04 +0300 Message-ID: Subject: Re: [GSOC 2016] HD Audio Emulation For Bhyve Status To: soc-status@freebsd.org Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 X-BeenThere: soc-status@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Summer of Code Status Reports and Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Jun 2016 17:49:05 -0000 Hi, Short update. - implement the stream management operations (stream_start, stream_stop, hda stream interrupts, hda_transfer) in the hda and hda codec - create one thread per stream in the initialization of the codec which runs as long as the stream is started and waits on a conditional variable when the stream is stopped. - implement the Audio Player used to play samples to the sound device (/dev/dsp) (3 functions: audio_init, audio_set_params and audio_playback) Results: manage to play music in a bhyve virtual machine :) Thanks, Alex On Fri, Jun 17, 2016 at 9:52 PM, Alex Teaca wrote: > Hi, > > I added a pin widget (Line-out) and now the Audio Output Widget is > enabled. The codec is installed as pcm0: > root@vm_hda:~ # cat /dev/sndstat > Installed devices: > pcm0: (play) default > > The next step is to implement the stream management operations such as > start_stream and stop_stream. I have taken a look on the Stream management > chapter from the HDA specification in order to get familiar with these > operations and study the driver implementation (hdaa_audio_setup, > hdac_stream_start, hdac_stream_stop) to see what registers are programmed > and what commands are sent to the codec. > > Together with Peter and Alexander we chose the design of the interaction > between the HDA controller, codecs and Audio player regarding the stream > management. > > Thanks, > Alex > > > On Mon, Jun 6, 2016 at 10:01 PM, Alex Teaca > wrote: > >> Hi, >> >> Here is the status with the features I have implemented so far. >> >> - set up the HDA controller as a PCI device in bhyve >> - design the layout of registers and implement the read and write access >> to the registers >> - implement the CORB and RIRB mechanisms in order to get commands from >> driver and respond back >> - add the hdac_codec module and implement the interface of communication >> between the hda controller and codec >> - describe the hda codec parameters for each node (ROOT, FG and AUDIO >> OUTPUT) >> - handle the GET_PARAMETER verb >> >> At the moment there is only one widget: the Autio Output Widget and the >> hda driver has disabled it because it does not find any Pin widget. >> >> The plan is to add the Pin output widget and to continue with the streams >> data in order to play some samples. >> >> Thanks, >> Alex >> >> >