[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