On Mon, Oct 19, 2015 at 1:13 PM, Frederic Konrad <fred.kon...@greensocs.com> wrote: > 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.
Great! That works Thanks, Alistair > > 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 >>> >>> > >