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: 
Highlighted
Observer senkoo
Observer
244 Views
Registered: ‎08-28-2018

Reading 0x80000020 causes kernel hang

Hello,

 

My name is Senna and I am almost at the end of the project. But now I want to set my IP with the slot number which is in 0x80000020.

 

Well I read this: 

 

https://forums.xilinx.com/t5/Embedded-Linux/Zynq-Linux-Freeze-on-Memory-Mapped-Peripheral-Write/m-p/498194#M10043

 

and this:

 

https://forums.xilinx.com/t5/Embedded-Linux/Verifying-Memory-Mapings-on-Zynq-SOC-Debugging-System-Hang-on/td-p/497282

 

When I do the following: ./peek 0x80000020 the system freezes and I need to reset the board to gain control again. I looked at the Device Tree if the AXI_interconnect, cpu and clock generation but did not something weird. 

 

So my question is, what is causing this freeze? Where does it freeze at? Is it because you're not allowed to read or because the memory register is empty?

 

My dts:

CPU 0

 

 

cpu0: cpu@0 {
			bus-handle = <amba>;
			compatible = "arm,cortex-a9";
			device_type = "cpu";
			reg = <0>;
			clocks = <&clkc 3>;
			clock-latency = <1000>;
			cpu0-supply = <&regulator_vccpint>;
			operating-points = <
				/* kHz    uV */
				666667  1000000
				333334  1000000
				222223  1000000
			>;
		};

Clock

clkc: clkc@100 {
				#clock-cells = <1>;
				compatible = "xlnx,ps7-clkc";
				fclk-enable = <0xf>; ** I changed it to 0xf cause I read somewhere it COULD help. **
				clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x",
						"cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x",
						"dci", "lqspi", "smc", "pcap", "gem0", "gem1",
						"fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1",
						"sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1",
						"dma", "usb0_aper", "usb1_aper", "gem0_aper",
						"gem1_aper", "sdio0_aper", "sdio1_aper",
						"spi0_aper", "spi1_aper", "can0_aper", "can1_aper",
						"i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper",
						"gpio_aper", "lqspi_aper", "smc_aper", "swdt",
						"dbg_trc", "dbg_apb";
				reg = <0x100 0x100>;
			};

In pcw.dtsi i also changed the following:

 

&gem0 {
	phy-mode = "moca";
	status = "okay";
	xlnx,ptp-enet-clock = <0x69f6bcb>;
	fixed-link {
		speed = <1000>;
	 	full-duplex;
	};
	
};

&clkc {
	fclk-enable = <0xf>;
	ps-clk-frequency = <33333333>;
};

	cpus {
		cpu@0 {
			operating-points = <666666 1000000 333333 1000000>;
			bus-handle = <amba>;
		};
	};

 

I hope someone could help me out. Thanks in advance :)

 

 

 

0 Kudos
2 Replies
Moderator
Moderator
224 Views
Registered: ‎09-12-2007

Re: Reading 0x80000020 causes kernel hang

The kernel is freezing as it is more than likely reading an illegal address.

Why are you reading this address? What IP are you hoping to read from?

Is this IP added to the address map? Have a look in the pl.dtsi it should be there

0 Kudos
Observer senkoo
Observer
215 Views
Registered: ‎08-28-2018

Re: Reading 0x80000020 causes kernel hang

Hi @stephenm,

 

It had to do with bootargs: clk_ignore_unused.

 

Thank you for your response.

 

Best regards,

Senna

0 Kudos