Re: [Qemu-devel] [PATCH V5 8/8] arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma

2015-12-07 Thread Alistair Francis
On Mon, Nov 30, 2015 at 2:57 PM, Frederic Konrad
 wrote:
> On 24/11/2015 04:42, Alistair Francis wrote:
>> On Mon, Nov 23, 2015 at 6:53 PM, KONRAD Frederic
>>  wrote:
>>>
>>> Le 20/11/2015 13:21, Alistair Francis a écrit :
 On Fri, Oct 16, 2015 at 7:11 PM,   wrote:
> From: KONRAD Frederic 
>
> This adds the DP and the DPDMA to the Zynq MP platform.
>
> Signed-off-by: KONRAD Frederic 
> Reviewed-by: Peter Crosthwaite 
> Tested-By: Hyun Kwon 
> ---
>   hw/arm/xlnx-zynqmp.c | 20 
>   include/hw/arm/xlnx-zynqmp.h |  5 +
>   2 files changed, 25 insertions(+)
>
> diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c
> index b36ca3d..dfed5cd 100644
> --- a/hw/arm/xlnx-zynqmp.c
> +++ b/hw/arm/xlnx-zynqmp.c
> @@ -32,6 +32,12 @@
>   #define SATA_ADDR   0xFD0C
>   #define SATA_NUM_PORTS  2
>
> +#define DP_ADDR 0xfd4a
> +#define DP_IRQ  113
> +
> +#define DPDMA_ADDR  0xfd4c
> +#define DPDMA_IRQ   116
> +
>   static const uint64_t gem_addr[XLNX_ZYNQMP_NUM_GEMS] = {
>   0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E,
>   };
> @@ -97,6 +103,11 @@ static void xlnx_zynqmp_init(Object *obj)
>
>   object_initialize(>sata, sizeof(s->sata), TYPE_SYSBUS_AHCI);
>   qdev_set_parent_bus(DEVICE(>sata), sysbus_get_default());
> +
> +object_initialize(>dp, sizeof(s->dp), TYPE_XLNX_DP);
> +qdev_set_parent_bus(DEVICE(>dp), sysbus_get_default());
 New line

> +object_initialize(>dpdma, sizeof(s->dpdma), TYPE_XLNX_DPDMA);
> +qdev_set_parent_bus(DEVICE(>dpdma), sysbus_get_default());
>   }
>
>   static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
> @@ -258,6 +269,15 @@ static void xlnx_zynqmp_realize(DeviceState *dev,
> Error **errp)
>
>   sysbus_mmio_map(SYS_BUS_DEVICE(>sata), 0, SATA_ADDR);
>   sysbus_connect_irq(SYS_BUS_DEVICE(>sata), 0,
> gic_spi[SATA_INTR]);
> +
> +sysbus_mmio_map(SYS_BUS_DEVICE(>dp), 0, DP_ADDR);
> +sysbus_connect_irq(SYS_BUS_DEVICE(>dp), 0, gic_spi[DP_IRQ]);
 New line

> +sysbus_mmio_map(SYS_BUS_DEVICE(>dpdma), 0, DPDMA_ADDR);
> +sysbus_connect_irq(SYS_BUS_DEVICE(>dpdma), 0,
> gic_spi[DPDMA_IRQ]);
> +object_property_set_bool(OBJECT(>dp), true, "realized", );
> +object_property_set_bool(OBJECT(>dpdma), true, "realized", );
 Can you add something to check these errors?
>>>
>>> Ok.
>> Thanks
>>
>>> BTW I'll move the I2C and AUX device out of xlnx-dp and put that here.
>>> Is that ok with you?
>> That should be fine. Is there a reason you are doing that? Does
>> anything else need to access them?
> No I don't thing anything else is accessing that. It's just a screen
> specific stuff.
> If it's fine like this then I don't bother changing that.

I think it is fine as is.

Thanks,

Alistair

>
> Fred
>
>>
>> Thanks,
>>
>> Alistair
>>
>>> Thanks,
>>> Fred
>>>
 Thanks,

 Alistair

> +object_property_set_link(OBJECT(>dp), OBJECT(>dpdma), "dpdma",
> + _abort);
>   }
>
>   static Property xlnx_zynqmp_props[] = {
> diff --git a/include/hw/arm/xlnx-zynqmp.h b/include/hw/arm/xlnx-zynqmp.h
> index 4005a99..5a4d6cc 100644
> --- a/include/hw/arm/xlnx-zynqmp.h
> +++ b/include/hw/arm/xlnx-zynqmp.h
> @@ -24,6 +24,8 @@
>   #include "hw/char/cadence_uart.h"
>   #include "hw/ide/pci.h"
>   #include "hw/ide/ahci.h"
> +#include "hw/dma/xlnx_dpdma.h"
> +#include "hw/display/xlnx_dp.h"
>
>   #define TYPE_XLNX_ZYNQMP "xlnx,zynqmp"
>   #define XLNX_ZYNQMP(obj) OBJECT_CHECK(XlnxZynqMPState, (obj), \
> @@ -66,6 +68,9 @@ typedef struct XlnxZynqMPState {
>
>   char *boot_cpu;
>   ARMCPU *boot_cpu_ptr;
> +
> +XlnxDPState dp;
> +XlnxDPDMAState dpdma;
>   }  XlnxZynqMPState;
>
>   #define XLNX_ZYNQMP_H
> --
> 1.9.0
>
>
>>>
>
>



Re: [Qemu-devel] [PATCH V5 8/8] arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma

2015-11-30 Thread Frederic Konrad
On 24/11/2015 04:42, Alistair Francis wrote:
> On Mon, Nov 23, 2015 at 6:53 PM, KONRAD Frederic
>  wrote:
>>
>> Le 20/11/2015 13:21, Alistair Francis a écrit :
>>> On Fri, Oct 16, 2015 at 7:11 PM,   wrote:
 From: KONRAD Frederic 

 This adds the DP and the DPDMA to the Zynq MP platform.

 Signed-off-by: KONRAD Frederic 
 Reviewed-by: Peter Crosthwaite 
 Tested-By: Hyun Kwon 
 ---
   hw/arm/xlnx-zynqmp.c | 20 
   include/hw/arm/xlnx-zynqmp.h |  5 +
   2 files changed, 25 insertions(+)

 diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c
 index b36ca3d..dfed5cd 100644
 --- a/hw/arm/xlnx-zynqmp.c
 +++ b/hw/arm/xlnx-zynqmp.c
 @@ -32,6 +32,12 @@
   #define SATA_ADDR   0xFD0C
   #define SATA_NUM_PORTS  2

 +#define DP_ADDR 0xfd4a
 +#define DP_IRQ  113
 +
 +#define DPDMA_ADDR  0xfd4c
 +#define DPDMA_IRQ   116
 +
   static const uint64_t gem_addr[XLNX_ZYNQMP_NUM_GEMS] = {
   0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E,
   };
 @@ -97,6 +103,11 @@ static void xlnx_zynqmp_init(Object *obj)

   object_initialize(>sata, sizeof(s->sata), TYPE_SYSBUS_AHCI);
   qdev_set_parent_bus(DEVICE(>sata), sysbus_get_default());
 +
 +object_initialize(>dp, sizeof(s->dp), TYPE_XLNX_DP);
 +qdev_set_parent_bus(DEVICE(>dp), sysbus_get_default());
>>> New line
>>>
 +object_initialize(>dpdma, sizeof(s->dpdma), TYPE_XLNX_DPDMA);
 +qdev_set_parent_bus(DEVICE(>dpdma), sysbus_get_default());
   }

   static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
 @@ -258,6 +269,15 @@ static void xlnx_zynqmp_realize(DeviceState *dev,
 Error **errp)

   sysbus_mmio_map(SYS_BUS_DEVICE(>sata), 0, SATA_ADDR);
   sysbus_connect_irq(SYS_BUS_DEVICE(>sata), 0,
 gic_spi[SATA_INTR]);
 +
 +sysbus_mmio_map(SYS_BUS_DEVICE(>dp), 0, DP_ADDR);
 +sysbus_connect_irq(SYS_BUS_DEVICE(>dp), 0, gic_spi[DP_IRQ]);
>>> New line
>>>
 +sysbus_mmio_map(SYS_BUS_DEVICE(>dpdma), 0, DPDMA_ADDR);
 +sysbus_connect_irq(SYS_BUS_DEVICE(>dpdma), 0,
 gic_spi[DPDMA_IRQ]);
 +object_property_set_bool(OBJECT(>dp), true, "realized", );
 +object_property_set_bool(OBJECT(>dpdma), true, "realized", );
>>> Can you add something to check these errors?
>>
>> Ok.
> Thanks
>
>> BTW I'll move the I2C and AUX device out of xlnx-dp and put that here.
>> Is that ok with you?
> That should be fine. Is there a reason you are doing that? Does
> anything else need to access them?
No I don't thing anything else is accessing that. It's just a screen
specific stuff.
If it's fine like this then I don't bother changing that.

Fred

>
> Thanks,
>
> Alistair
>
>> Thanks,
>> Fred
>>
>>> Thanks,
>>>
>>> Alistair
>>>
 +object_property_set_link(OBJECT(>dp), OBJECT(>dpdma), "dpdma",
 + _abort);
   }

   static Property xlnx_zynqmp_props[] = {
 diff --git a/include/hw/arm/xlnx-zynqmp.h b/include/hw/arm/xlnx-zynqmp.h
 index 4005a99..5a4d6cc 100644
 --- a/include/hw/arm/xlnx-zynqmp.h
 +++ b/include/hw/arm/xlnx-zynqmp.h
 @@ -24,6 +24,8 @@
   #include "hw/char/cadence_uart.h"
   #include "hw/ide/pci.h"
   #include "hw/ide/ahci.h"
 +#include "hw/dma/xlnx_dpdma.h"
 +#include "hw/display/xlnx_dp.h"

   #define TYPE_XLNX_ZYNQMP "xlnx,zynqmp"
   #define XLNX_ZYNQMP(obj) OBJECT_CHECK(XlnxZynqMPState, (obj), \
 @@ -66,6 +68,9 @@ typedef struct XlnxZynqMPState {

   char *boot_cpu;
   ARMCPU *boot_cpu_ptr;
 +
 +XlnxDPState dp;
 +XlnxDPDMAState dpdma;
   }  XlnxZynqMPState;

   #define XLNX_ZYNQMP_H
 --
 1.9.0


>>




Re: [Qemu-devel] [PATCH V5 8/8] arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma

2015-11-23 Thread KONRAD Frederic



Le 20/11/2015 13:21, Alistair Francis a écrit :

On Fri, Oct 16, 2015 at 7:11 PM,   wrote:

From: KONRAD Frederic 

This adds the DP and the DPDMA to the Zynq MP platform.

Signed-off-by: KONRAD Frederic 
Reviewed-by: Peter Crosthwaite 
Tested-By: Hyun Kwon 
---
  hw/arm/xlnx-zynqmp.c | 20 
  include/hw/arm/xlnx-zynqmp.h |  5 +
  2 files changed, 25 insertions(+)

diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c
index b36ca3d..dfed5cd 100644
--- a/hw/arm/xlnx-zynqmp.c
+++ b/hw/arm/xlnx-zynqmp.c
@@ -32,6 +32,12 @@
  #define SATA_ADDR   0xFD0C
  #define SATA_NUM_PORTS  2

+#define DP_ADDR 0xfd4a
+#define DP_IRQ  113
+
+#define DPDMA_ADDR  0xfd4c
+#define DPDMA_IRQ   116
+
  static const uint64_t gem_addr[XLNX_ZYNQMP_NUM_GEMS] = {
  0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E,
  };
@@ -97,6 +103,11 @@ static void xlnx_zynqmp_init(Object *obj)

  object_initialize(>sata, sizeof(s->sata), TYPE_SYSBUS_AHCI);
  qdev_set_parent_bus(DEVICE(>sata), sysbus_get_default());
+
+object_initialize(>dp, sizeof(s->dp), TYPE_XLNX_DP);
+qdev_set_parent_bus(DEVICE(>dp), sysbus_get_default());

New line


+object_initialize(>dpdma, sizeof(s->dpdma), TYPE_XLNX_DPDMA);
+qdev_set_parent_bus(DEVICE(>dpdma), sysbus_get_default());
  }

  static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
@@ -258,6 +269,15 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error 
**errp)

  sysbus_mmio_map(SYS_BUS_DEVICE(>sata), 0, SATA_ADDR);
  sysbus_connect_irq(SYS_BUS_DEVICE(>sata), 0, gic_spi[SATA_INTR]);
+
+sysbus_mmio_map(SYS_BUS_DEVICE(>dp), 0, DP_ADDR);
+sysbus_connect_irq(SYS_BUS_DEVICE(>dp), 0, gic_spi[DP_IRQ]);

New line


+sysbus_mmio_map(SYS_BUS_DEVICE(>dpdma), 0, DPDMA_ADDR);
+sysbus_connect_irq(SYS_BUS_DEVICE(>dpdma), 0, gic_spi[DPDMA_IRQ]);
+object_property_set_bool(OBJECT(>dp), true, "realized", );
+object_property_set_bool(OBJECT(>dpdma), true, "realized", );

Can you add something to check these errors?


Ok.
BTW I'll move the I2C and AUX device out of xlnx-dp and put that here.
Is that ok with you?

Thanks,
Fred


Thanks,

Alistair


+object_property_set_link(OBJECT(>dp), OBJECT(>dpdma), "dpdma",
+ _abort);
  }

  static Property xlnx_zynqmp_props[] = {
diff --git a/include/hw/arm/xlnx-zynqmp.h b/include/hw/arm/xlnx-zynqmp.h
index 4005a99..5a4d6cc 100644
--- a/include/hw/arm/xlnx-zynqmp.h
+++ b/include/hw/arm/xlnx-zynqmp.h
@@ -24,6 +24,8 @@
  #include "hw/char/cadence_uart.h"
  #include "hw/ide/pci.h"
  #include "hw/ide/ahci.h"
+#include "hw/dma/xlnx_dpdma.h"
+#include "hw/display/xlnx_dp.h"

  #define TYPE_XLNX_ZYNQMP "xlnx,zynqmp"
  #define XLNX_ZYNQMP(obj) OBJECT_CHECK(XlnxZynqMPState, (obj), \
@@ -66,6 +68,9 @@ typedef struct XlnxZynqMPState {

  char *boot_cpu;
  ARMCPU *boot_cpu_ptr;
+
+XlnxDPState dp;
+XlnxDPDMAState dpdma;
  }  XlnxZynqMPState;

  #define XLNX_ZYNQMP_H
--
1.9.0







Re: [Qemu-devel] [PATCH V5 8/8] arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma

2015-11-23 Thread Alistair Francis
On Mon, Nov 23, 2015 at 6:53 PM, KONRAD Frederic
 wrote:
>
>
> Le 20/11/2015 13:21, Alistair Francis a écrit :
>>
>> On Fri, Oct 16, 2015 at 7:11 PM,   wrote:
>>>
>>> From: KONRAD Frederic 
>>>
>>> This adds the DP and the DPDMA to the Zynq MP platform.
>>>
>>> Signed-off-by: KONRAD Frederic 
>>> Reviewed-by: Peter Crosthwaite 
>>> Tested-By: Hyun Kwon 
>>> ---
>>>   hw/arm/xlnx-zynqmp.c | 20 
>>>   include/hw/arm/xlnx-zynqmp.h |  5 +
>>>   2 files changed, 25 insertions(+)
>>>
>>> diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c
>>> index b36ca3d..dfed5cd 100644
>>> --- a/hw/arm/xlnx-zynqmp.c
>>> +++ b/hw/arm/xlnx-zynqmp.c
>>> @@ -32,6 +32,12 @@
>>>   #define SATA_ADDR   0xFD0C
>>>   #define SATA_NUM_PORTS  2
>>>
>>> +#define DP_ADDR 0xfd4a
>>> +#define DP_IRQ  113
>>> +
>>> +#define DPDMA_ADDR  0xfd4c
>>> +#define DPDMA_IRQ   116
>>> +
>>>   static const uint64_t gem_addr[XLNX_ZYNQMP_NUM_GEMS] = {
>>>   0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E,
>>>   };
>>> @@ -97,6 +103,11 @@ static void xlnx_zynqmp_init(Object *obj)
>>>
>>>   object_initialize(>sata, sizeof(s->sata), TYPE_SYSBUS_AHCI);
>>>   qdev_set_parent_bus(DEVICE(>sata), sysbus_get_default());
>>> +
>>> +object_initialize(>dp, sizeof(s->dp), TYPE_XLNX_DP);
>>> +qdev_set_parent_bus(DEVICE(>dp), sysbus_get_default());
>>
>> New line
>>
>>> +object_initialize(>dpdma, sizeof(s->dpdma), TYPE_XLNX_DPDMA);
>>> +qdev_set_parent_bus(DEVICE(>dpdma), sysbus_get_default());
>>>   }
>>>
>>>   static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
>>> @@ -258,6 +269,15 @@ static void xlnx_zynqmp_realize(DeviceState *dev,
>>> Error **errp)
>>>
>>>   sysbus_mmio_map(SYS_BUS_DEVICE(>sata), 0, SATA_ADDR);
>>>   sysbus_connect_irq(SYS_BUS_DEVICE(>sata), 0,
>>> gic_spi[SATA_INTR]);
>>> +
>>> +sysbus_mmio_map(SYS_BUS_DEVICE(>dp), 0, DP_ADDR);
>>> +sysbus_connect_irq(SYS_BUS_DEVICE(>dp), 0, gic_spi[DP_IRQ]);
>>
>> New line
>>
>>> +sysbus_mmio_map(SYS_BUS_DEVICE(>dpdma), 0, DPDMA_ADDR);
>>> +sysbus_connect_irq(SYS_BUS_DEVICE(>dpdma), 0,
>>> gic_spi[DPDMA_IRQ]);
>>> +object_property_set_bool(OBJECT(>dp), true, "realized", );
>>> +object_property_set_bool(OBJECT(>dpdma), true, "realized", );
>>
>> Can you add something to check these errors?
>
>
> Ok.

Thanks

> BTW I'll move the I2C and AUX device out of xlnx-dp and put that here.
> Is that ok with you?

That should be fine. Is there a reason you are doing that? Does
anything else need to access them?

Thanks,

Alistair

>
> Thanks,
> Fred
>
>>
>> Thanks,
>>
>> Alistair
>>
>>> +object_property_set_link(OBJECT(>dp), OBJECT(>dpdma), "dpdma",
>>> + _abort);
>>>   }
>>>
>>>   static Property xlnx_zynqmp_props[] = {
>>> diff --git a/include/hw/arm/xlnx-zynqmp.h b/include/hw/arm/xlnx-zynqmp.h
>>> index 4005a99..5a4d6cc 100644
>>> --- a/include/hw/arm/xlnx-zynqmp.h
>>> +++ b/include/hw/arm/xlnx-zynqmp.h
>>> @@ -24,6 +24,8 @@
>>>   #include "hw/char/cadence_uart.h"
>>>   #include "hw/ide/pci.h"
>>>   #include "hw/ide/ahci.h"
>>> +#include "hw/dma/xlnx_dpdma.h"
>>> +#include "hw/display/xlnx_dp.h"
>>>
>>>   #define TYPE_XLNX_ZYNQMP "xlnx,zynqmp"
>>>   #define XLNX_ZYNQMP(obj) OBJECT_CHECK(XlnxZynqMPState, (obj), \
>>> @@ -66,6 +68,9 @@ typedef struct XlnxZynqMPState {
>>>
>>>   char *boot_cpu;
>>>   ARMCPU *boot_cpu_ptr;
>>> +
>>> +XlnxDPState dp;
>>> +XlnxDPDMAState dpdma;
>>>   }  XlnxZynqMPState;
>>>
>>>   #define XLNX_ZYNQMP_H
>>> --
>>> 1.9.0
>>>
>>>
>
>



Re: [Qemu-devel] [PATCH V5 8/8] arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma

2015-11-20 Thread Alistair Francis
On Fri, Oct 16, 2015 at 7:11 PM,   wrote:
> From: KONRAD Frederic 
>
> This adds the DP and the DPDMA to the Zynq MP platform.
>
> Signed-off-by: KONRAD Frederic 
> Reviewed-by: Peter Crosthwaite 
> Tested-By: Hyun Kwon 
> ---
>  hw/arm/xlnx-zynqmp.c | 20 
>  include/hw/arm/xlnx-zynqmp.h |  5 +
>  2 files changed, 25 insertions(+)
>
> diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c
> index b36ca3d..dfed5cd 100644
> --- a/hw/arm/xlnx-zynqmp.c
> +++ b/hw/arm/xlnx-zynqmp.c
> @@ -32,6 +32,12 @@
>  #define SATA_ADDR   0xFD0C
>  #define SATA_NUM_PORTS  2
>
> +#define DP_ADDR 0xfd4a
> +#define DP_IRQ  113
> +
> +#define DPDMA_ADDR  0xfd4c
> +#define DPDMA_IRQ   116
> +
>  static const uint64_t gem_addr[XLNX_ZYNQMP_NUM_GEMS] = {
>  0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E,
>  };
> @@ -97,6 +103,11 @@ static void xlnx_zynqmp_init(Object *obj)
>
>  object_initialize(>sata, sizeof(s->sata), TYPE_SYSBUS_AHCI);
>  qdev_set_parent_bus(DEVICE(>sata), sysbus_get_default());
> +
> +object_initialize(>dp, sizeof(s->dp), TYPE_XLNX_DP);
> +qdev_set_parent_bus(DEVICE(>dp), sysbus_get_default());

New line

> +object_initialize(>dpdma, sizeof(s->dpdma), TYPE_XLNX_DPDMA);
> +qdev_set_parent_bus(DEVICE(>dpdma), sysbus_get_default());
>  }
>
>  static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
> @@ -258,6 +269,15 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error 
> **errp)
>
>  sysbus_mmio_map(SYS_BUS_DEVICE(>sata), 0, SATA_ADDR);
>  sysbus_connect_irq(SYS_BUS_DEVICE(>sata), 0, gic_spi[SATA_INTR]);
> +
> +sysbus_mmio_map(SYS_BUS_DEVICE(>dp), 0, DP_ADDR);
> +sysbus_connect_irq(SYS_BUS_DEVICE(>dp), 0, gic_spi[DP_IRQ]);

New line

> +sysbus_mmio_map(SYS_BUS_DEVICE(>dpdma), 0, DPDMA_ADDR);
> +sysbus_connect_irq(SYS_BUS_DEVICE(>dpdma), 0, gic_spi[DPDMA_IRQ]);
> +object_property_set_bool(OBJECT(>dp), true, "realized", );
> +object_property_set_bool(OBJECT(>dpdma), true, "realized", );

Can you add something to check these errors?

Thanks,

Alistair

> +object_property_set_link(OBJECT(>dp), OBJECT(>dpdma), "dpdma",
> + _abort);
>  }
>
>  static Property xlnx_zynqmp_props[] = {
> diff --git a/include/hw/arm/xlnx-zynqmp.h b/include/hw/arm/xlnx-zynqmp.h
> index 4005a99..5a4d6cc 100644
> --- a/include/hw/arm/xlnx-zynqmp.h
> +++ b/include/hw/arm/xlnx-zynqmp.h
> @@ -24,6 +24,8 @@
>  #include "hw/char/cadence_uart.h"
>  #include "hw/ide/pci.h"
>  #include "hw/ide/ahci.h"
> +#include "hw/dma/xlnx_dpdma.h"
> +#include "hw/display/xlnx_dp.h"
>
>  #define TYPE_XLNX_ZYNQMP "xlnx,zynqmp"
>  #define XLNX_ZYNQMP(obj) OBJECT_CHECK(XlnxZynqMPState, (obj), \
> @@ -66,6 +68,9 @@ typedef struct XlnxZynqMPState {
>
>  char *boot_cpu;
>  ARMCPU *boot_cpu_ptr;
> +
> +XlnxDPState dp;
> +XlnxDPDMAState dpdma;
>  }  XlnxZynqMPState;
>
>  #define XLNX_ZYNQMP_H
> --
> 1.9.0
>
>



[Qemu-devel] [PATCH V5 8/8] arm: xlnx-zynqmp: Add xlnx-dp and xlnx-dpdma

2015-10-16 Thread fred . konrad
From: KONRAD Frederic 

This adds the DP and the DPDMA to the Zynq MP platform.

Signed-off-by: KONRAD Frederic 
Reviewed-by: Peter Crosthwaite 
Tested-By: Hyun Kwon 
---
 hw/arm/xlnx-zynqmp.c | 20 
 include/hw/arm/xlnx-zynqmp.h |  5 +
 2 files changed, 25 insertions(+)

diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c
index b36ca3d..dfed5cd 100644
--- a/hw/arm/xlnx-zynqmp.c
+++ b/hw/arm/xlnx-zynqmp.c
@@ -32,6 +32,12 @@
 #define SATA_ADDR   0xFD0C
 #define SATA_NUM_PORTS  2
 
+#define DP_ADDR 0xfd4a
+#define DP_IRQ  113
+
+#define DPDMA_ADDR  0xfd4c
+#define DPDMA_IRQ   116
+
 static const uint64_t gem_addr[XLNX_ZYNQMP_NUM_GEMS] = {
 0xFF0B, 0xFF0C, 0xFF0D, 0xFF0E,
 };
@@ -97,6 +103,11 @@ static void xlnx_zynqmp_init(Object *obj)
 
 object_initialize(>sata, sizeof(s->sata), TYPE_SYSBUS_AHCI);
 qdev_set_parent_bus(DEVICE(>sata), sysbus_get_default());
+
+object_initialize(>dp, sizeof(s->dp), TYPE_XLNX_DP);
+qdev_set_parent_bus(DEVICE(>dp), sysbus_get_default());
+object_initialize(>dpdma, sizeof(s->dpdma), TYPE_XLNX_DPDMA);
+qdev_set_parent_bus(DEVICE(>dpdma), sysbus_get_default());
 }
 
 static void xlnx_zynqmp_realize(DeviceState *dev, Error **errp)
@@ -258,6 +269,15 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error 
**errp)
 
 sysbus_mmio_map(SYS_BUS_DEVICE(>sata), 0, SATA_ADDR);
 sysbus_connect_irq(SYS_BUS_DEVICE(>sata), 0, gic_spi[SATA_INTR]);
+
+sysbus_mmio_map(SYS_BUS_DEVICE(>dp), 0, DP_ADDR);
+sysbus_connect_irq(SYS_BUS_DEVICE(>dp), 0, gic_spi[DP_IRQ]);
+sysbus_mmio_map(SYS_BUS_DEVICE(>dpdma), 0, DPDMA_ADDR);
+sysbus_connect_irq(SYS_BUS_DEVICE(>dpdma), 0, gic_spi[DPDMA_IRQ]);
+object_property_set_bool(OBJECT(>dp), true, "realized", );
+object_property_set_bool(OBJECT(>dpdma), true, "realized", );
+object_property_set_link(OBJECT(>dp), OBJECT(>dpdma), "dpdma",
+ _abort);
 }
 
 static Property xlnx_zynqmp_props[] = {
diff --git a/include/hw/arm/xlnx-zynqmp.h b/include/hw/arm/xlnx-zynqmp.h
index 4005a99..5a4d6cc 100644
--- a/include/hw/arm/xlnx-zynqmp.h
+++ b/include/hw/arm/xlnx-zynqmp.h
@@ -24,6 +24,8 @@
 #include "hw/char/cadence_uart.h"
 #include "hw/ide/pci.h"
 #include "hw/ide/ahci.h"
+#include "hw/dma/xlnx_dpdma.h"
+#include "hw/display/xlnx_dp.h"
 
 #define TYPE_XLNX_ZYNQMP "xlnx,zynqmp"
 #define XLNX_ZYNQMP(obj) OBJECT_CHECK(XlnxZynqMPState, (obj), \
@@ -66,6 +68,9 @@ typedef struct XlnxZynqMPState {
 
 char *boot_cpu;
 ARMCPU *boot_cpu_ptr;
+
+XlnxDPState dp;
+XlnxDPDMAState dpdma;
 }  XlnxZynqMPState;
 
 #define XLNX_ZYNQMP_H
-- 
1.9.0