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: Alistair Francis
Subject: Re: [Qemu-devel] [PATCH] dma: xlnx-zynq-devcfg: Fix up XLNX_ZYNQ_DEVCFG_R_MAX
Date: Thu, 22 Sep 2016 10:04:43 -0700

On Thu, Sep 22, 2016 at 5:19 AM, Nathan Rossi <address@hidden> wrote:
> 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.

Good catch, thanks for fixing this.

Thanks,

Alistair

>
> 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]