qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH V7 0/9] Xilinx DisplayPort.
@ 2016-02-01 15:43 fred.konrad
  2016-02-01 15:43 ` [Qemu-devel] [PATCH V7 1/9] i2cbus: remove unused dev field fred.konrad
                   ` (8 more replies)
  0 siblings, 9 replies; 13+ messages in thread
From: fred.konrad @ 2016-02-01 15:43 UTC (permalink / raw)
  To: qemu-devel
  Cc: edgar.iglesias, peter.maydell, hyunk, mark.burton,
	alistair.francis, crosthwaitepeter, guillaume.delbergue,
	fred.konrad

From: KONRAD Frederic <fred.konrad@greensocs.com>

This is the 7th version of this patch-set of the implementation of the Xilinx
DisplayPort and DPDMA.

This 7th version fixes some minors issues.

The fourth patch introduces an AUX bus needed by the DP to read the DPCD.
It's also possible to connect an I2C device on it to do I2C through AUX
commands. The drivers requires I2C broadcast write to be modeled as well which
seemed to be missing currently upstream.

The tree can be cloned at:
git@git.greensocs.com:fkonrad/xilinx_dp.git branch xilinx_dp_v7_release

Details of the DPDMA part:
 * DPDMA is implemented as a QEMU SYSBUS device.
 * Interrupts are implemented except the axi error and fifo.

Details of the XILINX-DP:
 * DP is also implemented as a QEMU SYSBUS. Multiple memory regions are used to
   avoid having a single big region as there are holes in the DP memory map.
 * An aux-bus has been implemented, it creates a memory map for aux slaves and
   has an i2c bus (which is already implemented in QEMU).
 * The normal programmable i2c clock and controller implementation is missing
   from the QEMU tree so the easiest way for us was to implement a dummy-clk
   driver in the kernel. It's a clock which does nothing but fakes a clock such
   that the DPDMA driver works. The patch will be send separately.
 * The graphic plane works on channel 3, video on channel 0 and audios on
   channel 4 and 5.

Thanks,
Fred

V6 -> V7 changes:
  * globally:
    * Rebased on current master (0430891ce162b986c6e02a7729a942ecd2a32ca4).
    * Pick Peter's patch-set and rebase it on broadcast patch.
  * xlnx-dp:
    * Print some unimplemented debug trace instead of aborting.
  * zynq-mp:
    * Set realized before map the device.
    * Conding style fix.
  * aux:
    * Factorize i2c access with i2c_send_recv.

V5 -> V6 changes:
  * globally:
    * Rebased on current master (38a762fec63fd5c035aae29ba9a77d357e21e4a7).
    * Fix some coding style issues.

V4 -> V5 changes:
  * aux:
    * Move the header include/hw => include/hw/misc
  * dpcd:
    * Move the header hw/display => include/hw/display
  * i2c-ddc:
    * Move the header hw/i2c => include/hw/i2c
  * xlnx-dpdma:
    * Move the header hw/dma => include/hw/dma
    * Fix some styles issues.
  * xlnx-dp:
    * Move the header hw/display => include/hw/display
  * globally:
    * Rebased on current master (c49d3411faae8ffaab8f7e5db47405a008411c10).

V3 -> V4 changes:
  * xlnx_dpdma:
    * Initialize operation_finished during reset.
    * Add a function to trigger a VSYNC interrupt from the xlnx_dp.
  * xlnx_dp:
    * Fix the default pixman format for video buffer.
    * Remove unused buffer.
  * dpcd:
    * Add the missing DPCD_LANE_X_STATUS.
    * Set status field for all ports to avoid driver error.
    * Use 4 lines by default.
    * Use guest error in case of an outbound access.
  * i2c broadcast:
    * Use a list of device instead of relying on broadcast field to remove duped
      code.
  * other:
    * rebased on current master (774ee4772b6838b78741ea52d4bf26b8922244c5)

V2 -> V3 changes:
  * dpcd:
    * Add a CONFIG_DPCD.
  * i2c-ddc:
    * Fill in VMSD.
  * aux:
    * Remove address field.
    * Add a CONFIG_AUX.
  * dpdma:
    * Fill in VMSD.
    * Some coding style changes.
  * dp:
    * Fill in VMSD.
    * Coding style changes.

V1 -> V2 changes:
  * xlnx-zynqmp:
    * Remove the dummy object_property_add_child(..).
  * dpcd:
    * Compile only when the ZYNQMP platform is compiled.
    * Use qemu_log instead of printf.
    * Compile test debug traces.
    * Remove the unused current_reg.
    * Remove the blank realize.
    * Use dpcd_ prefixes instead of aux_ prefixes.
    * Add a reset callback.
    * Add the VMSD.
    * Add size constraint in the MemoryRegionOps structure instead of asserting.
    * Style fixes.
  * aux:
    * Compile only when the ZYNQMP platform is compiled.
    * Remove the class init and the class for aux-slave.
  * dpdma:
    * Compile only when the ZYNQMP platform is compiled.
    * Unify per channel macro in one, simplify the switch case.
    * Use extractXX.
    * Make DPDMA_GBL an or'ed register.
  * dp:
    * Compile only when the ZYNQMP platform is compiled.
    * Don't look at the audio channel count.
    * Use a third pixman plane when we do blending.
  * other:
    * Drop the useless "console: add qemu_alloc_display_format." patch as
      suggested by Gerd.
    * Rebase on current master (f3e3b083d4c266ea864ae3c83da49d4086857679).


KONRAD Frederic (7):
  i2cbus: remove unused dev field
  i2c: implement broadcast write
  introduce aux-bus
  introduce dpcd module
  introduce xlnx-dpdma
  introduce xlnx-dp
  arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma

Peter Crosthwaite (1):
  i2c: Factor our send() and recv() common logic

Peter Maydell (1):
  hw/i2c-ddc.c: Implement DDC I2C slave

 default-configs/aarch64-softmmu.mak |    3 +
 hw/arm/xlnx-zynqmp.c                |   32 +-
 hw/display/Makefile.objs            |    2 +
 hw/display/dpcd.c                   |  171 +++++
 hw/display/xlnx_dp.c                | 1363 +++++++++++++++++++++++++++++++++++
 hw/dma/Makefile.objs                |    1 +
 hw/dma/xlnx_dpdma.c                 |  792 ++++++++++++++++++++
 hw/i2c/Makefile.objs                |    1 +
 hw/i2c/core.c                       |  158 ++--
 hw/i2c/i2c-ddc.c                    |  304 ++++++++
 hw/misc/Makefile.objs               |    1 +
 hw/misc/aux.c                       |  291 ++++++++
 include/hw/arm/xlnx-zynqmp.h        |    4 +
 include/hw/display/dpcd.h           |  105 +++
 include/hw/display/xlnx_dp.h        |  110 +++
 include/hw/dma/xlnx_dpdma.h         |   85 +++
 include/hw/i2c/i2c-ddc.h            |   38 +
 include/hw/i2c/i2c.h                |    1 +
 include/hw/misc/aux.h               |  124 ++++
 19 files changed, 3524 insertions(+), 62 deletions(-)
 create mode 100644 hw/display/dpcd.c
 create mode 100644 hw/display/xlnx_dp.c
 create mode 100644 hw/dma/xlnx_dpdma.c
 create mode 100644 hw/i2c/i2c-ddc.c
 create mode 100644 hw/misc/aux.c
 create mode 100644 include/hw/display/dpcd.h
 create mode 100644 include/hw/display/xlnx_dp.h
 create mode 100644 include/hw/dma/xlnx_dpdma.h
 create mode 100644 include/hw/i2c/i2c-ddc.h
 create mode 100644 include/hw/misc/aux.h

-- 
1.9.0

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-02-09  1:10 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-01 15:43 [Qemu-devel] [PATCH V7 0/9] Xilinx DisplayPort fred.konrad
2016-02-01 15:43 ` [Qemu-devel] [PATCH V7 1/9] i2cbus: remove unused dev field fred.konrad
2016-02-01 15:43 ` [Qemu-devel] [PATCH V7 2/9] i2c: implement broadcast write fred.konrad
2016-02-01 15:43 ` [Qemu-devel] [PATCH V7 3/9] i2c: Factor our send() and recv() common logic fred.konrad
2016-02-08 23:56   ` Alistair Francis
2016-02-01 15:43 ` [Qemu-devel] [PATCH V7 4/9] introduce aux-bus fred.konrad
2016-02-09  0:23   ` Alistair Francis
2016-02-01 15:43 ` [Qemu-devel] [PATCH V7 5/9] introduce dpcd module fred.konrad
2016-02-01 15:43 ` [Qemu-devel] [PATCH V7 6/9] hw/i2c-ddc.c: Implement DDC I2C slave fred.konrad
2016-02-01 15:43 ` [Qemu-devel] [PATCH V7 7/9] introduce xlnx-dpdma fred.konrad
2016-02-01 15:43 ` [Qemu-devel] [PATCH V7 8/9] introduce xlnx-dp fred.konrad
2016-02-09  1:10   ` Alistair Francis
2016-02-01 15:43 ` [Qemu-devel] [PATCH V7 9/9] arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma fred.konrad

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).