On 16/10/2015 23:57, Alistair Francis wrote: > On Fri, Oct 16, 2015 at 6:41 AM, <fred.kon...@greensocs.com> wrote: >> From: KONRAD Frederic <fred.kon...@greensocs.com> >> >> This is the fifth version of this patch-set of the implementation of the >> Xilinx >> DisplayPort and DPDMA. >> >> This fifth version moves some headers files to the right directory. >> >> Second 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 to I2C through AUX >> commands. The drivers requires I2C broadcast write to be modeled as well >> which >> seems to be missing currently upstream. >> >> The tree can be cloned at: >> g...@git.greensocs.com:fkonrad/xilinx_dp.git branch xilinx_dp_v5_release > I can't seem to access this, is it public? > > Thanks, > > Alistair oops, sorry for that. Should be ok now.
Thanks, Fred >> 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 >> >> 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 >> introduce aux-bus >> i2c: implement broadcast write >> introduce dpcd module >> introduce xlnx-dpdma >> introduce xlnx-dp >> arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma >> >> Peter Maydell (1): >> hw/i2c-ddc.c: Implement DDC I2C slave >> >> default-configs/aarch64-softmmu.mak | 3 + >> hw/arm/xlnx-zynqmp.c | 20 + >> hw/display/Makefile.objs | 2 + >> hw/display/dpcd.c | 171 +++++ >> hw/display/xlnx_dp.c | 1370 >> +++++++++++++++++++++++++++++++++++ >> hw/dma/Makefile.objs | 1 + >> hw/dma/xlnx_dpdma.c | 788 ++++++++++++++++++++ >> hw/i2c/Makefile.objs | 1 + >> hw/i2c/core.c | 131 ++-- >> hw/i2c/i2c-ddc.c | 302 ++++++++ >> hw/misc/Makefile.objs | 1 + >> hw/misc/aux.c | 374 ++++++++++ >> include/hw/arm/xlnx-zynqmp.h | 5 + >> 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 | 36 + >> include/hw/misc/aux.h | 125 ++++ >> 18 files changed, 3575 insertions(+), 55 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 >> >>