summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-altera.inc
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-altera.inc')
-rw-r--r--recipes-kernel/linux/linux-altera.inc116
1 files changed, 16 insertions, 100 deletions
diff --git a/recipes-kernel/linux/linux-altera.inc b/recipes-kernel/linux/linux-altera.inc
index 0cddc82..3320c82 100644
--- a/recipes-kernel/linux/linux-altera.inc
+++ b/recipes-kernel/linux/linux-altera.inc
@@ -1,112 +1,28 @@
1PR = "r1"
2
3KERNEL_REPO ?= "git://git.rocketboards.org/linux-socfpga.git"
4KERNEL_PROT ?= "http"
5KERNEL_DEFCONFIG ?= "socfpga_defconfig"
6KERNEL_TAG ?= "${AUTOREV}"
7
8SRC_URI = "${KERNEL_REPO};protocol=${KERNEL_PROT};branch=${KERNEL_BRANCH}"
9
10SRCREV_pn-${PN} = "${KERNEL_TAG}"
11
12inherit kernel
13SECTION = "kernel"
14DESCRIPTION = "Altera Linux kernel" 1DESCRIPTION = "Altera Linux kernel"
15LICENSE = "GPLv2" 2LICENSE = "GPLv2"
16 3
17LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" 4LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
18 5
19S = "${WORKDIR}/git" 6KERNEL_REPO ?= "git://github.com/altera-opensource/linux-socfpga.git"
20 7KERNEL_PROT ?= "https"
21MACHINE_DEFCONFIG = "${KERNEL_DEFCONFIG}"
22
23do_configure() {
24 export INITRAMFS_IMAGE_FILE="${INITRAMFS_IMAGE}-${MACHINE}.cpio"
25
26 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
27 export CROSS_COMPILE="${TARGET_PREFIX}"
28 export ARCH=${ARCH}
29
30 oe_runmake -C ${S} O=${B} ${MACHINE_DEFCONFIG} CONFIG_BLK_DEV_INITRD=y
31
32 pushd ${B}
33 cp .config .config.ori
34
35 grep CONFIG_BLK_DEV_INITRD .config || echo "CONFIG_BLK_DEV_INITRD=y" >> .config
36 grep CONFIG_INITRAMFS_SOURCE .config || echo "CONFIG_INITRAMFS_SOURCE=\"\"" >> .config
37 grep CONFIG_INITRAMFS_ROOT_UID .config || echo "CONFIG_INITRAMFS_ROOT_UID=0" >> .config
38 grep CONFIG_INITRAMFS_ROOT_GID .config || echo "CONFIG_INITRAMFS_ROOT_GID=0" >> .config
39 grep CONFIG_INITRAMFS_COMPRESSION_NONE .config || echo "CONFIG_INITRAMFS_COMPRESSION_NONE=y" >> .config
40
41 if [ ! -z ${INITRAMFS_IMAGE} ] && [ -e ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_FILE} ]; then
42 cp ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE_FILE} .
43 echo "Found valid initramfs ${INITRAMFS_IMAGE_FILE}"
44 sed -i "s|^.*CONFIG_BLK_DEV_INITRD[ =].*$|CONFIG_BLK_DEV_INITRD=y|g" .config
45 sed -i "s|^.*CONFIG_INITRAMFS_SOURCE[ =].*$|CONFIG_INITRAMFS_SOURCE=\"${INITRAMFS_IMAGE_FILE}\"|g" .config
46 sed -i "s|^.*CONFIG_INITRAMFS_ROOT_UID[ =].*$|CONFIG_INITRAMFS_ROOT_UID=0|g" .config
47 sed -i "s|^.*CONFIG_INITRAMFS_ROOT_GID[ =].*$|CONFIG_INITRAMFS_ROOT_GID=0|g" .config
48 sed -i "s|^.*CONFIG_INITRAMFS_COMPRESSION_NONE[ =].*$|CONFIG_INITRAMFS_COMPRESSION_NONE=y|g" .config
49 oe_runmake -C ${S} O=${B} oldconfig
50 else
51 rm -f *.cpio
52 echo "Initramfs disabled or can't find valid initramfs ${INITRAMFS_IMAGE_FILE}"
53 sed -i "s|^CONFIG_BLK_DEV_INITRD=.*$|# CONFIG_BLK_DEV_INITRD is not set|g" .config
54 sed -i "s|^CONFIG_INITRAMFS_SOURCE=\".*\"$|# CONFIG_INITRAMFS_SOURCE is not set|g" .config
55 sed -i "s|^CONFIG_INITRAMFS_ROOT_UID=.*$|# CONFIG_INITRAMFS_ROOT_UID is not set|g" .config
56 sed -i "s|^CONFIG_INITRAMFS_ROOT_GID=.*$|# CONFIG_INITRAMFS_ROOT_GID is not set|g" .config
57 sed -i "s|^CONFIG_INITRAMFS_COMPRESSION_NONE=.*$|# CONFIG_INITRAMFS_COMPRESSION_NONE is not set|g" .config
58 oe_runmake -C ${S} O=${B} oldconfig
59 fi
60 popd
61}
62
63kernel_do_compile() {
64 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
65 oe_runmake -C ${S} O=${B} __headers CC="${KERNEL_CC}" LD="${KERNEL_LD}"
66 oe_runmake -C ${S} O=${B} ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" LOADADDR=0x8000
67 if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then
68 gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}"
69 fi
70}
71
72do_compile_dtb() {
73 unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
74 sync
75 oe_runmake -C ${S} O=${B} ARCH=${ARCH} CROSS_COMPILE="${TARGET_PREFIX}" dtbs ||
76 oe_runmake -C ${S} O=${B} ARCH=${ARCH} CROSS_COMPILE="${TARGET_PREFIX}" dtbs
77}
78 8
79addtask compile_dtb after do_compile before do_build 9# Kernel CONFIG_LOCALVERSION
10LINUX_VERSION_EXTENSION ?= "-altera"
80 11
81KERNEL_DEVICETREE ?= "socfpga_vt socfpga_cyclone5 socfpga_arria5" 12# Build branch name
13LINUX_VERSION_PREFIX ?= "socfpga-"
14LINUX_VERSION_SUFFIX ?= ""
15LINUX_VERSION ?= "4.0"
82 16
83do_deploy_dtb() { 17SRCREV ?= "${AUTOREV}"
84 install -d ${DEPLOY_DIR_IMAGE} 18SRCREV_machine ?= "${AUTOREV}"
85 cd ${DEPLOY_DIR_IMAGE} 19PV = "${LINUX_VERSION}"
86 if test -n "${KERNEL_DEVICETREE}"; then 20PV_append = "+git${SRCPV}"
87 for DTB_FILE in ${KERNEL_DEVICETREE}; do
88 DTB_SYMLINK_NAME="${DTB_FILE}.dtb"
89 DEVICE_TREE_OUTPUT="${B}/arch/${ARCH}/boot/${DTB_SUBDIR}${DTB_FILE}.dtb"
90 DTB_NAME="${DTB_FILE}-${DATETIME}.dtb"
91 if [ ! -f ${DEVICE_TREE_OUTPUT} ]; then
92 echo "Warning: ${DEVICE_TREE_OUTPUT} is not available!"
93 continue
94 fi
95 install -m 0644 ${DEVICE_TREE_OUTPUT} ${DTB_NAME}
96 rm -f ${DTB_SYMLINK_NAME}
97 ln -sf ${DTB_NAME} ${DTB_SYMLINK_NAME}
98 done
99 fi
100}
101 21
102addtask deploy_dtb after do_compile_dtb before do_build
103 22
104VMLINUX_NAME ?= "vmlinux-${PV}-${PR}-${MACHINE}-${DATETIME}" 23KBRANCH ?= "${LINUX_VERSION_PREFIX}${LINUX_VERSION}${LINUX_VERSION_SUFFIX}"
105 24
106kernel_do_deploy_append() { 25SRC_URI = "${KERNEL_REPO};protocol=${KERNEL_PROT};branch=${KBRANCH}"
107 install -m 0644 ${B}/vmlinux ${DEPLOYDIR}/${VMLINUX_NAME}
108 cd ${DEPLOYDIR} &&
109 rm -f vmlinux &&
110 ln -sf ${VMLINUX_NAME} vmlinux
111}
112 26
27require recipes-kernel/linux/linux-yocto.inc
28require linux-altera-configs.inc