Running Machinekit on Zynq Zturn board or Zed Board

466 views
Skip to first unread message

automata

unread,
Oct 13, 2017, 6:52:21 AM10/13/17
to Machinekit
Hi,

I am trying to run machinekit on a Zturn board with a Zynq7020 processor.


But could not get much further from there.

Can someone point out how to start with either the Zturn board or the Zedboard with Zynq7020 chip.

I am willing (with a little help) to make the startup documentation / gist like https://gist.github.com/mhaberler/89a813dc70688e35d8848e8e467a1337 which is for the Altera SOC+FPGA board.

Regards,

-automata

automata

unread,
Oct 13, 2017, 11:40:12 AM10/13/17
to Machinekit
I tried using the image from http://deb.mah.priv.at/uploads/zynq/debian-8.5-console-armhf-2016-11-21/ which seems to be the last machinekit Zynq SD card image I can find. The other one being at http://deb.machinekit.io/uploads/zynq/debian-8.5-console-armhf-2016-08-25/ which is considerably older.

On the Zturn board I got the following output. IT skipped looking for partition 2 and straight started with 3.
U boot seems to have booted the processor and it is not able to find the kernel uImage?

-automata

************************** Output on serial console.*************
U-Boot SPL 2016.01-00024-g5cf690d7 (Aug 16 2016 - 17:00:16)
mmc boot
Trying to boot from MMC
reading fpga.bin
spl_load_image_fat: error reading image fpga.bin, err - -1
spl: error reading image fpga.bin, err - 1
reading system.dtb
spl_load_image_fat_os: error reading image system.dtb, err - -1
reading u-boot.img
reading u-boot.img


U-Boot 2016.01-00024-g5cf690d7 (Aug 16 2016 - 17:00:16 +0000), Build: jenkins-u-boot-xilinx-9

Model: MYIR Z-turn Development Board
Board: Xilinx Zynq
DRAM:  ECC disabled 1 GiB
MMC:   sdhci@e0100000: 0
SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
Model: MYIR Z-turn Development Board
Board: Xilinx Zynq
Net:   ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id
eth0: ethernet@e000b000
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Checking for: /boot/uEnv.txt ...
Trying interface=mmc bootpart=0:2 ...
282 bytes read in 110 ms (2 KiB/s)
Loaded environment from /boot/uEnv.txt
Using: dtb=zynq-zturn.dtb ...
Skipping FPGA load ...
Checking if uname_r is set in /boot/uEnv.txt ...
Running uname_boot ...
Trying interface=mmc bootpart=0:3 ...
** Invalid partition 3 **
Trying interface=mmc bootpart=0:4 ...
** Invalid partition 4 **
Trying interface=mmc bootpart=0:5 ...
** Invalid partition 5 **
Trying interface=mmc bootpart=0:6 ...
** Invalid partition 6 **
Trying interface=mmc bootpart=0:7 ...
** Invalid partition 7 **
Zynq>
 

Eric Keller

unread,
Oct 13, 2017, 12:16:14 PM10/13/17
to Machinekit
the first step of porting Machinekit to a new processor is to build a compatible real time kernel.  Then build Machinekit against that kernel.  It's not a matter of d/l an  image. 
Eric

--
website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit
---
You received this message because you are subscribed to the Google Groups "Machinekit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+unsubscribe@googlegroups.com.
Visit this group at https://groups.google.com/group/machinekit.
For more options, visit https://groups.google.com/d/optout.

automata

unread,
Oct 13, 2017, 2:12:57 PM10/13/17
to Machinekit


On Friday, October 13, 2017 at 9:46:14 PM UTC+5:30, Eric Keller wrote:
the first step of porting Machinekit to a new processor is to build a compatible real time kernel.  Then build Machinekit against that kernel.  It's not a matter of d/l an  image. 
Eric

Hi Eric,

Thanks for the response.

I have also been trying to compile an appropriate kernel from: https://github.com/JDSquared/linux-stable/ using the docker image from https://github.com/dkhughes/ubker-docker. After a couple days of staring at the name, I understood that "ubker" was a mashup of uboot and Kernel. So I need to use that particular docker image to compile the ubbot and linux kernel to replicate the kernel that dkhughes has successfully compiled.

This information was made available from the machinekit jenkins site: https://jenkins.machinekit.io/

From this youtube video by Charles S. https://www.youtube.com/watch?v=veM83KCytuQ, somewhere around the 24 minute mark, it references the various repositories required to get the Altera SOC And teh ZYNQ systems working.

The items required along with their repositories are:
5. FPGA packages : https://github.com/machinekit/mksocfpga/ - not sure where this fits in .. but it could be required to make the BOOT.BIN file with the FSBL (First stage bootloader), kernel image etc 
6. uSD image - bring it all together : https://github.com/cdsteinkuehler/omap-image-builder/
7. machinekit application software where it all comes together. This is included in the rootfs repo. with an RIP (run in place) build.

At the moment, I am trying to muck around the jenkins jobs to see what they are trying to compile in the docker containers.

However, I am still new to docker, jenkins, compiling kernels, uboot and zynq. So I was hoping something readymade was available to get a head start. 

On the other hand I am also open to advise on how to get and compile and put together the 7 repositories and generate a bootable uSD card image. I am still missing the bit about a device tree and fsbl. But I am hoping that will all come together in the mksocfpga repository in the FPGA Package step.

I am using a Debian Jessie amd64 VM on Windows10 host using Virtualbox to bring all this together. Currently compiling uboot and the kernel in the ubker docker (https://github.com/dkhughes/ubker-docker). At the same time I am trying to setup the vivado docker image (https://github.com/dkhughes/vivado-docker) with the 2017.2 Xilinx vivado +SDK installer from Xilinx.

Hardware wise I have the Zturn board with a 7020 chip and a Avnet/ Digillent Zedboard again with the 7020 Zynq chip.

The learning curve is sTeeP and any help or pointers on how to proceed will be graciously accepted.

Regards,

-automata
 
 
To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+...@googlegroups.com.

automata

unread,
Oct 13, 2017, 4:44:46 PM10/13/17
to Machinekit
Hi,

For item 1. i.e., U-boot, The compilation procedure was relatively straight forward. inside the docker container ubker (https://github.com/dkhughes/ubker-docker)
Uboot was pulled earlier from: https://github.com/JDSquared/u-boot-xlnx/
1. cd /home/developer/u-boot-xlnx
2. make zynq_zturn_config
OR 
2. make zynq_zed_config
3. make

This should have the u-boot.img  file in the u-boot-xlnx directory. Not sure what to do with it yet.. but going to hold onto it just in case.

Next comes the kernel. I got an RT patched kernel from https://github.com/JDSquared/linux-stable/
1. cd linux-stable
2. ?? This is where I am stuck. 

Need some guidance here.

Also not sure where to build the rootfs ... inside the docker container or need to set some environment variables and use debian jessie amd64?

Regards,

-automata

Charles Steinkuehler

unread,
Oct 13, 2017, 5:17:28 PM10/13/17
to machi...@googlegroups.com
On 10/13/2017 1:12 PM, automata wrote:
>
> From this youtube video by Charles
> S. https://www.youtube.com/watch?v=veM83KCytuQ, somewhere around the 24
> minute mark, it references the various repositories required to get the
> Altera SOC And teh ZYNQ systems working.
>
> The items required along with their repositories are:
> 1. Uboot : https://github.com/JDSquared/u-boot-xlnx/
> 2. Linux kernel : https://github.com/JDSquared/linux-stable/
> 3. rootfs : https://github.com/cdsteinkuehler/omap-image-builder/
> 4. FPGA bit files :https://github.com/machinekit/mksocfpga/
> 5. FPGA packages : https://github.com/machinekit/mksocfpga/ - not sure
> where this fits in .. but it could be required to make the BOOT.BIN file
> with the FSBL (First stage bootloader), kernel image etc
> 6. uSD image - bring it all together
> : https://github.com/cdsteinkuehler/omap-image-builder/
> 7. machinekit application software where it all comes together. This is
> included in the rootfs repo. with an RIP (run in place) build.

That's how to rebuild everything from scratch, but you don't have to
go to the trouble unless you want.

> At the moment, I am trying to muck around the jenkins jobs to see what they
> are trying to compile in the docker containers.
>
> However, I am still new to docker, jenkins, compiling kernels, uboot and
> zynq. So I was hoping something readymade was available to get a head
> start.

You should be able to get u-Boot and the kernel from example Xilinx
images. The rootfs can be any generic Debian rootfs, I typically
start with the Jessie rootfs from RCN's BBB Machinekit image. The
FPGA bitfiles are available as a package from the Machinekit repo.

AFAIK, the main thing missing (as long as you're using the Zynq board
Michael was working with) is a ready-to-use uSD image. I typically
start with a generic example for the target board, replace the rootfs
and FPGA bitfile, then replace the kernel (if needed, some images come
with a real-time kernel already). Remember you'll probably need to
copy a few bits from the old rootfs (like the kernel modules).

--
Charles Steinkuehler
cha...@steinkuehler.net
Reply all
Reply to author
Forward
0 new messages