02-14-2020 07:58 AM
I am fairly new to Linux. I and trying to boot petalinux running on a Mercury XU5ev SoM from an SD card. I have used a "zynqMP" template to create the petalinux project and imported the "xsa" I generated from vivado 2019.2. This is because the SoM has no BSPs. I then went on to run petalinux-build, -package etc.
However when I boot the device it gets stuck as shown in the attached console log. I am unsure if there are any address configurations for the kernel or boot mode I need to setup in petalinux or even device tree changes?
I am also wondering if the vivado project address editor which has some unmapped segments is the cause? I have a VCU encode,FramebufferWr and and SDI_Rx IP and 4GB memory on the SoM. Please attached also the editor image.
Any thoughts or pointers will help as to getting petalinux to boot please?
02-16-2020 11:02 AM
Hi @badegoke_f1 ,
About unmapped addresses, you can use button, stated up-right corner of Address Editor Window.
I'm using Vivado/SDK/Petalinux 2018.2. First all of that must be same version for you (2019.2).
About starting a new design, I strongly recommend to you, starting from scratch.
First you need to be sure all of ZYNQ clocking(UART, Ethernet...) are correctly initialized. After that you can easily add your own Ip Cores or algorithms into your base design.
My recommendation steps are:
1- Use prebuild image, it comes from your Board's vendor. So thus you can be sure all of your base setup is ready. Board switches for booting from SD Card, UART cable and driver, baud rate...
2- Generate new bit file by using your Vendor's base FPGA design, by using hdf file generate BIN file and image.ub and install it into SD Card and be sure my base design can run properly.
3- After all you can add your own logic to your base design and you can be sure previos steps were ok and you can focus only your tasks.
02-18-2020 01:20 AM
Many thanks repying to my post. I have now run a base ZynqMPSoc without any other IPs. However i still get Kernel panic errors. The Board SoM I am using is an Enclustra Mercury XU5EV. It does not come with with a prebuilt image nor hard files of BSPs for petalinux.
I have had to strip the base example vivado project the vendor provides leaving the PS alone but still no luck.
The error seems to happen when starting the kernel. Phew... I virtually stuck.
02-18-2020 01:28 AM
First you need to be relax. You will solve it.
You said I m new about Petalinux, then I strongly recommend to you follow this web page.
I learned a lot of things from here and solved my SPI communication issue by using this web site.
Here you can find a serie of materials, this link is 26. of them.
02-18-2020 02:11 AM
You are best to just start with a baremetal design, and make sure everything works here.. Then migrate to Linux.
So, start with the deisgn that was provided to you by the vendor, and export the XSA and launch Vitis. You should do a memory test where the DDR will be tested. Once this is verified to be working, then move onto the Hello World, and peripheral tests.
I noticed in your address map that you have a si5324, do you have the correct DT nodes for this? What does this clock source? this could be an issue.
However, I really recommend taking a step back into baremetal where you will have more control over the debug and get a better idea where your issue is.
02-19-2020 01:29 AM
I think I am narrowing down my problem. I modified the device tree as similar as I could to the device tree in the vendors buildroot sources. A command on boot "mmcinfo" throws an error and stops the boot process. Which I figured petalinux has the wrong mm0 or mmc1 setting. I was able to get it to boot by manually typing in the commands I saw in the boot console using "printenv" command after interrupting the boot process.
I then ignored "mmcinfo" command in the series of commands manually entered and it boots. I now need to configure petalinux or the device tree to avoid this manual boot process but dont know how... hopefuly I can get it fixed.
Any thoughts or suggestions are welcome. Many thanks once again.
02-20-2020 10:29 AM
1. "mmc dev 1 0"
2. "run bootcmd"
I suspect that I have to configure the boot args to use mmc dev 1. I am not sure if where in petalinux-config or u-boot env this can be changed?
I then added SDI_RX + FramebufferWr + VCU to the bare project and used the same mmc and boot commands, however it boots and gets stuck while initializing nodes from the video IPs in the device-tree. Please see boot log attached with "printedenv" variables and the generated dtb which I decompiled... I suppose I need to make some changes in the device tree from the logs. "xilinx-video amba_pl@0:vcap_sdirx: /amba_pl@0/vcap_sdirx/ports/port@0 initialization failed" .
Do I create another post for the following questions?
Which dtb do I modify and how can I setup the VCU,Framebufwr and SDI_Rx IP chain with a config initialisation file similar to the ZCU106 TRD example? Should I modify the auto generated pl.dtsi or system-top.dtb?
I have gpio resets for the VCU and framebufwr in Vivado which I suppose have to binded in the device tree too?
02-20-2020 11:12 PM
I strongly recommend to you, using a Xilinx Application Note, instead of starting from scratch and discrovering everything again.
For example I needed a design CPU0:Embedded Linux + CPU1:Bare Metal that's why I used Xapp1078 app note.(Just you need to follow instructions)
If you look into this note, you can see there are tons of problems are already solved and you do not need to think about it again.
I started my project like that, its newest version was Vivado 2014.4, I created it and port it into 2018.2 and added tons of things later.
When I start a new design I would do it again, instead of dealing with this kind of problems.
02-21-2020 10:08 AM
Thanks for your suggestion @sabankocal . The problem is my board and carrier are not xilinx's they are enclustra. I have already verified my current design in a bare-metal application using the Xilinx application note for the SDI_RX supsytem and it works by correctly detecting the video formats.
My challenge now is configuring my petalinux config to supply the right information via the device tree and also the right boot configuration so I can control the video pipeline with gstreamer. That was the reason I attached the logs and device tree files. I also to a bare project to boot succesfuly which leads me to think its my device tree configuration.