blob: fe728ba7c0237bb2db2c1bbc75862d1a05897037 (
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
|
SECTION = "kernel"
DESCRIPTION = "Linux kernel for Atmel ARM SoCs (aka AT91)"
SUMMARY = "Linux kernel for Atmel ARM SoCs (aka AT91)"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
inherit kernel
# mts class to build dtb and append to kernel image
inherit linux-append-dtb
RDEPENDS_kernel-base=""
FILESEXTRAPATHS_prepend := "${THISDIR}/${P}:"
KERNEL_EXTRA_ARGS ="LOADADDR=0x20008000"
PV = "4.9+git${SRCPV}"
S = "${WORKDIR}/git"
SRCREV = "29796588eb6a4c89795baaea3035764d15d0e44a"
KBRANCH = "linux-4.9-at91"
SRC_URI = "git://github.com/linux4sam/linux-at91.git;protocol=git;branch=${KBRANCH}"
SRC_URI += "file://defconfig"
COMMON_PATCHES = "file://linux-4.9-pps-gpio.patch"
SRC_URI_append_mtcdt = "\
${COMMON_PATCHES} \
file://defconfig \
file://linux-4.9-mtcdt-device-tree.patch \
file://linux-4.9-add-num_accessory_ports-config-option.patch \
file://950-0090-OF-DT-Overlay-configfs-interface.patch \
file://at91pinctrl_reprobe.patch \
"
DTB_APPEND_mtcdt = "mtcdt"
python __anonymous () {
if d.getVar('UBOOT_FIT_IMAGE', True) == 'xyes':
d.appendVar('DEPENDS', ' u-boot-mkimage-native dtc-native')
}
do_deploy_append() {
if [ "${UBOOT_FIT_IMAGE}" = "xyes" ]; then
DTB_PATH="${B}/arch/${ARCH}/boot/dts/"
if [ ! -e "${DTB_PATH}" ]; then
DTB_PATH="${B}/arch/${ARCH}/boot/"
fi
if [ -e ${S}/arch/${ARCH}/boot/dts/${MACHINE}.its ]; then
cp ${S}/arch/${ARCH}/boot/dts/${MACHINE}*.its ${DTB_PATH}
cd ${DTB_PATH}
mkimage -f ${MACHINE}.its ${MACHINE}.itb
install -m 0644 ${MACHINE}.itb ${DEPLOYDIR}/${MACHINE}.itb
cd -
fi
fi
}
kernel_do_configure_append() {
rm -f ${B}/.scmversion ${S}/.scmversion
cd ${S}; git status; cd -
}
KERNEL_MODULE_AUTOLOAD += "atmel_usba_udc g_serial"
KERNEL_MODULE_PACKAGE_SUFFIX=""
COMPATIBLE_MACHINE = "(sama5d2-xplained|sama5d2-xplained-sd|sama5d2-ptc-ek|sama5d2-ptc-ek-sd|sama5d27-som1-ek|sama5d27-som1-ek-sd|sama5d4-xplained|sama5d4-xplained-sd|sama5d4ek|sama5d3-xplained|sama5d3-xplained-sd|sama5d3xek|at91sam9x5ek|at91sam9m10g45ek|at91sam9rlek|mtcdt)"
pkg_preinst_kernel-image-uimage() {
set -x
mkdir -m 0755 /var/volatile/boot 2>/dev/null || true
ls /boot || true
ls -l /boot | true
rm -rf /boot
ln -sf /var/volatile/boot /boot 2>/dev/null || true
}
pkg_prerm_kernel-image-uimage() {
rm -rf /var/volatile/boot || true
rm -rf /boot || true
}
PACKAGES =+ "kernel-image-uimage-inst kernel-dt-bindings-dev"
# Not sure how to get the name below generated automatically
KERNELVERSION = "4.9.87-linux4sam-5.8-dirty"
KERNELVERSION2 = "4.9.87-linux4sam_5.8-dirty"
RDEPENDS_kernel-image-uimage-inst += "kernel-image-uimage-${KERNELVERSION}"
ALLOW_EMPTY_kernel-image-uimage-inst = "1"
pkg_postinst_kernel-image-uimage-inst() {
# Only installs all the kernel on the device (D is defined in bitbake)
if [[ -z "$D" ]] ; then
logger -s -p user.info -t opkg "Upgrading kernel ${PV} -- poweroff will create an unbootable device"
set -x
kernel_mtd="/dev/$(cat /proc/mtd | grep '\"uImage\"' | cut -d : -f 1)"
flash_erase ${kernel_mtd} 0 0
if nandwrite -p ${kernel_mtd} /boot/uImage-${KERNELVERSION2} ; then
echo 'Kernel image update is successful'
fi
set +x
fi
}
# The 4.9 kernel dtc will not work with overlays, so don't install dtc and fixdep
do_install_append() {
#install -D -m 0755 scripts/dtc/dtc ${STAGING_DIR_NATIVE}${USRBINPATH_class-native}/dtc
#install -D -m 0755 scripts/basic/fixdep ${STAGING_DIR_NATIVE}${USRBINPATH_class-native}/fixdep
install -d -m 0755 ${D}${includedir}/linux
cp -a ${STAGING_KERNEL_DIR}/include/dt-bindings ${D}${includedir}/linux/
install -d -m 0755 ${STAGING_DIR_TARGET}/${includedir}/linux
cp -a ${STAGING_KERNEL_DIR}/include/dt-bindings ${STAGING_DIR_TARGET}/${includedir}/linux
}
FILES_kernel-dt-bindings-dev = "/usr/include/linux/dt-bindings"
|