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