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

Yocto support for TE0715

Started by random, March 14, 2017, 01:54:49 PM

Previous topic - Next topic

random

I'm working with a TE0715-03 CPU module and a TE0701-05 baseboard. I could reproduce the build using petalinux 2016.02 but I would like to use Yocto to build our image.

I could generate an image and an SDK but I cannot make it boot. I also tried to create a boot.bin with the zynq_fsbl from the demo project but it doesn't boot, despite this fsbl seem to work with the u-boot from petalinux.

I'm using the morty branch and use for now the zc702-zynq7 machine that seems to be used as reference in the provided example BSP.

Has anyone built a bootable image succesfully with Yocto? What machine and what branch?

Thorsten Trenz

Hi,

at the moment we use only Petalinux with our modules. Since Petalinux 2016.4, Yocto part of the PetaLinux is more opened for user. Maybe you can try this. At the moment we update our reference designs to Vivado 2016.4 also PetaLinux. But it need's a little bit time to update all. But you must use the hdf from your design. BSP from other development boards does not work.
Here are some links for petalinux 2016.4 and troubleshoot:
br
John


random

Thanks for the reply. As long as I install petalinux 2016.2 ;D, the given links works for me with the provided example! My biggest trouble is having a bootloader that works ... In Yocto the default bootloader is u-boot-xlnx vs u-boot-plnx in petalinux. I also tried to use u-boot-xlnx withing petalinux but it didn't boot. Have you already tried to compile and run an u-boot-xlnx on your platforms?

Thorsten Trenz

Hi,
We have not tried to build u-boot outside the Petalinux environment, there are always some differences, the Repo versions change and it is not possible for us to know what is the reason for the failures.

The only tip we can give is to use Petalinux provided setup first and then start comparing the differences. This is what we would do ourself too.

You can also select Repo location in Petalinux to be remote so Petalinux would fetch the u-boot sources from a Github Repo you choose, this can be official Repo or your corporate Github also.

Best Regards,
Antti Lukats

random

Thanks for the suggestion. But after struggling to make petalinux working with your generated project, with some "diff -uNr" I noticed that the difference was in the serial port configuration. My u-boot was booting but the serial configuration was wrong. I compiled a yocto image for the zynq-zc702 machine and in the build temporary folder, I applied this patch to use enable and use the right uart:
diff --git a/arch/arm/dts/zynq-zc702.dts b/arch/arm/dts/zynq-zc702.dts
index f7cce4f..268b04a 100644
--- a/arch/arm/dts/zynq-zc702.dts
+++ b/arch/arm/dts/zynq-zc702.dts
@@ -16,7 +16,7 @@
        aliases {
                ethernet0 = &gem0;
                i2c0 = &i2c0;
-               serial0 = &uart1;
+               serial0 = &uart0;
                spi0 = &qspi;
                mmc0 = &sdhci0;
        };
@@ -26,6 +26,10 @@
                reg = <0x0 0x40000000>;
        };

+       serial0 {
+               status = "okay";
+       };
+
        chosen {
                bootargs = "";
                stdout-path = "serial0:115200n8";

I still had to generated the boot.bin with bootgen and using the fsbl compiled with petalinux but I could boot the TE0715:

U-Boot 2016.07 (Mar 15 2017 - 16:01:08 +0100)

Model: Zynq ZC702 Development Board
Board: Xilinx Zynq
I2C: ready
DRAM: ECC disabled 1 GiB
MMC: sdhci@e0100000: 0
SF: Detected S25FL256S_64K with page size 256 Bytes, erase size 64 KiB, total 32 MiB
*** Warning - bad CRC, using default environment

In: serial@e0000000
Out: serial@e0000000
Err: serial@e0000000
Model: Zynq ZC702 Development Board
Board: Xilinx Zynq
Net: ZYNQ GEM: e000b000, phyaddr 7, interface rgmii-id
eth0: ethernet@e000b000
Hit any key to stop autoboot: 0
Device: sdhci@e0100000
Manufacturer ID: 2
OEM: 544d
Name: SA04G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 3.7 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
reading uEnv.txt
** Unable to read file uEnv.txt **
Copying Linux from SD to RAM...
reading uImage
** Unable to read file uImage **
Zynq>

Thanks for all the pointer and happy hacking on the 2016.4, it would be greatlyl appreciated!