Sorry, you need to enable JavaScript to visit this website.

pulsar linux PL mmio hangs

Unsolved
2 posts / 0 new
chrisroelle's picture
chrisroelle
Junior(0)
pulsar linux PL mmio hangs

Hi all -
My apologies for the simple question.
Using Pulsar Linux release 8, out of the box on a MicroZed 7010 board.  With either the provided PL image or my own PL image (which does nothing more than expose an axi_gpio at 0x41200000), accessing a memory mapped IO in the region 0x40000000-0x7FFFFFFF seems to hang the whole board.  I think the memory mapping is working OK because I can see the expected value 0x308xxxxx in the devcfg.MCTRL register if I read address 0xF8007080, but I'm not able to read in the PL memory range.  I must be missing something simple?
 
Thanks,
CR
 

zedhed's picture
zedhed
Moderator(19)
RE: pulsar linux PL mmio hangs

Hi chrisroelle,

How is your device tree being configured for the axi_gpio instance you have in the PL?

For example, when I want to access axi_gpio control registers in the PL from user space, I have some entries showing up in the device tree. These entries look like this:

amba_pl: amba_pl {
#address-cells = ;
#size-cells = ;
compatible = "simple-bus";
ranges ;
axi_gpio_0: gpio@80000000 {
#gpio-cells = ;
compatible = "xlnx,xps-gpio-1.00.a";
gpio-controller ;
reg = ;
xlnx,all-inputs = ;
xlnx,all-inputs-2 = ;
xlnx,all-outputs = ;
xlnx,all-outputs-2 = ;
xlnx,dout-default = ;
xlnx,dout-default-2 = ;
xlnx,gpio-width = ;
xlnx,gpio2-width = ;
xlnx,interrupt-present = ;
xlnx,is-dual = ;
xlnx,tri-default = ;
xlnx,tri-default-2 = ;
};
axi_gpio_1: gpio@80010000 {
#gpio-cells = ;
compatible = "xlnx,xps-gpio-1.00.a";
gpio-controller ;
reg = ;
xlnx,all-inputs = ;
xlnx,all-inputs-2 = ;
xlnx,all-outputs = ;
xlnx,all-outputs-2 = ;
xlnx,dout-default = ;
xlnx,dout-default-2 = ;
xlnx,gpio-width = ;
xlnx,gpio2-width = ;
xlnx,interrupt-present = ;
xlnx,is-dual = ;
xlnx,tri-default = ;
xlnx,tri-default-2 = ;
};
axi_gpio_2: gpio@80020000 {
#gpio-cells = ;
compatible = "xlnx,xps-gpio-1.00.a";
gpio-controller ;
reg = ;
xlnx,all-inputs = ;
xlnx,all-inputs-2 = ;
xlnx,all-outputs = ;
xlnx,all-outputs-2 = ;
xlnx,dout-default = ;
xlnx,dout-default-2 = ;
xlnx,gpio-width = ;
xlnx,gpio2-width = ;
xlnx,interrupt-present = ;
xlnx,is-dual = ;
xlnx,tri-default = ;
xlnx,tri-default-2 = ;
};
};

Also, this Xilinx forum post may interest you:

https://forums.xilinx.com/t5/Embedded-Linux/Zynq-Linux-Freeze-on-Memory-...

Regards,

-Kevin