recipes-kernel: New recipe for linux-rockchip

New URL, fixes build failure. It should work with krogoth and morty.
Currently only the radxa rock is supported

Reviewed-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Romain Perier <romain.perier@gmail.com>
This commit is contained in:
Romain Perier 2016-12-06 13:35:11 +01:00 committed by Trevor Woerner
parent 4c8c9e535f
commit 0f7f53c00e
3 changed files with 146 additions and 0 deletions

View File

@ -0,0 +1,61 @@
From 72adac076e0d98fc2c3e846de72edf6169707cec Mon Sep 17 00:00:00 2001
From: Romain Perier <romain.perier@gmail.com>
Date: Thu, 1 Dec 2016 16:32:13 +0100
Subject: [PATCH] arm: mach-rk3188: Fix relative path for dependencies
Don't include relative path for dependencies modules, it breaks
out of source builds.
Signed-off-by: Romain Perier <romain.perier@gmail.com>
---
arch/arm/mach-rk3188/Makefile | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/arch/arm/mach-rk3188/Makefile b/arch/arm/mach-rk3188/Makefile
index b80abdc..2fb39fb 100644
--- a/arch/arm/mach-rk3188/Makefile
+++ b/arch/arm/mach-rk3188/Makefile
@@ -1,28 +1,28 @@
EXTRA_CFLAGS += -Os
ifneq ($(CONFIG_RK_FPGA),y)
-obj-y += ../plat-rk/clock.o
+obj-y += clock.o
obj-y += clock_data.o
-obj-y += ../mach-rk30/ddr.o
-obj-y += ../mach-rk30/pmu.o
-obj-y += ../mach-rk30/reset.o
-obj-$(CONFIG_PM) += ../mach-rk30/pm.o
+obj-y += ddr.o
+obj-y += pmu.o
+obj-y += reset.o
+obj-$(CONFIG_PM) += pm.o
endif
-obj-y += ../mach-rk30/common.o
+obj-y += common.o
CFLAGS_common.o += -DTEXT_OFFSET=$(TEXT_OFFSET)
-obj-y += ../mach-rk30/devices.o
+obj-y += devices.o
obj-y += io.o
obj-y += rk_timer.o
-obj-$(CONFIG_SMP) += ../mach-rk30/platsmp.o ../mach-rk30/headsmp.o
-obj-$(CONFIG_HOTPLUG_CPU) += ../mach-rk30/hotplug.o
-obj-$(CONFIG_CPU_IDLE) += ../mach-rk30/cpuidle.o
+obj-$(CONFIG_SMP) += platsmp.o headsmp.o
+obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
+obj-$(CONFIG_CPU_IDLE) += cpuidle.o
obj-$(CONFIG_CPU_FREQ) += cpufreq.o
obj-$(CONFIG_DVFS) += dvfs.o
obj-y += board.o
board-$(CONFIG_MACH_RK3188_FPGA) += board-rk3188-fpga.o
-board-$(CONFIG_MACH_RK3188_TB) += ../mach-rk30/board-rk3168-tb.o
+board-$(CONFIG_MACH_RK3188_TB) += board-rk3168-tb.o
board-$(CONFIG_MACH_RK3188_SDK) += board-rk3188-sdk.o
-board-$(CONFIG_MACH_RK3188_LR097) += ../mach-rk30/board-rk3168-LR097.o
+board-$(CONFIG_MACH_RK3188_LR097) += board-rk3168-LR097.o
board-$(CONFIG_MACH_RK3188_DS1006H) += board-rk3188-ds1006h.o
obj-$(CONFIG_SOC_RK3188) += board.o
board-$(CONFIG_MACH_RK3188_FAC) += board-rk3188-fac.o
--
2.9.3

View File

@ -0,0 +1,41 @@
From fc28debedc298cdd19e0327ac416c0e51a74fe6d Mon Sep 17 00:00:00 2001
From: Romain Perier <romain.perier@gmail.com>
Date: Fri, 2 Dec 2016 18:46:33 +0100
Subject: [PATCH] Some other fixes
Signed-off-by: Romain Perier <romain.perier@free-electrons.com>
---
drivers/net/wireless/Makefile | 2 +-
kernel/timeconst.pl | 3 ---
2 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
index becd320..a8fbdb7 100755
--- a/drivers/net/wireless/Makefile
+++ b/drivers/net/wireless/Makefile
@@ -1,7 +1,7 @@
#
# Makefile for the Linux Wireless network device drivers.
#
-obj-y += wifi_sys/rkwifi_sys_iface.o
+obj-y += $(realpath wifi_sys/rkwifi_sys_iface.o)
obj-$(CONFIG_BCM4329) += bcm4329/
obj-$(CONFIG_MV8686) += mv8686/
obj-$(CONFIG_BCM4319) += bcm4319/
diff --git a/kernel/timeconst.pl b/kernel/timeconst.pl
index eb51d76..82266f5 100644
--- a/kernel/timeconst.pl
+++ b/kernel/timeconst.pl
@@ -370,9 +370,6 @@ if ($hz eq '--can') {
}
@val = @{$canned_values{$hz}};
- if (!defined(@val)) {
- @val = compute_values($hz);
- }
output($hz, @val);
}
exit 0;
--
2.9.3

View File

@ -0,0 +1,44 @@
# Copyright (C) 2016 Romain Perier
# Released under the MIT license (see COPYING.MIT for the terms)
require recipes-kernel/linux/linux-yocto.inc
SRC_URI = "git://github.com/radxa/linux-rockchip.git;branch=radxa-stable-3.0 \
file://0001-arm-mach-rk3188-Fix-relative-path-for-dependencies.patch \
file://0002-Some-other-fixes.patch"
SRCREV = "${AUTOREV}"
PV = "3.0.36"
DEPENDS = "prebuilt-gcc-linaro"
COMPATIBLE_MACHINE = "(radxarock)"
KBUILD_DEFCONFIG = "radxa_rock_linux_defconfig"
# kernel 3.0.x does not have devicetree
KERNEL_DEVICETREE = ""
# This kernel only builds and works with the gcc-4.x toolchain. As, we only want
# to use this toolchain for this recipe, we overwrite CROSS_COMPILE, CC, LD and
# AR.
export CROSS_COMPILE = "arm-linux-gnueabi-"
KERNEL_CC = "${CROSS_COMPILE}gcc"
KERNEL_LD = "${CROSS_COMPILE}ld.bfd"
KERNEL_AR = "${CROSS_COMPILE}ar"
deltask kernel_configme
# The rockchip kernel for mach-rk3188 does not support out-of-tree build,
# mainly because the Makefile includes relative path to the parent directory
# for most of its dependencies (mach-rk30 and plat-rk). By doing so, it breaks
# the out-of-tree build. Even by patching the Makefile to use "realpath", it is
# very difficult to have a successful build (we get strange link errors). So we
# create symlinks, to put dependencies into the same directory.
do_configure_append() {
MODULES="ddr.c ddr_reg_resume.inc pmu.c reset.c pm.c common.c devices.c \
platsmp.c headsmp.S hotplug.c cpuidle.c"
for m in ${MODULES}; do
ln -sf ${S}/arch/arm/mach-rk30/${m} ${S}/arch/arm/mach-rk3188/${m}
done
ln -sf ${S}/arch/arm/plat-rk/clock.c ${S}/arch/arm/mach-rk3188/clock.c
}
do_install_prepend() {
install -d ${D}/lib/firmware
}