blob: b6c40c8df8aa86eff335b892945d6ff653395626 (
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
|
DESCRIPTION = "Compile MT board device tree overlays"
LICENSE = "(GPLv2+)"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit update-rc.d
INITSCRIPT_NAME = "${PN}"
# mt-dt-overlay must start before mts-io
# because the gpio-leds driver will not load
# after mts-io.
INITSCRIPT_PARAMS = "start 39 S ."
DEPENDS = "dtc-native virtual/kernel u-boot-mkimage-native"
RDEPENDS_${PN} = "bash"
COMPATIBLE_MACHINE = "(mtcap|mtrv1|mtcdt|mtcpmhs)"
# By using an overlay, we should be able to support multiple pinouts
# using the same image. The overlays go into /lib/dtoverlays.
# There names are: [hw-version]-driver.dtbo
# e.g. /lib/dtoverlays/MTRV1-0.0-pps.dtbo
# The idea is that mts-io will search for the overlays, and install the
# appropriate device tree overlay for the current hw-version.
dt_dir = "/lib/dtoverlays"
PR = "r1"
SRC_URI = " \
git://git.multitech.net/mt-dt-overlay.git;protocol=https \
file://init-default \
file://init-mtcpmhs \
"
SRCREV = "${PV}"
S = "${WORKDIR}/git"
do_compile[depends] += "virtual/kernel:do_deploy virtual/kernel:do_shared_workdir"
do_compile[nostamp] = "1"
# Make sure we are using the Yocto version of DTC, not what is installed in /usr/bin
DTC_BIN_DIR = "${COMPONENTS_DIR}/x86_64/dtc-native/usr/bin"
do_compile () {
echo MACHINE is ${MACHINE}
oe_runmake DTC=${DTC_BIN_DIR}/dtc KERNEL_DIR=${STAGING_KERNEL_DIR} KERNEL_BUILD_DIR=${KERNEL_PATH} ${MACHINE}_dtbos
}
FILES_${PN} = "${dt_dir} ${sysconfdir}"
addtask install after do_compile
# The destination and any symlinks are defined in the source file.
#
# A line starting as follows " * Put: [destination]" in the source
# defines the destination file name for the device tree binaries.
#
# A line starting as follows " * Link: [destination]" defines a symlink
# to the device tree binary file.
#
do_install () {
install -d ${D}/${sysconfdir}/init.d
if [ ${MACHINE} = "mtcpmhs" ] ; then
install -m 0755 ${WORKDIR}/init-mtcpmhs ${D}/${sysconfdir}/init.d/${PN}
else
install -m 0755 ${WORKDIR}/init-default ${D}/${sysconfdir}/init.d/${PN}
fi
# Copy files to /lib/dt-overlay/main (mtac cards will be in mtac)
if [ -e ${AT91BOOTSTRAP_MACHINE} ]; then
install -d ${D}/${dt_dir}
(
cd ${MACHINE}
echo "Current directory is $(pwd)"
for f in *.dtbo ; do
s=$(basename -s .dtbo $f).dtso
location_ln=$(egrep '^[[:space:]]*\*[[:space:]]*Put:[[:space:]]*[^[:space:]]+' $s | sed -r 's/.*Put:[[:space:]]*//')
echo "Binary: $f Source: $s"
echo "Destination: $location_ln"
dirname=$(dirname $location_ln)
install -d ${D}/${dt_dir}/$dirname
install ${f} ${D}/${dt_dir}/$location_ln
links=$(egrep '^[[:space:]]*\*[[:space:]]*Link:[[:space:]]*[^[:space:]]+' $s | sed -r 's/.*Link:[[:space:]]*//')
echo "All Links: "
echo "$links"
echo "End links"
for l in $links ; do
ldirname=$(dirname $l)
if ! [ -d "${D}/$ldirname" ] ; then
install -d ${D}/${dt_dir}/$ldirname
fi
echo ln -sf ${dt_dir}/$dirname/$f ${D}/${dt_dir}/$l
ln -sf ${dt_dir}/$location_ln ${D}/${dt_dir}/$l
done
done
)
fi
}
|