[Buildroot] [PATCH 1/1] add sunxi-mali mainline kernel
Giulio Benetti
giulio.benetti at micronovasrl.com
Wed Nov 8 17:02:13 UTC 2017
Hi,
Il 08/11/2017 11:27, Maxime Ripard ha scritto:
> Hi,
>
> On Sun, Nov 05, 2017 at 11:19:13PM +0100, Giulio Benetti wrote:
>> Signed-off-by: Giulio Benetti <giulio.benetti at micronovasrl.com>
>
> A commit log would be nice.
Right
>
>> ---
>> 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
>
> Why do you need that script? The only thing it does apparently is to
> create the device node, which is useless since devtmpfs will do it for
> you, and to load the module, which might or might not be needed (if
> you have udev for example).
I agree with you, in fact I only took as a legacy from sunxi-mali,
but better to remove it.
>
>> 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
>
> What do you mean?
Honestly I don't know, this is copied by legacy sunxi-mali.
Better remove and...
>
>> +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
>
> You can use the github macros to do that.
sure I will use github macros, forgotten about it.
>
>> +
>> +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
>
> Why not using the build script that does all this already?
I misread Makefile, I didn't see that there was modules recipe...
Worked for nothing, I replace with modules pkg-kernel-module.
>
> Thanks!
> Maxime
>
--
Giulio Benetti
R&D Manager &
Advanced Research
MICRONOVA SRL
Sede: Via A. Niedda 3 - 35010 Vigonza (PD)
Tel. 049/8931563 - Fax 049/8931346
Cod.Fiscale - P.IVA 02663420285
Capitale Sociale € 26.000 i.v.
Iscritta al Reg. Imprese di Padova N. 02663420285
Numero R.E.A. 258642
More information about the buildroot
mailing list