blob: 07dfda4616d1a725d4131aaf87544a3a328232c8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
SUMMARY = "Initial bootstrap for AT91 ARM MPUs"
DESCRIPTION = " \
at91bootstrap is the second-level bootloader for Atmel AT91 \
SoCs. It provides a set of algorithms to manage the hardware \
initialization and to download the main application (or a \
third-level bootloader) from specified boot media to \
main memory and start it. \
"
AUTHOR = "Atmel Corporation"
HOMEPAGE = "http://www.at91.com/linux4sam/bin/view/Linux4SAM/AT91Bootstrap"
BUGTRACKER = "https://github.com/linux4sam/at91bootstrap/issues"
SECTION = "bootloaders"
LICENSE = "ATMEL"
LIC_FILES_CHKSUM = "file://main.c;endline=27;md5=42f86d2f6fd17d1221c5c651b487a07f"
inherit cml1 deploy
# TODO: python2: use python3
inherit python-dir pythonnative
SRC_URI_append = " \
file://defconfig \
file://onetime-slow-clock-switch.patch \
file://0003-disable-rtc-interrupts.patch \
file://at91sam9x5_4bit_pmecc_header.bin \
"
SRC_URI_append_mtrv1 = " file://0001-mtrv1-DDRlowDriveStrength.patch \
file://defconfig.mtr \
file://0005-at91bootstrap-3.8-mtr.patch \
"
SRC_URI_append_mtr = " file://defconfig.mtr \
file://0005-at91bootstrap-3.8-mtr.patch \
"
SRC_URI_append_mtre = " file://0001-mtrv1-DDRlowDriveStrength.patch \
file://defconfig.mtr \
file://0005-at91bootstrap-3.8-mtr.patch \
"
SRC_URI_append_mtcdt = " file://0005-at91bootstrap-3.8-mtcdt.patch "
SRC_URI_append_mtcap = " file://0005-at91bootstrap-3.8-mtcap.patch "
DEPENDS += "bc-native"
AT91BOOTSTRAP_MACHINE ??= "${MACHINE}"
AT91BOOTSTRAP_CONFIG ??= "${AT91BOOTSTRAP_MACHINE}nf_uboot"
AT91BOOTSTRAP_CONFIG_at91sam9x5ek-sd ??= "${AT91BOOTSTRAP_MACHINE}sd_uboot"
AT91BOOTSTRAP_CONFIG_sama5d3-xplained-sd ??= "${AT91BOOTSTRAP_MACHINE}sd_uboot"
AT91BOOTSTRAP_CONFIG_sama5d4ek ??= "${AT91BOOTSTRAP_MACHINE}nf_uboot_secure"
AT91BOOTSTRAP_CONFIG_sama5d4-xplained ??= "${AT91BOOTSTRAP_MACHINE}nf_uboot_secure"
AT91BOOTSTRAP_CONFIG_sama5d4-xplained-sd ??= "${AT91BOOTSTRAP_MACHINE}sd_uboot_secure"
AT91BOOTSTRAP_CONFIG_sama5d2-xplained ??= "${AT91BOOTSTRAP_MACHINE}-bsrdf_uboot"
AT91BOOTSTRAP_CONFIG_sama5d2-xplained-sd ??= "${AT91BOOTSTRAP_MACHINE}-bsrsd_uboot"
AT91BOOTSTRAP_CONFIG_sama5d27-som1-ek ??= "${AT91BOOTSTRAP_MACHINE}qspi_uboot"
AT91BOOTSTRAP_CONFIG_sama5d27-som1-ek-sd ??= "${AT91BOOTSTRAP_MACHINE}sd_uboot"
AT91BOOTSTRAP_TARGET ??= "${AT91BOOTSTRAP_CONFIG}_defconfig"
AT91BOOTSTRAP_LOAD ??= "nandflashboot-uboot"
AT91BOOTSTRAP_LOAD_at91sam9x5ek-sd ??= "sdboot-uboot"
AT91BOOTSTRAP_LOAD_sama5d2-xplained ??= "dataflashboot-uboot"
AT91BOOTSTRAP_LOAD_sama5d2-xplained-sd ??= "sdboot-uboot"
AT91BOOTSTRAP_LOAD_sama5d27-som1-ek ??= "qspiboot-uboot"
AT91BOOTSTRAP_LOAD_sama5d27-som1-ek-sd ??= "sdboot-uboot"
AT91BOOTSTRAP_LOAD_sama5d3-xplained-sd ??= "sdboot-uboot"
AT91BOOTSTRAP_LOAD_sama5d4-xplained-sd ??= "sdboot-uboot"
AT91BOOTSTRAP_SUFFIX ?= "bin"
AT91BOOTSTRAP_IMAGE ?= "${AT91BOOTSTRAP_MACHINE}-${AT91BOOTSTRAP_LOAD}-${PV}.${PR}.${AT91BOOTSTRAP_SUFFIX}"
AT91BOOTSTRAP_BINARY ?= "at91bootstrap.${AT91BOOTSTRAP_SUFFIX}"
AT91BOOTSTRAP_SYMLINK ?= "at91bootstrap-${AT91BOOTSTRAP_MACHINE}.${AT91BOOTSTRAP_SUFFIX}"
EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} REVISION=${PR} CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}"'
do_configure() {
# Copy board defconfig to .config if .config does not exist. This
# allows recipes to manage the .config themselves in
# do_configure_prepend().
if [ -f "${S}/board/${AT91BOOTSTRAP_MACHINE}/${AT91BOOTSTRAP_TARGET}" ] && [ ! -f "${B}/.config" ]; then
cp "${S}/board/${AT91BOOTSTRAP_MACHINE}/${AT91BOOTSTRAP_TARGET}" "${B}/.config"
fi
# Copy defconfig to .config if .config does not exist. This allows
# recipes to manage the .config themselves in do_configure_prepend()
# and to override default settings with a custom file.
if [[ ${MACHINE} == mtr ]] || [[ ${MACHINE} == mtrv1 ]] || [[ ${MACHINE} == mtre ]] ; then
CTYPE=".mtr"
fi
if [ -f "${WORKDIR}/defconfig${CTYPE}" ] && [ ! -f "${B}/.config" ]; then
cp "${WORKDIR}/defconfig${CTYPE}" "${B}/.config"
fi
if [ ! -f "${S}/.config" ]; then
bbfatal "No config files found"
fi
cml1_do_configure
}
do_compile() {
if [ "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'ld-is-gold', '', d)}" = "ld-is-gold" ] ; then
sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' ${S}/Makefile
fi
unset CFLAGS CPPFLAGS LDFLAGS
oe_runmake
}
do_deploy () {
install -d ${DEPLOYDIR}
install ${S}/binaries/${AT91BOOTSTRAP_BINARY} ${DEPLOYDIR}/${AT91BOOTSTRAP_IMAGE}
cd ${DEPLOYDIR}
rm -f ${AT91BOOTSTRAP_BINARY} ${AT91BOOTSTRAP_SYMLINK}
ln -sf ${AT91BOOTSTRAP_IMAGE} ${AT91BOOTSTRAP_SYMLINK}
ln -sf ${AT91BOOTSTRAP_IMAGE} ${AT91BOOTSTRAP_BINARY}
# Create a symlink ready for file copy on SD card
rm -f boot.bin BOOT.BIN
ln -sf ${AT91BOOTSTRAP_IMAGE} BOOT.BIN
# Create padded version. Padded version is to be eliminated later.
cp -f ${WORKDIR}/at91sam9x5_4bit_pmecc_header.bin ${DEPLOYDIR}/at91bootstrap_pmecc_padded.bin
cat ${DEPLOYDIR}/${AT91BOOTSTRAP_IMAGE} >> ${DEPLOYDIR}/at91bootstrap_pmecc_padded.bin
}
addtask deploy before do_build after do_compile
PACKAGE_ARCH = "${MACHINE_ARCH}"
|