News:

Attention: For security reasons,please choose a user name *different* from your login name.
Also make sure to choose a secure password and change it regularly.

Main Menu

TEBF0808 + TE0803 and petalinux 2020.1

Started by joseer, September 03, 2020, 10:15:42 AM

Previous topic - Next topic

joseer

Hello,

We're currently working with the 2019.2 version tools for this boards combination but due to new features and modifications of the new 2020.1  we want to try to move our applications to this new version.

In order to 'upgrade' the 2019.2 projects to 2020.1 I followed next steps:

- Open  Vivado 2019.2 project in Vivado 2020.1, upgrade to the new version and generate bitstream. No problem with this step.

- Export hw, open it in Vitis and create new  fsbl(TE modified) using the provided modified fsbl TE template project (same steps and files as I did in 2019.2) and build and create the fsbl.elf file to be used later to package petalinux image.

- Create new petalinux 2020.1 project with the zynqMP template, import generated hardware description, copy 2019.2 device tree and rootfs config,  build and package the boot image using the  fsbl.elf generated in previous step.

The problem is that petalinux doesn't boot giving the next errors (please find attached full log):

Warning: ethernet@ff0e0000 using MAC address from DT
eth0: ethernet@ff0e0000
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc1 is current device
** No partition table - mmc 1 **
## Executing script at 20000000
Wrong image format for "source" command
SCRIPT FAILED: continuing...
switch to partitions #0, OK
mmc0(part 0) is current device
** No partition table - mmc 0 **
switch to partitions #0, OK
mmc1 is current device
** No partition table - mmc 1 **
SF: Detected n25q512a with page size 512 Bytes, erase size 128 KiB, total 128 MiB
device 0 offset 0x3e80000, size 0x80000
SF: 524288 bytes @ 0x3e80000 Read: OK
## Executing script at 20000000
Wrong image format for "source" command
SCRIPT FAILED: continuing...


Any ideas what is going on or what I have to modify to boot and work with 2020.1?

Thanks in advance.
Br


jhane

You also need to copy the boot.scr into your boot partition.

Why are using the modified fsbl instead of the one generated by petalinux?  I haven't had any issues.

jeff

JH

Hi,

modifications initialise external PLL which generates reference CLKs for GTR transceiver (used for PCIe, Sata USB3 and DP). On older Vivado/Petalinux version boot process stops when some of this GRT interfaces was enabled but reference clk was missing

When you work with 20.1 than use Xilinx default  and add our changes manually to the new FSBL if need.

But I can't help more with 20.1 we will skip it and update designs again with 20.2
PS: even vivado/Vitis/Petalinux versions are mostly more stable than odd (odd version will be mostly use to add new features and even for bugfixes only)

br
John

joseer

Hi John,

Thanks for your answer,

I understand your situation and approach.

I wasn't after an answer which solve the issue only if anyone have some clue whether the problem could be fsbl related or something missing in the kernel config.

Br

JH

#4
@joseer:

Our FSBL Template is was a copy from Xilinx default 19.2 fsbl template with our modification.  In case you use other Vivado/petalinux version, you must always start with the FSBL from the corresponding Vivado/Petalinux version.   We have marked our changes and put them in our own files, which you have to include in the default FSBL of Xilinx. Xilinx changes are listed here:
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842019/Zynq+UltraScale+FSBL#ZynqUltraScale+FSBL-RevisionHistory

I didn't work with 20.1 until now,  so unfortunately I can't help much more. You should try out suggestion from jeff, if this helps. And in case some on the GTR interfaces makes trouble because of missing reference clk, than disable them simple on PS and generate XSA and linux without these high speed interfaces and default FSBL from Xilinx at first.

br
John

joseer

@jhane,

Thanks for your answer,
I tried to copy also the boot.scr and use the petalinux generated fsbl but still same issue.

Did it work for you using 2020.1?

jhane

Hello,
  I am using a TE0820 and I can boot from SD card and QSPI->eMMC.   You didn't say what you are trying to boot from.  If you are trying to do it all from QSPI, then it may be the offset to the script(an image.ub) are wrong.  I didn't have an issue since for SD and eMCC the files are just on a fat partition.

jeff

jhane

@jh

I have to ask about this FSBL thing.  Is there a reason you guys just don't release a petalinux BSP with a recipe for the FSBL?   I used a 702 a couple of years ago and it was the same thing with the FSBL.   Why not provide a BSP or at least just the patches so we don't have to go through the pain of  diffing the src, generating patches and creating the recipe myself?

jeff

JH

Hi,
we provide only the petalinux template (included in the reference designs in the subfolder os/petalinux), which can be regenerated the project with xsa. The result of the regeneration of the template is nearly like Xilinx petalinux bsp for there evaluation boards. 
Here are some notes about our petalinux support:
https://wiki.trenz-electronic.de/display/PD/PetaLinux+KICKstart
https://wiki.trenz-electronic.de/display/PD/PetaLinux+TE-Template

You are right or FSBL modifications are not included. To add recipes/patches for FSBL are  possible since some petalinux versions, but we provide at the moment only Vitis template, which can be loaded as local repository into Vitis, see also:
https://wiki.trenz-electronic.de/display/PD/Vitis#Vitis-Includelocalrepositories


We generate final Boot.bin with Vitis and with FSBL for Vitis we can support baermetal and linux together.
Furthermore we have many assembly variants of TE0803 currently ~43:
https://wiki.trenz-electronic.de/display/PD/TE+Reference+Designs+Overview#TEReferenceDesignsOverview-Xilinx

Xilinx BSP for one Evalboard is around 500MB-1GB, our reference design with petalinux template and  prebuilt binaries for all 41 variants of the TE0803 is ~100MB , see:
https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/embedded-design-tools.html
https://shop.trenz-electronic.de/en/Download/?path=Trenz_Electronic/Modules_and_Module_Carriers/5.2x7.6/TE0803/Reference_Design/2019.2/StarterKit

You can extrapolate this to all Trenz boards, we can't create every variant like xilinx does. Also we get the Xilinx Vivado/Petalinux release like all the others, so we can only react to changes, which delays the update.

There are just many ways to create a Linux for Xilinx SoC/FPGA. One way is to use Vitis and Petalinux together (that's the fastest way for us to provide files for all assembly variants), one is the pure Petalinux, one is to use native Yocto build environment or to create all files manually (create your own make files... every way is asked sometimes for but we can't support all of them.

To come back to the FSBL, we will check if we can offer an optional FSBL recipe in the future, but I can't say anything more about that at the moment. And in any case you must always check if it works in the same way on another petalinux version, like for this one where it was generated for.
br
John



joseer

Hi,

thanks for the answers,

@jhane, I'm trying to boot from SD1 (mmc1), but I've got:

mmc1 is current device
** No partition table - mmc 1 **


The partition table is ok because I'm able to boot the 2019.2 images without problems....

Then it gives the next errors:
Retry time exceeded; starting again
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/01-00-0a-35-00-22-01
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000000
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000000
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-zynqmp-zynqmp
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-zynqmp
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm
*** ERROR: `serverip' not set
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default


I checked the devices in uboot:
ZynqMP> mmc list
mmc@ff160000: 0 (eMMC)
mmc@ff170000: 1 (SD)


And also I can read SD1 without problems (prove partition is ok):

ZynqMP> fatls mmc 1
            System Volume Information/
47891180   image.ub
     2007   boot.scr
  9042028   BOOT.BIN

3 file(s), 1 dir(s)


I'm lost here...any ideas about what's going on or missing?


jhane

 Did you get this working?  It's likely the way you partitioned it.  I always destroy the partition info at the start of the SD using dd and then create 2-3 partitions.  My boot partition is 1G, vfat partition that has the boot flag set. 

jeff

joseer

Hi Jeff,

Thanks for your answers,

Yes, I've got it working, just changed to brand new SD card formatted to FAT32 in windows and it did boot fine, very weird because the previous SD card (same brand/type) works fine booting 2018.3/2019.2 petalinux image files. I'd really like to get to the bottom of this in some point but if the partition was corrupted it shouldn't work with either version...

Br