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 RFC is an example for how to do this for AXIEnet only. If acceptable, this change pattern will also be applied to AXIDMA.
Patches 1-6 are cleanup of axienet as per the current QOM styling guidelines and can be cherry-picked off the front. Patch 7 is the proxy patch. Patch 8 is an example stub for how a secondary connection can be created. changed from v1: Removed former P1&2 (already merged) Address Andreas review Refactor axienet to be more QOM friendly. Peter Crosthwaite (8): xilinx_axienet: typedef XilinxAXIEnet struct xilinx_axienet: Defined and use type cast macro xilinx_axienet: Register reset properly xilinx_axienet: 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_axienet: stub out second stream connection hw/petalogix_ml605_mmu.c | 12 +++- hw/xilinx_axienet.c | 170 +++++++++++++++++++++++++++++++++++---------- 2 files changed, 141 insertions(+), 41 deletions(-)