UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Observer a.gamez
Observer
1,823 Views
Registered: ‎05-12-2016

AXI DMA with microblaze won't reset

Hi!

 

I'm trying to use the tri mode ethernet core linked against AXI DMA core under Linux.

 

However, I'm getting this error:

 

xilinx_axienet 44a10000.ethernet eth0: __axienet_device_reset: DMA reset timeout!

 

The origin of this bug is this piece of code on the linux kernel driver:

 

        axienet_dma_out32(lp, offset, XAXIDMA_CR_RESET_MASK);
        timeout = DELAY_OF_ONE_MILLISEC;
        while (axienet_dma_in32(lp, offset) & XAXIDMA_CR_RESET_MASK) {
                udelay(1);
                if (--timeout == 0) {
                        netdev_err(lp->ndev, "%s: DMA reset timeout!\n",
                                   __func__);
                        break;
                }
        }

What I gather from this is that DMA core is being requested a reset by writing a 1 on bit 2 from the DMA control register and waiting for it to go down again to 0, as per PG021_axi_dma.pdf: it will stay at 1 while reset is in progress, and will fall down to 0 when reset has finished.

 

Given that I'm not able to stablish a network communication using this method and that this is the first error that appears, I'm guessing that the DMA core isn't working as required. I'd expect it at least to being reseted. I've tried to increase the timeout to levels beyond sanity (several seconds), but the core never ever returns a 0. Maybe the core isn't properly clocked or something.

 

So, what may be happening here?

 

Thanks!

0 Kudos
2 Replies
Observer a.gamez
Observer
1,794 Views
Registered: ‎05-12-2016

Re: AXI DMA with microblaze won't reset

I've introduced ILA onto DMA chipscope and I'm seeing that MM2S reset seems to work. The system sends a write to offset 00h requesting a reset 0b100, and a later read of that register returns a 0 on that bit.

 

However, when performing the same operation with the S2MM_DMACR at offset 30h, the system sends a reset by writing 0b100, but later reads always return this bit set to 1, so it seems this side of the core isn't getting reseted at all.

 

Do I have something misconnected? I don't get why this module won't obey as does the other one...

 

dma.png

0 Kudos
Observer gustoff
Observer
36 Views
Registered: ‎07-07-2016

Re: AXI DMA with microblaze won't reset

Hi! 

I have the same problem but under Zynq-7010. Why Xilinx's support is ignoring this thread? 

Have anybody resolve this issue?

With regards,
Gustov Vladimir

0 Kudos