I am developing a program that is required to communicate with some hardware. This means that I need to use at least 8 GPIO output ports.
Currently, I am capable of controlling leds, switches, buttons and 3 GPIO (IO_L02_13_JX2_P, IO_L06_13_JX2_N, IO_L06_13_JX2_P) through the linux driver.
Unfortunately, the rest of gpio is not controllable through the linux drivers. The issues is almost identical to the one described here: Controlling Breakout Carrier (PicoZed SDR) GPIOs where a direct mmap to the axi_gpreg is recommended as one that does not require changing the fpga fabric.
- The layout of the BOB: https://wiki.analog.com/_media/resources/eval/user-guides/pzsdr/carriers/02-039931-01-c2.pdf
- The layout of the ad9361: https://wiki.analog.com/_media/resources/eval/user-guides/adrv9361-z7035/02-038702-01-f2.pdf
- How these are mapped to the registers: https://github.com/analogdevicesinc/hdl/blob/master/projects/adrv9361z7035/common/ccbob_constr.xdc
- And where they are further connected: https://github.com/analogdevicesinc/hdl/blob/master/projects/adrv9361z7035/ccbob_lvds/system_top.v#L133
But I am unable to achieve it as I can not locate the registers in the physical memory of the device (from the embedded linux using mmap).
Where should I look to find the location/locations of these registers?
Thank you for your help,
Adding some additional info
[edited by: kwozniak at 12:07 PM (GMT -5) on 12 Jan 2022]