summaryrefslogtreecommitdiffstats
path: root/recipes-bsp/u-boot/u-boot-qoriq_2014.07.bb
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-bsp/u-boot/u-boot-qoriq_2014.07.bb')
-rw-r--r--recipes-bsp/u-boot/u-boot-qoriq_2014.07.bb193
1 files changed, 193 insertions, 0 deletions
diff --git a/recipes-bsp/u-boot/u-boot-qoriq_2014.07.bb b/recipes-bsp/u-boot/u-boot-qoriq_2014.07.bb
new file mode 100644
index 0000000..4a1b908
--- /dev/null
+++ b/recipes-bsp/u-boot/u-boot-qoriq_2014.07.bb
@@ -0,0 +1,193 @@
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.07+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 = "659b6a23a8b1f3026200bc6352dbacef53f4dcb1"
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}_config
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.bin
93 if [ "x${UBOOT_TARGET}" != "x" ] && echo $board |egrep -qi "SECBOOT|SECURE"; then
94 cp ${S}/${board}/${UBOOT_SOURCE} ${S}/${board}/${UBOOT_TARGET}.bin
95 elif [ "x${UBOOT_TARGET}" != "x" ]; then
96 # some boards' final binary was not named as u-boot.bin
97 if [ "${UBOOT_TARGET}" = "u-boot-nand" ];then
98 if echo $board |egrep -q "^(BSC|C29|P10|P2020RDB)";then
99 UBOOT_SOURCE=u-boot-with-spl.bin
100 elif echo $board |egrep -q "^(B4|T1|T2|T4)";then
101 UBOOT_SOURCE=u-boot-with-spl-pbl.bin
102 elif echo $board |egrep -q "^(P2041|P3|P4|P5)";then
103 UBOOT_SOURCE=u-boot.pbl
104 fi
105 elif [ "${UBOOT_TARGET}" = "u-boot-spi" ];then
106 if echo $board |egrep -q "^(P10|P2020RDB)";then
107 UBOOT_SOURCE=u-boot-with-spl.bin
108 elif echo $board |egrep -q "^(T1|T2)";then
109 UBOOT_SOURCE=u-boot-with-spl-pbl.bin
110 elif echo $board |egrep -q "^(B4|P2041|P3|P4|P5|T4)";then
111 UBOOT_SOURCE=u-boot.pbl
112 fi
113 elif [ "${UBOOT_TARGET}" = "u-boot-sd" ];then
114 if echo $board |egrep -q "^(P10|P2020RDB)";then
115 UBOOT_SOURCE=u-boot-with-spl.bin
116 elif echo $board |egrep -q "^(B4|T1|T2|T4)";then
117 UBOOT_SOURCE=u-boot-with-spl-pbl.bin
118 elif echo $board |egrep -q "^(P2041|P3|P4|P5)";then
119 UBOOT_SOURCE=u-boot.pbl
120 fi
121 fi
122 cp ${S}/${board}/${UBOOT_SOURCE} ${S}/${board}/${UBOOT_TARGET}.bin
123
124 # use boot-format to regenerate spi image if BOOTFORMAT_CONFIG is not empty
125 if [ "${UBOOT_TARGET}" = "u-boot-spi" ] && [ -n "${BOOTFORMAT_CONFIG}" ];then
126 ${STAGING_BINDIR_NATIVE}/boot_format \
127 ${STAGING_DATADIR_NATIVE}/boot_format/${BOOTFORMAT_CONFIG} \
128 ${S}/${board}/${UBOOT_SOURCE} -spi ${S}/${board}/${UBOOT_TARGET}.bin
129 fi
130 fi
131 done
132}
133
134do_install(){
135 if [ "x${UBOOT_MACHINES}" = "x" ]; then
136 UBOOT_MACHINES=${UBOOT_MACHINE}
137 fi
138
139 for board in ${UBOOT_MACHINES}; do
140 if ! grep -wq $board ${S}/boards.cfg;then
141 continue
142 fi
143
144 case "${board}" in
145 *SDCARD*) UBOOT_TARGET="u-boot-sd";;
146 *SPIFLASH*) UBOOT_TARGET="u-boot-spi";;
147 *NAND*) UBOOT_TARGET="u-boot-nand";;
148 *SRIO*) UBOOT_TARGET="u-boot-srio";;
149 *) UBOOT_TARGET="u-boot";;
150 esac
151
152 if [ -f ${S}/${board}/${UBOOT_TARGET}.bin ]; then
153 mkdir -p ${D}/boot/
154 install ${S}/${board}/${UBOOT_TARGET}.bin ${D}/boot/${UBOOT_TARGET}-${board}-${PV}-${PR}.bin
155 ln -sf ${UBOOT_TARGET}-${board}-${PV}-${PR}.bin ${D}/boot/${UBOOT_TARGET}.bin
156 fi
157 done
158}
159
160do_deploy(){
161 if [ "x${UBOOT_MACHINES}" = "x" ]; then
162 UBOOT_MACHINES=${UBOOT_MACHINE}
163 fi
164
165 for board in ${UBOOT_MACHINES}; do
166 if ! grep -wq $board ${S}/boards.cfg;then
167 continue
168 fi
169
170 case "${board}" in
171 *SDCARD*) UBOOT_TARGET="u-boot-sd";;
172 *SPIFLASH*) UBOOT_TARGET="u-boot-spi";;
173 *NAND*) UBOOT_TARGET="u-boot-nand";;
174 *SRIO*) UBOOT_TARGET="u-boot-srio";;
175 *) UBOOT_TARGET="u-boot";;
176 esac
177
178 if [ -f ${S}/${board}/${UBOOT_TARGET}.bin ]; then
179 mkdir -p ${DEPLOYDIR}
180 install ${S}/${board}/${UBOOT_TARGET}.bin ${DEPLOYDIR}/${UBOOT_TARGET}-${board}-${PV}-${PR}.bin
181
182 cd ${DEPLOYDIR}
183 rm -f ${UBOOT_TARGET}-${board}.bin
184 ln -sf ${UBOOT_TARGET}-${board}-${PV}-${PR}.bin ${UBOOT_TARGET}-${board}.bin
185 fi
186 done
187}
188addtask deploy after do_install
189
190PACKAGES += "${PN}-images"
191FILES_${PN}-images += "/boot"
192
193ALLOW_EMPTY_${PN} = "1"