From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:56622) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1US1H8-0005xM-FL for qemu-devel@nongnu.org; Tue, 16 Apr 2013 04:30:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1US1H6-000634-SJ for qemu-devel@nongnu.org; Tue, 16 Apr 2013 04:30:02 -0400 Received: from mail-ee0-f49.google.com ([74.125.83.49]:60554) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1US1H6-00062u-Lc for qemu-devel@nongnu.org; Tue, 16 Apr 2013 04:30:00 -0400 Received: by mail-ee0-f49.google.com with SMTP id l10so103498eei.36 for ; Tue, 16 Apr 2013 01:29:59 -0700 (PDT) Date: Tue, 16 Apr 2013 10:29:54 +0200 From: "Edgar E. Iglesias" Message-ID: <20130416082954.GI26210@smtp.vpn> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] [PATCH v6 00/16] Stream Patches List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: peter.crosthwaite@xilinx.com Cc: qemu-devel@nongnu.org On Tue, Apr 16, 2013 at 10:18:08AM +1000, peter.crosthwaite@xilinx.com wrote: > From: Peter Crosthwaite > > Hi all. The Xilinx AXIEnet and DMA devices have two AXI stream connections > (control and data), only one of which is currently modelled (data). AXI stream > is modelled using the stream QOM interface described in stream.h. Unfortunately, > interfaces have no nice way of modelling multiple connections of the same type. > So to overcome this I created a secondary object which acts as a proxy for the > stream connection. Multiple connections can be implemented using multiple > proxies and stream masters link to the relevant proxy, rather than the ethernet > device itself. This Series changes AXI Enet and DMA to be connected as such. > > Also changed the stream interface to implement flow control handshaking. This > is needed for the AXIEnet to be be able to implement the net can_receive() flow > control. > > Patches 1-10 are low-impact cleanup of axienet/dma as per the current QOM > styling guidelines and can be cherry-picked off the front. Applied, thanks Peter. Cheers > > changed from v5: > rebased against hw ro-organisation > changed from v4: > resynchronized control flow stream API > reordered series for better consistency. > Folded patch 17 in 16 (app array length fix) > Fixed DMA tx path halted bit > changed from v3: > Changed from asynchronous flow control to synchronous (Edgar review) > changed from v2: > Reordered patches (from low impact -> high impact) > Added styling refactoring of AXIDMA > Added asynchronous patches > Removed dummy second stream connection patch (former patch 8) > Added (functional) second stream connection > changed from v1: > Removed former P1&2 (already merged) > Address Andreas review > Refactor axienet to be more QOM friendly. > > > Peter Crosthwaite (16): > xilinx_axienet: typedef XilinxAXIEnet struct > xilinx_axienet: Defined and use type cast macro > xilinx_axienet: Register reset properly > xilinx_axienet: converted init->realize > xilinx_axidma: typedef XilinxAXIDMA struct > xilinx_axidma: Defined and use type cast macro > xilinx_axidma: Register reset properly > xilinx_axidma: converted init->realize > petalogix_ml605_mmu: Fix machine node attachment > petalogix_ml605_mmu: Attach ethernet to machine > xilinx_axienet: Create Proxy object for stream > xilinx_axidma: Create Proxy object for stream > xilinx_axidma: Fix rx/tx halted bit. > stream: Add flow control API > xilinx_axienet/dma: Implement rx path flow control > stream: Remove app argument hack > > hw/core/stream.c | 15 ++- > hw/dma/xilinx_axidma.c | 261 +++++++++++++++++++++++++++-------- > hw/microblaze/petalogix_ml605_mmu.c | 28 +++- > hw/net/xilinx_axienet.c | 255 +++++++++++++++++++++++++++------- > include/hw/stream.h | 36 ++++- > include/hw/xilinx.h | 21 ++- > 6 files changed, 483 insertions(+), 133 deletions(-) >