05-27-2020 08:29 AM
I created a simple design on Vivado with the som Ultrazed from Avnet and exported the .xsa used by Petalinux to create my project.
I followed the steps from UG1144, run the commands petalinx-build and petalinux-package to generate BOOT.BIN and image.ub. I copy these files on my SD card partition but linux is not booting. I can't see any error message on my Uart console.
I tried to boot u-boot from jtag ((petalinux-boot --jtag -u-boot), it doesn't work but I can see on my console the following message:
zynqmp_clk_get_peripheral_rate mio read fail failed to get rate
I could run petalinux on the development board (ultrazed EG carrier board) without problem with an existing bsp provided by avnet and not a custom vivado design.
I don't know what I am missing, some help would be greatful.
05-27-2020 12:45 PM
Looks like that message comes from here, in u-boot: https://github.com/Xilinx/u-boot-xlnx/blob/master/drivers/clk/clk_zynqmp.c. That function, zynqmp_clk_get_peripheral_rate, is failing since it can't read a register. On the bright side, your DRAM and serial appear to be working which is a big step on a custom board.
I would debug that function if you can with JTAG and see why it is failing. I have not seen a failure like this before so I don't have any guesses what it could be off the top of my head, but it could be a device tree issue - removing the PL from the device tree, in the PetaLinux config, might help at least get things booting.
05-27-2020 11:44 PM
Hi Nathan, thanks for your answer.
I looked on the device tree but I don't really understand how it works. On my custom petalinux project created with my .xsa, the file system-user.dtsi is empty, I think the device tree is already configured with my vivado design and the .xsa. The projects created with dev board bsp have some hardware configuration on this file (&gem3, &qspi, &sdhci ...), do I need to specify my hardware configurations ? I tried the configuration of the ultrazed Som carrier board but this is not working. I don't really understand because the device tree is in the binary system.dtb but this file is not needed on the SD card for booting ?
06-04-2020 07:23 AM
If you did a "petalinux-config --get-hw-description...", then petalinux will have generated a tree for all the internal peripherals on your board already - that is, it has the ethernet set up, USB, SD, etc. but no PHYs specified or other external hardware in the tree. The generated trees are at components/plnx_workspace/device-tree/device-tree/ in the project. Typically the BSPs will add PHY information (for ethernet and USB), external i2c peripherals and other such things to the device tree, though not having those should not cause the uboot clock issue you are seeing.
The tree is built into both uboot and the Linux kernel image (image.ub) during the build process, so it's not a separate file on the SD card.
06-05-2020 03:00 AM
Hi, thanks for your answer, I understand better now. I created a new Vivado design with all default parameters from Ultrazed SOM (in my first design I disabled USB3 and disply port, this time I let all by default). Now I go further in the boot process in jtag mode but Petalinux hangs at udevd with a lot of request failed before it. Attached is the log. I tried to boot with SD card but it does not work and I can't get log messages, it's why I am using jtag for debugging info.
06-05-2020 07:29 AM
The kernel was "unable to open an initial console". Some of those messages about power domains not working make me think the PMU firmware isn't getting loaded, which might be a big part of the problem if it's not.