summaryrefslogtreecommitdiffstats
path: root/recipes-bsp/u-boot/u-boot-qoriq_git.bb
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-bsp/u-boot/u-boot-qoriq_git.bb')
-rw-r--r--recipes-bsp/u-boot/u-boot-qoriq_git.bb179
1 files changed, 179 insertions, 0 deletions
diff --git a/recipes-bsp/u-boot/u-boot-qoriq_git.bb b/recipes-bsp/u-boot/u-boot-qoriq_git.bb
new file mode 100644
index 0000000..e16438f
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-qoriq_git.bb
@@ -0,0 +1,179 @@
1DESCRIPTION = "U-boot bootloader"
2HOMEPAGE = "http://u-boot.sf.net"
3SECTION = "bootloaders"
4PROVIDES = "virtual/bootloader u-boot"
5LICENSE = "GPLv2 & BSD-3-Clause & BSD-2-Clause & LGPL-2.0 & LGPL-2.1"
6LIC_FILES_CHKSUM = " \
7 file://Licenses/gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
8 file://Licenses/bsd-2-clause.txt;md5=6a31f076f5773aabd8ff86191ad6fdd5 \
9 file://Licenses/bsd-3-clause.txt;md5=4a1190eac56a9db675d58ebe86eaf50c \
10 file://Licenses/lgpl-2.0.txt;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
11 file://Licenses/lgpl-2.1.txt;md5=4fbd65380cdd255951079008b364516c \
12"
13
14PV = "2014.01+fslgit"
15INHIBIT_DEFAULT_DEPS = "1"
16DEPENDS = "boot-format-native libgcc ${@base_contains('TCMODE', 'external-fsl', '', 'virtual/${TARGET_PREFIX}gcc', d)}"
17
18inherit deploy
19
20SRC_URI = "git://git.freescale.com/ppc/sdk/u-boot.git;nobranch=1"
21SRCREV = "fe1d4f5739e752ad45ada6227a9fb19590af7194"
22
23python () {
24 if d.getVar("TCMODE", True) == "external-fsl":
25 return
26
27 ml = d.getVar("MULTILIB_VARIANTS", True)
28 arch = d.getVar("OVERRIDES", True)
29
30 if ("e5500-64b:" in arch or "e6500-64b:" in arch) and not "lib32" in ml:
31 raise bb.parse.SkipPackage("Building the u-boot for this arch requires multilib to be enabled")
32}
33
34DEPENDS_append_e5500-64b = "${@base_contains('TCMODE', 'external-fsl', '', ' lib32-gcc-cross-powerpc lib32-libgcc', d)}"
35PATH_append_e5500-64b = ":${STAGING_BINDIR_NATIVE}/powerpc${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}/"
36TOOLCHAIN_OPTIONS_append_e5500-64b = "${@base_contains('TCMODE', 'external-fsl', '', '/../lib32-${MACHINE}', d)}"
37TARGET_VENDOR_virtclass-multilib-lib32 ?= "${@base_contains('TCMODE', 'external-fsl', '', '-${DISTRO}mllib32', d)}"
38WRAP_TARGET_PREFIX_e5500-64b := "powerpc${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}-"
39
40DEPENDS_append_e6500-64b = "${@base_contains('TCMODE', 'external-fsl', '', ' lib32-gcc-cross-powerpc lib32-libgcc', d)}"
41PATH_append_e6500-64b = ":${STAGING_BINDIR_NATIVE}/powerpc${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}/"
42TOOLCHAIN_OPTIONS_append_e6500-64b = "${@base_contains('TCMODE', 'external-fsl', '', '/../lib32-${MACHINE}', d)}"
43TARGET_VENDOR_virtclass-multilib-lib32 ?= "${@base_contains('TCMODE', 'external-fsl', '', '-${DISTRO}mllib32', d)}"
44WRAP_TARGET_PREFIX_e6500-64b := "powerpc${TARGET_VENDOR_virtclass-multilib-lib32}-${HOST_OS}-"
45WRAP_TARGET_PREFIX = "${TARGET_PREFIX}"
46
47PACKAGE_ARCH = "${MACHINE_ARCH}"
48
49UBOOT_LOCALVERSION = "${@d.getVar('SDK_VERSION', True).partition(' ')[0]}"
50
51USRC ?= ""
52S = '${@base_conditional("USRC", "", "${WORKDIR}/git", "${USRC}", d)}'
53
54CROSS_COMPILE = '${@base_conditional("TCMODE", "external-fsl", "${TARGET_PREFIX}", "${WRAP_TARGET_PREFIX}", d)}'
55EXTRA_OEMAKE = 'CROSS_COMPILE=${CROSS_COMPILE} CC="${CROSS_COMPILE}gcc ${TOOLCHAIN_OPTIONS}"'
56
57do_compile () {
58 unset LDFLAGS
59 unset CFLAGS
60 unset CPPFLAGS
61
62 if [ ! -e ${B}/.scmversion -a ! -e ${S}/.scmversion ]
63 then
64 head=`git rev-parse --verify --short HEAD 2> /dev/null`
65 printf "%s%s%s" ${UBOOT_LOCALVERSION} +g $head > ${B}/.scmversion
66 printf "%s%s%s" ${UBOOT_LOCALVERSION} +g $head > ${S}/.scmversion
67 fi
68
69 if [ "x${UBOOT_MACHINES}" = "x" ]; then
70 UBOOT_MACHINES=${UBOOT_MACHINE}
71 fi
72
73 for board in ${UBOOT_MACHINES}; do
74 if ! grep -wq $board ${S}/boards.cfg;then
75 echo "WARNING: $board not supported in boards.cfg"
76 continue
77 fi
78
79 oe_runmake O=${board} distclean
80 oe_runmake O=${board} ${board}
81 oe_runmake O=${board} all
82
83 case "${board}" in
84 *SDCARD*) UBOOT_TARGET="u-boot-sd";;
85 *SPIFLASH*) UBOOT_TARGET="u-boot-spi";;
86 *NAND*) UBOOT_TARGET="u-boot-nand";;
87 *SRIO*) UBOOT_TARGET="u-boot-srio";;
88 *) UBOOT_TARGET="";;
89 esac
90
91 # deal with sd/spi/nand/srio image
92 UBOOT_SOURCE=u-boot
93 if [ "x${UBOOT_TARGET}" != "x" ]; then
94 # some boards' nand image was named as u-boot-with-spl
95 if [ "${UBOOT_TARGET}" = "u-boot-nand" ];then
96 if echo $board |egrep -q "(P1010RDB|P1020RDB|P1021RDB|P2020RDB|P1022DS|BSC913|C293)";then
97 UBOOT_SOURCE=u-boot-with-spl
98 fi
99 elif [ "${UBOOT_TARGET}" = "u-boot-spi" ];then
100 if echo $board |egrep -q "(P1010RDB|P1020RDB|P1021RDB|P2020RDB|P1022DS)";then
101 UBOOT_SOURCE=u-boot-with-spl
102 fi
103 elif [ "${UBOOT_TARGET}" = "u-boot-sd" ];then
104 if echo $board |egrep -q "(P1010RDB|P1020RDB|P1021RDB|P2020RDB|P1022DS)";then
105 UBOOT_SOURCE=u-boot-with-spl
106 fi
107 fi
108 cp ${S}/${board}/${UBOOT_SOURCE}.bin ${S}/${board}/${UBOOT_TARGET}.bin
109
110 # use boot-format to regenerate spi image if BOOTFORMAT_CONFIG is not empty
111 if [ "${UBOOT_TARGET}" = "u-boot-spi" ] && [ -n "${BOOTFORMAT_CONFIG}" ];then
112 ${STAGING_BINDIR_NATIVE}/boot_format \
113 ${STAGING_DATADIR_NATIVE}/boot_format/${BOOTFORMAT_CONFIG} \
114 ${S}/${board}/${UBOOT_SOURCE}.bin -spi ${S}/${board}/${UBOOT_TARGET}.bin
115 fi
116 fi
117 done
118}
119
120do_install(){
121 if [ "x${UBOOT_MACHINES}" = "x" ]; then
122 UBOOT_MACHINES=${UBOOT_MACHINE}
123 fi
124
125 for board in ${UBOOT_MACHINES}; do
126 if ! grep -wq $board ${S}/boards.cfg;then
127 continue
128 fi
129
130 case "${board}" in
131 *SDCARD*) UBOOT_TARGET="u-boot-sd";;
132 *SPIFLASH*) UBOOT_TARGET="u-boot-spi";;
133 *NAND*) UBOOT_TARGET="u-boot-nand";;
134 *SRIO*) UBOOT_TARGET="u-boot-srio";;
135 *) UBOOT_TARGET="u-boot";;
136 esac
137
138 if [ -f ${S}/${board}/${UBOOT_TARGET}.bin ]; then
139 mkdir -p ${D}/boot/
140 install ${S}/${board}/${UBOOT_TARGET}.bin ${D}/boot/${UBOOT_TARGET}-${board}-${PV}-${PR}.bin
141 ln -sf ${UBOOT_TARGET}-${board}-${PV}-${PR}.bin ${D}/boot/${UBOOT_TARGET}.bin
142 fi
143 done
144}
145
146do_deploy(){
147 if [ "x${UBOOT_MACHINES}" = "x" ]; then
148 UBOOT_MACHINES=${UBOOT_MACHINE}
149 fi
150
151 for board in ${UBOOT_MACHINES}; do
152 if ! grep -wq $board ${S}/boards.cfg;then
153 continue
154 fi
155
156 case "${board}" in
157 *SDCARD*) UBOOT_TARGET="u-boot-sd";;
158 *SPIFLASH*) UBOOT_TARGET="u-boot-spi";;
159 *NAND*) UBOOT_TARGET="u-boot-nand";;
160 *SRIO*) UBOOT_TARGET="u-boot-srio";;
161 *) UBOOT_TARGET="u-boot";;
162 esac
163
164 if [ -f ${S}/${board}/${UBOOT_TARGET}.bin ]; then
165 mkdir -p ${DEPLOYDIR}
166 install ${S}/${board}/${UBOOT_TARGET}.bin ${DEPLOYDIR}/${UBOOT_TARGET}-${board}-${PV}-${PR}.bin
167
168 cd ${DEPLOYDIR}
169 rm -f ${UBOOT_TARGET}-${board}.bin
170 ln -sf ${UBOOT_TARGET}-${board}-${PV}-${PR}.bin ${UBOOT_TARGET}-${board}.bin
171 fi
172 done
173}
174addtask deploy after do_install
175
176PACKAGES += "${PN}-images"
177FILES_${PN}-images += "/boot"
178
179ALLOW_EMPTY_${PN} = "1"