qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] dma: xlnx-zynq-devcfg: Fix up XLNX_ZYNQ_DEVCFG_


From: Nathan Rossi
Subject: Re: [Qemu-devel] [PATCH] dma: xlnx-zynq-devcfg: Fix up XLNX_ZYNQ_DEVCFG_R_MAX
Date: Thu, 22 Sep 2016 22:19:54 +1000

On Thu, Sep 22, 2016 at 6:40 AM, Alistair Francis
<address@hidden> wrote:
> On Wed, Sep 21, 2016 at 11:09 AM, Nathan Rossi <address@hidden> wrote:
>> Whilst according to the Zynq TRM this device covers a register region of
>> 0x000 - 0x120. The register region is also shared with XADCIF prefix
>> registers at 0x100 and above. Due to how the devcfg and the xadc devices
>> are implemented in QEMU these are separate models with individual mmio
>> regions. As such the region registered by the devcfg overlaps with the
>> xadc when initialized in a machine model (e.g. xilinx-zynq-a9).
>>
>> This patch fixes up the incorrect region size, where
>> XLNX_ZYNQ_DEVCFG_R_MAX is missing its '/ 4' causing it to be 0x460 in
>> size. As well as setting the region size to the 0x0 - 0x100 region so
>> that an xadc device instance can be registered in the correct region to
>> pair with the devcfg device instance.
>>
>> Mapping with XLNX_ZYNQ_DEVCFG_R_MAX = 0x118:
>>   dev: xlnx.ps7-dev-cfg, id ""
>>     mmio 00000000f8007000/0000000000000460
>>   dev: xlnx,zynq-xadc, id ""
>>     mmio 00000000f8007100/0000000000000020
>>
>> Mapping with XLNX_ZYNQ_DEVCFG_R_MAX = 0x100 / 4:
>>   dev: xlnx.ps7-dev-cfg, id ""
>>     mmio 00000000f8007000/0000000000000100
>>   dev: xlnx,zynq-xadc, id ""
>>     mmio 00000000f8007100/0000000000000020
>>
>> Signed-off-by: Nathan Rossi <address@hidden>
>
> Good catch. What came up that caused you to find this?

It appeared as a regression on the xilinx-zynq-a9 machine when booting
a Linux kernel/device-tree that made use of the xadc. It hangs during
kernel boot when it attempts to access the xadc registers.

Regards,
Nathan

>
> Can this go via the target-arm queue Peter?
>
> Reviewed-by: Alistair Francis <address@hidden>
>
> Thanks,
>
> Alistair
>
>> ---
>>  include/hw/dma/xlnx-zynq-devcfg.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/include/hw/dma/xlnx-zynq-devcfg.h 
>> b/include/hw/dma/xlnx-zynq-devcfg.h
>> index d40e5c8df6..9f5119a89a 100644
>> --- a/include/hw/dma/xlnx-zynq-devcfg.h
>> +++ b/include/hw/dma/xlnx-zynq-devcfg.h
>> @@ -34,7 +34,7 @@
>>  #define XLNX_ZYNQ_DEVCFG(obj) \
>>      OBJECT_CHECK(XlnxZynqDevcfg, (obj), TYPE_XLNX_ZYNQ_DEVCFG)
>>
>> -#define XLNX_ZYNQ_DEVCFG_R_MAX 0x118
>> +#define XLNX_ZYNQ_DEVCFG_R_MAX (0x100 / 4)
>>
>>  #define XLNX_ZYNQ_DEVCFG_DMA_CMD_FIFO_LEN 10
>>
>> --
>> 2.9.3
>>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]