Post Go back to editing

Remove transmit chain from ADRV9009 Design

Hi,

I am not using the transmit chain in the adrv9009/zcu102 reference design. What steps should i follow to safely remove the chain and free up FPGA resources?

Thanks,

Andy

 

Parents
  • Hi Andy,

    Remove all IPs from the Tx path starting from the DMA untill the jesd_link.
    Similar thread on removing the Rx and using Tx.

    Andrei

  • Hi Andrei,

    Thanks for your response. A couple of clarifications:

    1) So in the block diagram within Vivado I can remove the axi_hp3_interconnect and the tx_adrv9009_tpl_core and all blocks in between these?

    2) I think i then need to remove the corresponding blocks in /linux-xlnx/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev10-adrv9009.dts? Do i need to do anything with /linux-xlnx/arch/arm64/boot/dts/xilinx/adi-adrv9009.dtsi or any other files?

    3) Will the scope on IIO_Oscilloscope still work?

    Thanks

     

  • ADRV9009 without TX is effectively a ADRV9008-1.

    Please use this device tree instead:

    https://github.com/analogdevicesinc/linux/blob/master/arch/arm64/boot/dts/xilinx/zynqmp-zcu102-rev10-adrv9008-1.dts

    OSC will still work.

    -Michael

  • Hi

    This does not seem to work.

    I opened the block diagram in vivado and removed the dma to the jesd link. I also replaced zynqmp-zcu102-rev10-adrv9009.dts for zcu102-rev10-adrv9008-1. All builds fine, but when the kernel starts it hangs (see below). Any ideas?

    6.818785] Synchronous External Abort: synchronous external abort (0x96000010) at 0xffffff800d274048
    [ 6.827999] Internal error: : 96000010 [#1] SMP
    [ 6.832514] Modules linked in:
    [ 6.835556] CPU: 1 PID: 125 Comm: kworker/1:1 Not tainted 4.14.0 #1
    [ 6.841811] Hardware name: ZynqMP ZCU102 Rev1.0 (DT)
    [ 6.846768] Workqueue: events deferred_probe_work_func
    [ 6.851890] task: ffffffc87b01a100 task.stack: ffffff80093c0000
    [ 6.857798] PC is at adrv9009_post_setup+0x30/0xd8
    [ 6.862578] LR is at axiadc_probe+0x360/0x6d8
    [ 6.866917] pc : [<ffffff80087c6568>] lr : [<ffffff8008788148>] pstate: 40000045
    [ 6.874295] sp : ffffff80093c3b80
    [ 6.877594] x29: ffffff80093c3b90 x28: ffffff8008c5b0b0
    [ 6.882889] x27: ffffff8008bb1000 x26: 0000000000000004
    [ 6.888184] x25: ffffffc87b007e80 x24: 0000000000000001
    [ 6.893480] x23: ffffffc87b0b0010 x22: ffffffc87a5ddc18
    [ 6.898775] x21: ffffffc87b0b0000 x20: ffffffc87a91a000
    [ 6.904070] x19: ffffffc87a91a500 x18: 0000000000000001
    [ 6.909365] x17: 0000000000000000 x16: 0000000000000000
    [ 6.914661] x15: ffffffffffffffff x14: 0000000000000000
    [ 6.919956] x13: 0000000000000000 x12: 0000000000000000
    [ 6.925252] x11: 0000000000000000 x10: 0000000000000000
    [ 6.930547] x9 : 0000000000000000 x8 : 0000000000000003
    [ 6.935842] x7 : 0000000000000000 x6 : 0000000000000004
    [ 6.941137] x5 : 000000000000000a x4 : ffffffc87a91a858
    [ 6.946433] x3 : ffffffc87a91a500 x2 : 0000000000004048
    [ 6.951728] x1 : ffffffc87a5ddc18 x0 : ffffff800d274048
    [ 6.957025] Process kworker/1:1 (pid: 125, stack limit = 0xffffff80093c0000)
    [ 6.964055] Call trace:
    [ 6.966488] Exception stack(0xffffff80093c3a40 to 0xffffff80093c3b80)
    [ 6.972912] 3a40: ffffff800d274048 ffffffc87a5ddc18 0000000000004048 ffffffc87a91a500
    [ 6.980724] 3a60: ffffffc87a91a858 000000000000000a 0000000000000004 0000000000000000
    [ 6.988537] 3a80: 0000000000000003 0000000000000000 0000000000000000 0000000000000000
    [ 6.996350] 3aa0: 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff
    [ 7.004163] 3ac0: 0000000000000000 0000000000000000 0000000000000001 ffffffc87a91a500
    [ 7.011976] 3ae0: ffffffc87a91a000 ffffffc87b0b0000 ffffffc87a5ddc18 ffffffc87b0b0010
    [ 7.019788] 3b00: 0000000000000001 ffffffc87b007e80 0000000000000004 ffffff8008bb1000
    [ 7.027601] 3b20: ffffff8008c5b0b0 ffffff80093c3b90 ffffff8008788148 ffffff80093c3b80
    [ 7.035414] 3b40: ffffff80087c6568 0000000040000045 ffffffc87a91a500 ffffffc87a91a000
    [ 7.043227] 3b60: ffffffffffffffff ffffffc87a5ddc18 ffffff80093c3b90 ffffff80087c6568
    [ 7.051040] [<ffffff80087c6568>] adrv9009_post_setup+0x30/0xd8
    [ 7.056857] [<ffffff800855faf8>] platform_drv_probe+0x58/0xb8
    [ 7.062594] [<ffffff800855dee4>] driver_probe_device+0x22c/0x2d8
    [ 7.068584] [<ffffff800855e0ec>] __device_attach_driver+0x9c/0xf8
    [ 7.074660] [<ffffff800855c0e4>] bus_for_each_drv+0x4c/0x98
    [ 7.080216] [<ffffff800855db88>] __device_attach+0xc0/0x138
    [ 7.085772] [<ffffff800855e1a8>] device_initial_probe+0x10/0x18
    [ 7.091675] [<ffffff800855d044>] bus_probe_device+0x94/0xa0
    [ 7.097231] [<ffffff800855d4f8>] deferred_probe_work_func+0xa0/0x148
    [ 7.103569] [<ffffff80080b22bc>] process_one_work+0x1dc/0x348
    [ 7.109306] [<ffffff80080b2674>] worker_thread+0x24c/0x488
    [ 7.114775] [<ffffff80080b8104>] kthread+0x12c/0x130
    [ 7.119723] [<ffffff8008084a90>] ret_from_fork+0x10/0x18
    [ 7.125019] Code: b900001f f9405860 d2880902 8b020000 (b9400000)
    [ 7.131103] ---[ end trace fae3c0a0f9484eb2 ]---

Reply
  • Hi

    This does not seem to work.

    I opened the block diagram in vivado and removed the dma to the jesd link. I also replaced zynqmp-zcu102-rev10-adrv9009.dts for zcu102-rev10-adrv9008-1. All builds fine, but when the kernel starts it hangs (see below). Any ideas?

    6.818785] Synchronous External Abort: synchronous external abort (0x96000010) at 0xffffff800d274048
    [ 6.827999] Internal error: : 96000010 [#1] SMP
    [ 6.832514] Modules linked in:
    [ 6.835556] CPU: 1 PID: 125 Comm: kworker/1:1 Not tainted 4.14.0 #1
    [ 6.841811] Hardware name: ZynqMP ZCU102 Rev1.0 (DT)
    [ 6.846768] Workqueue: events deferred_probe_work_func
    [ 6.851890] task: ffffffc87b01a100 task.stack: ffffff80093c0000
    [ 6.857798] PC is at adrv9009_post_setup+0x30/0xd8
    [ 6.862578] LR is at axiadc_probe+0x360/0x6d8
    [ 6.866917] pc : [<ffffff80087c6568>] lr : [<ffffff8008788148>] pstate: 40000045
    [ 6.874295] sp : ffffff80093c3b80
    [ 6.877594] x29: ffffff80093c3b90 x28: ffffff8008c5b0b0
    [ 6.882889] x27: ffffff8008bb1000 x26: 0000000000000004
    [ 6.888184] x25: ffffffc87b007e80 x24: 0000000000000001
    [ 6.893480] x23: ffffffc87b0b0010 x22: ffffffc87a5ddc18
    [ 6.898775] x21: ffffffc87b0b0000 x20: ffffffc87a91a000
    [ 6.904070] x19: ffffffc87a91a500 x18: 0000000000000001
    [ 6.909365] x17: 0000000000000000 x16: 0000000000000000
    [ 6.914661] x15: ffffffffffffffff x14: 0000000000000000
    [ 6.919956] x13: 0000000000000000 x12: 0000000000000000
    [ 6.925252] x11: 0000000000000000 x10: 0000000000000000
    [ 6.930547] x9 : 0000000000000000 x8 : 0000000000000003
    [ 6.935842] x7 : 0000000000000000 x6 : 0000000000000004
    [ 6.941137] x5 : 000000000000000a x4 : ffffffc87a91a858
    [ 6.946433] x3 : ffffffc87a91a500 x2 : 0000000000004048
    [ 6.951728] x1 : ffffffc87a5ddc18 x0 : ffffff800d274048
    [ 6.957025] Process kworker/1:1 (pid: 125, stack limit = 0xffffff80093c0000)
    [ 6.964055] Call trace:
    [ 6.966488] Exception stack(0xffffff80093c3a40 to 0xffffff80093c3b80)
    [ 6.972912] 3a40: ffffff800d274048 ffffffc87a5ddc18 0000000000004048 ffffffc87a91a500
    [ 6.980724] 3a60: ffffffc87a91a858 000000000000000a 0000000000000004 0000000000000000
    [ 6.988537] 3a80: 0000000000000003 0000000000000000 0000000000000000 0000000000000000
    [ 6.996350] 3aa0: 0000000000000000 0000000000000000 0000000000000000 ffffffffffffffff
    [ 7.004163] 3ac0: 0000000000000000 0000000000000000 0000000000000001 ffffffc87a91a500
    [ 7.011976] 3ae0: ffffffc87a91a000 ffffffc87b0b0000 ffffffc87a5ddc18 ffffffc87b0b0010
    [ 7.019788] 3b00: 0000000000000001 ffffffc87b007e80 0000000000000004 ffffff8008bb1000
    [ 7.027601] 3b20: ffffff8008c5b0b0 ffffff80093c3b90 ffffff8008788148 ffffff80093c3b80
    [ 7.035414] 3b40: ffffff80087c6568 0000000040000045 ffffffc87a91a500 ffffffc87a91a000
    [ 7.043227] 3b60: ffffffffffffffff ffffffc87a5ddc18 ffffff80093c3b90 ffffff80087c6568
    [ 7.051040] [<ffffff80087c6568>] adrv9009_post_setup+0x30/0xd8
    [ 7.056857] [<ffffff800855faf8>] platform_drv_probe+0x58/0xb8
    [ 7.062594] [<ffffff800855dee4>] driver_probe_device+0x22c/0x2d8
    [ 7.068584] [<ffffff800855e0ec>] __device_attach_driver+0x9c/0xf8
    [ 7.074660] [<ffffff800855c0e4>] bus_for_each_drv+0x4c/0x98
    [ 7.080216] [<ffffff800855db88>] __device_attach+0xc0/0x138
    [ 7.085772] [<ffffff800855e1a8>] device_initial_probe+0x10/0x18
    [ 7.091675] [<ffffff800855d044>] bus_probe_device+0x94/0xa0
    [ 7.097231] [<ffffff800855d4f8>] deferred_probe_work_func+0xa0/0x148
    [ 7.103569] [<ffffff80080b22bc>] process_one_work+0x1dc/0x348
    [ 7.109306] [<ffffff80080b2674>] worker_thread+0x24c/0x488
    [ 7.114775] [<ffffff80080b8104>] kthread+0x12c/0x130
    [ 7.119723] [<ffffff8008084a90>] ret_from_fork+0x10/0x18
    [ 7.125019] Code: b900001f f9405860 d2880902 8b020000 (b9400000)
    [ 7.131103] ---[ end trace fae3c0a0f9484eb2 ]---

Children