[Buildroot] [PATCH 1/1] add sunxi-mali mainline kernel

Giulio Benetti giulio.benetti at micronovasrl.com
Sun Nov 5 22:19:13 UTC 2017


Signed-off-by: Giulio Benetti <giulio.benetti at micronovasrl.com>
---
 package/sunxi-mali-driver-mainline/Config.in       |  9 +++++
 package/sunxi-mali-driver-mainline/S80mali         | 43 ++++++++++++++++++++++
 .../sunxi-mali-driver-mainline.mk                  | 43 ++++++++++++++++++++++
 3 files changed, 95 insertions(+)
 create mode 100644 package/sunxi-mali-driver-mainline/Config.in
 create mode 100644 package/sunxi-mali-driver-mainline/S80mali
 create mode 100644 package/sunxi-mali-driver-mainline/sunxi-mali-driver-mainline.mk

diff --git a/package/sunxi-mali-driver-mainline/Config.in b/package/sunxi-mali-driver-mainline/Config.in
new file mode 100644
index 0000000..8f2c960
--- /dev/null
+++ b/package/sunxi-mali-driver-mainline/Config.in
@@ -0,0 +1,9 @@
+comment "sunxi-mali-driver-mainline needs a Linux kernel to be built"
+	depends on !BR2_LINUX_KERNEL
+
+config BR2_PACKAGE_SUNXI_MALI_DRIVER_MAINLINE
+	bool "sunxi-mali-driver-mainline"
+	depends on BR2_LINUX_KERNEL
+	select BR2_LINUX_NEEDS_MODULES # not using kernel-module infra
+	help
+	  Sunxi Mali Kernel space driver
diff --git a/package/sunxi-mali-driver-mainline/S80mali b/package/sunxi-mali-driver-mainline/S80mali
new file mode 100644
index 0000000..3db342e
--- /dev/null
+++ b/package/sunxi-mali-driver-mainline/S80mali
@@ -0,0 +1,43 @@
+#!/bin/sh -e
+
+install_driver() {
+	DRIVER=$1
+	OPTS=$2
+
+	modprobe $DRIVER $OPTS
+	maj=$(awk "\$2==\"${DRIVER}\" { print \$1; }" /proc/devices)
+
+	rm -f /dev/${DRIVER}
+
+	mknod /dev/${DRIVER} c $maj 0
+	chmod 600 /dev/${DRIVER}
+}
+
+start() {
+	echo "mali: starting driver"
+
+	install_driver mali
+}
+
+stop() {
+	echo "mali: stopping driver"
+
+	rmmod mali
+}
+
+case "$1" in
+start)
+	start
+;;
+stop)
+	stop
+;;
+restart)
+	stop
+	start
+;;
+*)
+	echo "mali: Please use start, stop, or restart."
+	exit 1
+;;
+esac
diff --git a/package/sunxi-mali-driver-mainline/sunxi-mali-driver-mainline.mk b/package/sunxi-mali-driver-mainline/sunxi-mali-driver-mainline.mk
new file mode 100644
index 0000000..73f7359
--- /dev/null
+++ b/package/sunxi-mali-driver-mainline/sunxi-mali-driver-mainline.mk
@@ -0,0 +1,43 @@
+################################################################################
+#
+# sunxi-mali-driver-mainline
+#
+################################################################################
+
+# last sha1 character dropped to ensure unique filename
+SUNXI_MALI_DRIVER_MAINLINE_VERSION = 88ba3cecfc7082bf8e52d7ded16cbbf0ef9e6ca
+SUNXI_MALI_DRIVER_MAINLINE_SITE = https://github.com/mripard/sunxi-mali.git
+SUNXI_MALI_DRIVER_MAINLINE_SITE_METHOD = git
+
+SUNXI_MALI_DRIVER_MAINLINE_DEPENDENCIES = linux
+
+SUNXI_MALI_DRIVER_MAINLINE_MAKE_OPTS = \
+	KDIR=$(LINUX_DIR) \
+	USING_UMP=0 \
+	BUILD=release \
+	USING_DVFS=1 \
+	USING_DEVFREQ=1 \
+	CROSS_COMPILE=$(TARGET_CROSS)
+
+define SUNXI_MALI_DRIVER_MAINLINE_BUILD_CMDS
+	$(APPLY_PATCHES) $(@D)/r6p2 $(@D)/patches \*.patch
+
+	$(SUNXI_MALI_MAINLINE_MAKE_ENV) $(MAKE) \
+		$(SUNXI_MALI_DRIVER_MAINLINE_MAKE_OPTS) \
+		-C $(@D)/r6p2/src/devicedrv/mali
+endef
+
+define SUNXI_MALI_DRIVER_MAINLINE_INSTALL_TARGET_CMDS
+	mkdir -p $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/kernel/gpu/
+
+	cp $(@D)/r6p2/src/devicedrv/mali/mali.ko \
+		$(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/kernel/gpu/
+
+	echo kernel/gpu/mali.ko >> \
+	$(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/modules.dep
+
+	$(INSTALL) -D -m 0755 package/sunxi-mali-driver-mainline/S80mali \
+		$(TARGET_DIR)/etc/init.d/S80mali
+endef
+
+$(eval $(generic-package))
-- 
2.7.4



More information about the buildroot mailing list