[yocto] Problems building yocto for Xilinx ML507 (with some tentative fixes)

Andrea Sterbini a.sterbini at tiscali.it
Fri May 10 07:02:15 PDT 2013


Hi
I have just bought an old Xilinx ML507 and I am trying to build yocto, 
but I find some problems building the minimal image
I am a yocto newbie ... thus I wonder if I am missing something important.

My setup: Linux Fedora 18 64 bits

I hope I am following the correct procedure:
> git clone git://git.yoctoproject.org/poky
> cd poky
> git clone git://git.yoctoproject.org/meta-xilinx -b 
> master-xilinx-ml507-gcc-4.7 meta-xilinx
> git clone git://git.openembedded.org/meta-openembedded
> . oe-init-build-env

My bblayers contains
> BBLAYERS ?= " \
>   /home/andrea/src/FPGA/poky/meta \
>   /home/andrea/src/FPGA/poky/meta-yocto \
>   /home/andrea/src/FPGA/poky/meta-yocto-bsp \
>   /home/andrea/src/FPGA/poky/meta-openembedded/toolchain-layer \
> /home/andrea/src/FPGA/poky/meta-openembedded-contrib/toolchain-layer \
>   /home/andrea/src/FPGA/poky/meta-xilinx \
>   /home/andrea/src/FPGA/poky/meta-angstrom \
>   "

My local.conf contains

> BB_NUMBER_THREADS = "4"
> PARALLEL_MAKE = "-j 4"
>
> XILINX_LOC ?= "/opt/Xilinx/13.3/ISE_DS"
>
> MACHINE ?= "virtex-5-ml507-powerpc-440"
>
> XILINX_BSP_PATH ?= "/home/andrea/src/FPGA/poky-ml507/xilinx-ml507-updated"
> XILINX_BOARD ?= "ml507"
>
> INHERIT += "rm_work"
>
> PREFERRED_VERSION_libffi = "3.0.13"
> PREFERRED_VERSION_libffi-native = "3.0.13"
>
> MACHINE ??= "qemux86"
>
> DISTRO ?= "poky"
>
> PACKAGE_CLASSES ?= "package_rpm"
>
> EXTRA_IMAGE_FEATURES = "debug-tweaks"
>
> USER_CLASSES ?= "buildstats image-mklibs image-prelink"
>
> PATCHRESOLVE = "noop"
>
> BB_DISKMON_DIRS = "\
>     STOPTASKS,${TMPDIR},1G,100K \
>     STOPTASKS,${DL_DIR},1G,100K \
>     STOPTASKS,${SSTATE_DIR},1G,100K \
>     ABORT,${TMPDIR},100M,1K \
>     ABORT,${DL_DIR},100M,1K \
>     ABORT,${SSTATE_DIR},100M,1K"
>
> CONF_VERSION = "1"

The problems I have found (and someway fixed) are:

1) when I do "bitbake meta-toolchain" I get an error complaining that 
the compiler is not able to build for powerpc with FPU
Fix: I have changed the ml507 rules to include just the soft FPU

> diff --git a/conf/machine/virtex-5-ml507-powerpc-440.conf 
> b/conf/machine/virtex-5-ml507-powerpc-440.conf
> index d44fc87..d268919 100644
> --- a/conf/machine/virtex-5-ml507-powerpc-440.conf
> +++ b/conf/machine/virtex-5-ml507-powerpc-440.conf
> @@ -5,7 +5,8 @@
>  #@DESCRIPTION: Machine configuration for the Xilinx ML507 FPGA 
> development platform with a Virtex-5 PowerPC 440 processor (with APU FPU).
>
>  include conf/machine/include/virtex-5/virtex-5-base.inc
> -include conf/machine/include/tune-ppc440e.inc
> +#AS include conf/machine/include/tune-ppc440e.inc
> +include conf/machine/include/tune-ppc440.inc
>
>  # Specify linux kernel devicetree
>  KERNEL_DEVICETREE = "${S}/arch/powerpc/boot/dts/virtex440-ml507.dts"

2) the libffi library version "3.0.12" has a small bug (a misplaced 
#ifndef), which is fixed in version "3.0.13"
Fix: I have added to my local.conf

> PREFERRED_VERSION_libffi = "3.0.13"
> PREFERRED_VERSION_libffi-native = "3.0.13"

This way the toolchain compiles properly

When I try "bitbake core-image-minimal" I get 2 problems:

1) the Xilinx git repository has moved from git.xilinx.com to 
github.com/Xilinx
Fix: I have changed the links in u-boot and linux-xilinx
>
> --- a/recipes-bsp/u-boot/u-boot-xilinx_2012.10.bb
> +++ b/recipes-bsp/u-boot/u-boot-xilinx_2012.10.bb
> @@ -12,7 +12,7 @@ PR = "r01"
>
>  # U-Boot source location
>  KBRANCH = "master"
> -SRC_URI = 
> "git://git.xilinx.com/u-boot-xlnx.git;branch=${KBRANCH};protocol=git"
> +SRC_URI = 
> "git://github.com/Xilinx/u-boot-xlnx.git;branch=${KBRANCH};protocol=git"
>
>  S = "${WORKDIR}/git"
> diff --git a/recipes-kernel/linux/linux-xilinx_3.3.bb 
> b/recipes-kernel/linux/linux-xilinx_3.3.bb
> index d803676..76c1edd 100644
> --- a/recipes-kernel/linux/linux-xilinx_3.3.bb
> +++ b/recipes-kernel/linux/linux-xilinx_3.3.bb
> @@ -18,7 +18,7 @@ SRCREV = "1e92da8e3a66b051766b1be57be67e2bff11e19d"
>  PR = "r02"
>
>  KBRANCH = "master"
> -SRC_URI = 
> "git://git.xilinx.com/linux-xlnx.git;protocol=git;branch=${KBRANCH} \
> +SRC_URI = 
> "git://github.com/Xilinx/linux-xlnx.git;protocol=git;branch=${KBRANCH} \
> file://0001-Xilinx-Update-IP-Core-support-for-Xilinx-ISE-14.1.patch \
> file://0002-virtex440-ml507.dts-Update-device-tree-file-using-Xi.patch \
> file://0003-xilinxfb-Fix-regression-in-call-to-XPS-TFT-controlle.patch \
> diff --git a/recipes-kernel/linux/linux-xilinx_3.6.bb 
> b/recipes-kernel/linux/linux-xilinx_3.6.bb
> index 5d529a6..b7d2904 100644
> --- a/recipes-kernel/linux/linux-xilinx_3.6.bb
> +++ b/recipes-kernel/linux/linux-xilinx_3.6.bb
> @@ -17,7 +17,7 @@ SRCREV = "04d9378881401e71f83b8b4fea0abd71d33b4052"
>  PR = "r02"
>
>  KBRANCH = "master"
> -SRC_URI = 
> "git://git.xilinx.com/linux-xlnx.git;protocol=git;branch=${KBRANCH} \
> +SRC_URI = 
> "git://github.com/Xilinx/linux-xlnx.git;protocol=git;branch=${KBRANCH} \
>             file://defconfig \
>             "
>  # Apply machine specific patches.
> diff --git a/recipes-kernel/linux/linux-xilinx_git.bb 
> b/recipes-kernel/linux/linux-xilinx_git.bb
> index 1800183..32351f7 100644
> --- a/recipes-kernel/linux/linux-xilinx_git.bb
> +++ b/recipes-kernel/linux/linux-xilinx_git.bb
> @@ -18,7 +18,7 @@ PV = "${LINUX_VERSION}+git-${SRCREV}"
>  PR = "r18"
>
>  KBRANCH = "master-next"
> -SRC_URI = 
> "git://git.xilinx.com/linux-xlnx.git;protocol=git;branch=${KBRANCH} \
> +SRC_URI = 
> "git://github.com/Xilinx/linux-xlnx.git;protocol=git;branch=${KBRANCH} \
>             file://defconfig"
>
>  FILESPATH = "${@base_set_filespath([ 
> '${FILE_DIRNAME}/${PN}/${SOC_FAMILY}' ], d)}"

2) bitbake complains about the license missing from the u-boot recipe
3) I have troubles also with the git.denx.de repository, which I can 
easily clone by hand but not by bitbake
Fix: I have added the required variables at the end (and fixed the git 
links)

> diff --git a/recipes-bsp/u-boot/u-boot-xilinx_git.bb 
> b/recipes-bsp/u-boot/u-boot-xilinx_git.bb
> index 2ae1ec3..7a4a394 100644
> --- a/recipes-bsp/u-boot/u-boot-xilinx_git.bb
> +++ b/recipes-bsp/u-boot/u-boot-xilinx_git.bb
> @@ -4,6 +4,7 @@ require recipes-bsp/u-boot/u-boot.inc
>  DEFAULT_PREFERENCE = "-1"
>
>  PR = "r17"
> +
>  PV_virtex-5   = "v2012.04.01"
>  PV_microblaze = "v2012.10"
>  PV_zynq-7     = "v2012.10"
> @@ -16,19 +17,27 @@ FILESPATH = "${@base_set_filespath([ 
> '${FILE_DIRNAME}/${PN}/${SOC_FAMILY}' ], d)
>
>  # Virtex-5 src location
>  KBRANCH_virtex-5 = "master"
> -SRC_URI_virtex-5 = 
> "git://git.denx.de/u-boot.git;branch=${KBRANCH};protocol=git"
> -SRCREV_virtex-5 = "415d386877df49eb051b85ef74fa59a16dc17c7d"
> +#SRC_URI_virtex-5 = 
> "git://git.denx.de/u-boot.git;branch=${KBRANCH};protocol=git"
> +#SRCREV_virtex-5 = "415d386877df49eb051b85ef74fa59a16dc17c7d"
> +SRC_URI_virtex-5 = 
> "git://github.com/Xilinx/u-boot-xlnx.git;branch=${KBRANCH};protocol=git"
> +SRCREV_virtex-5 = "26786228acfdc0a02190a8d9ca9fcca51a5dcf28"
>
>  # Spartan-6 src location
>  KBRANCH_spartan-6 = "master"
> -SRC_URI_spartan-6 = 
> "git://git.xilinx.com/u-boot-xlnx.git;branch=${KBRANCH};protocol=git"
> +SRC_URI_spartan-6 = 
> "git://github.com/Xilinx/u-boot-xlnx.git;branch=${KBRANCH};protocol=git"
>  SRCREV_spartan-6 = "26786228acfdc0a02190a8d9ca9fcca51a5dcf28"
>
>  # Zynq-7 src location
>  KBRANCH_zynq-7 = "master"
> -SRC_URI_zynq-7 = 
> "git://git.xilinx.com/u-boot-xlnx.git;branch=${KBRANCH};protocol=git"
> +SRC_URI_zynq-7 = 
> "git://github.com/Xilinx/u-boot-xlnx.git;branch=${KBRANCH};protocol=git"
>  SRCREV_zynq-7 = "26786228acfdc0a02190a8d9ca9fcca51a5dcf28"
>
> +PV                = "${PV_${SOC_FAMILY}}"
> +LIC_FILES_CHKSUM  = "${LIC_FILES_CHKSUM_${SOC_FAMILY}}"
> +KBRANCH           = "${KBRANCH_${SOC_FAMILY}}"
> +SRC_URI           = "${SRC_URI_${SOC_FAMILY}}"
> +SRCREV            = "${SRCREV_${SOC_FAMILY}}"
> +
>  XILINX_BOARD ?= "${@find_board(bb.data.getVar('XILINX_BSP_PATH', d, 
> 1), d)}"
>
>  S = "${WORKDIR}/git"

There still some problems which stop my build ...
I will get them to you in a following email

All the best
AndreaS





More information about the yocto mailing list