diff options
Diffstat (limited to 'recipes-kernel/linux/linux-altera.inc')
-rw-r--r-- | recipes-kernel/linux/linux-altera.inc | 116 |
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 @@ | |||
1 | PR = "r1" | ||
2 | |||
3 | KERNEL_REPO ?= "git://git.rocketboards.org/linux-socfpga.git" | ||
4 | KERNEL_PROT ?= "http" | ||
5 | KERNEL_DEFCONFIG ?= "socfpga_defconfig" | ||
6 | KERNEL_TAG ?= "${AUTOREV}" | ||
7 | |||
8 | SRC_URI = "${KERNEL_REPO};protocol=${KERNEL_PROT};branch=${KERNEL_BRANCH}" | ||
9 | |||
10 | SRCREV_pn-${PN} = "${KERNEL_TAG}" | ||
11 | |||
12 | inherit kernel | ||
13 | SECTION = "kernel" | ||
14 | DESCRIPTION = "Altera Linux kernel" | 1 | DESCRIPTION = "Altera Linux kernel" |
15 | LICENSE = "GPLv2" | 2 | LICENSE = "GPLv2" |
16 | 3 | ||
17 | LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" | 4 | LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7" |
18 | 5 | ||
19 | S = "${WORKDIR}/git" | 6 | KERNEL_REPO ?= "git://github.com/altera-opensource/linux-socfpga.git" |
20 | 7 | KERNEL_PROT ?= "https" | |
21 | MACHINE_DEFCONFIG = "${KERNEL_DEFCONFIG}" | ||
22 | |||
23 | do_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 | |||
63 | kernel_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 | |||
72 | do_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 | ||
79 | addtask compile_dtb after do_compile before do_build | 9 | # Kernel CONFIG_LOCALVERSION |
10 | LINUX_VERSION_EXTENSION ?= "-altera" | ||
80 | 11 | ||
81 | KERNEL_DEVICETREE ?= "socfpga_vt socfpga_cyclone5 socfpga_arria5" | 12 | # Build branch name |
13 | LINUX_VERSION_PREFIX ?= "socfpga-" | ||
14 | LINUX_VERSION_SUFFIX ?= "" | ||
15 | LINUX_VERSION ?= "4.0" | ||
82 | 16 | ||
83 | do_deploy_dtb() { | 17 | SRCREV ?= "${AUTOREV}" |
84 | install -d ${DEPLOY_DIR_IMAGE} | 18 | SRCREV_machine ?= "${AUTOREV}" |
85 | cd ${DEPLOY_DIR_IMAGE} | 19 | PV = "${LINUX_VERSION}" |
86 | if test -n "${KERNEL_DEVICETREE}"; then | 20 | PV_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 | ||
102 | addtask deploy_dtb after do_compile_dtb before do_build | ||
103 | 22 | ||
104 | VMLINUX_NAME ?= "vmlinux-${PV}-${PR}-${MACHINE}-${DATETIME}" | 23 | KBRANCH ?= "${LINUX_VERSION_PREFIX}${LINUX_VERSION}${LINUX_VERSION_SUFFIX}" |
105 | 24 | ||
106 | kernel_do_deploy_append() { | 25 | SRC_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 | ||
27 | require recipes-kernel/linux/linux-yocto.inc | ||
28 | require linux-altera-configs.inc | ||