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: 
Newbie joachim22
Newbie
2,566 Views
Registered: ‎10-07-2013

Zynq: Drivers not yet initialized when zynq_init_machine is called

Hi,

 

We have problems upgrading our Zynq device from a Linux Kernel 3.0 to a more recent version 3.9 (xilinx-v14.6.02)

 

Our 3.0 version runs fine, but with 3.9 we just don't manage to get a working console.

"Warning: unable to open an initial console."

 

Initially we had a problem similar to:

http://forums.xilinx.com/t5/Embedded-Linux/Kernel-stops-when-booting-custom-board/td-p/274450

Output stopped in line "Registering SWP/SWPB emulation handler", but we came over that by disabling function clk_disable_unused() in drivers/clk/clk.c

 

I debugged and added some printk's.  Then I see that when trying to sys_open "/dev/console" in main.c it fails when doing a kobj_lookup in chrdev_open (-ENXIO).

 

Perhaps there is a problem when initializing the device tree: In zynq_init_machine function of_platform_populate tries to find compatible devices. But xuartps_init is called only later and hence can't be found as compatible device.

 

Do you have any idea of what is going wrong?

 

Attached in our devicetree.

 

Best regards,

Joachim

0 Kudos
2 Replies
Xilinx Employee
Xilinx Employee
2,562 Views
Registered: ‎03-13-2012

Re: Zynq: Drivers not yet initialized when zynq_init_machine is called

You make a big jump in kernel versions without updating your dts properly. There have been several huge changes regarding the clock framework and its description in Zynq dts files your dts is completely missing.

Please try to use a dts file coming with the kernel sources, or if you use a custom board, port over the clock related parts to your dts.

0 Kudos
Newbie joachim22
Newbie
2,546 Views
Registered: ‎10-07-2013

Re: Zynq: Drivers not yet initialized when zynq_init_machine is called

I finally found the cause of the problem.

We copied the devicetree to 0x1000000 and the ramdisk to 0x800000.

But since we specified 16M for the initrd-size it ended at 0x1800000.

Thus when the ramdisk was freed the devicetree data was removed and no drivers could connect with it.

 

Maybe the older kernel didn't overwrite the data when freed, so we didn't notice that our memory layout was faulty.

 

Joachim

 

0 Kudos