%ifarch aarch64
%define buildarch arm64
-%else
+%endif
+%ifarch %{arm}
%define buildarch arm
%endif
+%ifarch riscv64
+%define buildarch riscv
+%endif
Name: linux-tizen-modules
Version: 7.5.0
Source1: %{name}.manifest
Summary: Tizen-specific kernel modules
Group: System/Kernel
-ExclusiveArch: %{arm} aarch64
+ExclusiveArch: %{arm} aarch64 riscv64
BuildRequires: kmod
BuildRequires: linux-tizen-modules-source
-BuildRequires: %{buildarch}-rpi4-linux-kernel-devel
-BuildRequires: %{buildarch}-rpi4-rt-linux-kernel-devel
%ifarch aarch64
BuildRequires: kernel-devel-exynos9110-tw3
+BuildRequires: %{buildarch}-rpi4-linux-kernel-devel
+BuildRequires: %{buildarch}-rpi4-rt-linux-kernel-devel
%endif
-%ifnarch aarch64
+%ifarch %{arm}
BuildRequires: kernel-devel-3.10-sc7730
+BuildRequires: %{buildarch}-rpi4-linux-kernel-devel
+BuildRequires: %{buildarch}-rpi4-rt-linux-kernel-devel
+%endif
+%ifarch riscv64
+BuildRequires: riscv-qemu-linux-kernel-devel
+BuildRequires: riscv-visionfive2-linux-kernel-devel
%endif
%description
+%ifarch %{arm} aarch64
%package rpi4
Summary: Tizen modules for RaspberryPI 4
AutoReqProv: no
Requires(post): kmod-compat
Provides: stability-monitor-kernel-module
%description rpi4-rt
+%endif
%ifarch aarch64
%package tw3
%description tw3
%endif
-%ifnarch aarch64
+%ifarch %{arm}
%package tm1
Summary: Tizen modules for TM1
Requires: linux-3.10-sc7730_tizen_tm1
%description tm1
%endif
+%ifarch riscv64
+%package rv64qemu
+Summary: Tizen modules for TM1
+Requires: %{buildarch}-qemu-linux-kernel-modules
+AutoReqProv: no
+Requires(post): bash
+Requires(post): coreutils
+Requires(post): findutils
+Requires(post): kmod-compat
+%description rv64qemu
+
+%package visionfive2
+Summary: Tizen modules for TM1
+Requires: %{buildarch}-visionfive2-linux-kernel-modules
+AutoReqProv: no
+Requires(post): bash
+Requires(post): coreutils
+Requires(post): findutils
+Requires(post): kmod-compat
+%description visionfive2
+%endif
+
%prep
%setup -q
cp %{SOURCE1} ./%{name}.manifest
export BUILD_kdbus=m
export BUILD_zlogger=m
+%ifarch %{arm} aarch64
make -C kernel clean KERNELDIR=/boot/kernel/devel/kernel-devel-%{buildarch}-rpi4
make -C kernel KERNELDIR=/boot/kernel/devel/kernel-devel-%{buildarch}-rpi4
make -C kernel modules_install KERNELDIR=/boot/kernel/devel/kernel-devel-%{buildarch}-rpi4 INSTALL_MOD_STRIP=1
make -C kernel clean KERNELDIR=/boot/kernel/devel/kernel-devel-%{buildarch}-rpi4-rt
make -C kernel KERNELDIR=/boot/kernel/devel/kernel-devel-%{buildarch}-rpi4-rt
make -C kernel modules_install KERNELDIR=/boot/kernel/devel/kernel-devel-%{buildarch}-rpi4-rt INSTALL_MOD_STRIP=1
+%endif
export BUILD_kdbus=n
export BUILD_proc_tsm=n
-%ifnarch aarch64
+%ifarch %{arm}
make -C kernel clean KERNELDIR=/boot/kernel/devel/kernel-devel-tizen_tm1
make -C kernel KERNELDIR=/boot/kernel/devel/kernel-devel-tizen_tm1
make -C kernel modules_install KERNELDIR=/boot/kernel/devel/kernel-devel-tizen_tm1 INSTALL_MOD_STRIP=1
%endif
+%ifarch riscv64
+make -C kernel clean KERNELDIR=/boot/kernel/devel/kernel-devel-riscv-qemu
+make -C kernel KERNELDIR=/boot/kernel/devel/kernel-devel-riscv-qemu
+make -C kernel modules_install KERNELDIR=/boot/kernel/devel/kernel-devel-riscv-qemu INSTALL_MOD_STRIP=1
+
+make -C kernel clean KERNELDIR=/boot/kernel/devel/kernel-devel-riscv-visionfive2
+make -C kernel KERNELDIR=/boot/kernel/devel/kernel-devel-riscv-visionfive2
+make -C kernel modules_install KERNELDIR=/boot/kernel/devel/kernel-devel-riscv-visionfive2 INSTALL_MOD_STRIP=1
+%endif
+
%install
mkdir -p %{buildroot}/%{KMOD_PATH}
find -name "*.ko" -exec cp -a --parents {} %{buildroot}/%{KMOD_PATH}/ \;
popd
+%ifarch %{arm} aarch64
# module load config
mkdir -p %{buildroot}/%{KMOD_PATH}/modprobe.d
install -m 644 conf/tizen-modprobe-rpi4.conf %{buildroot}/%{KMOD_PATH}/modprobe.d
mkdir -p %{buildroot}/%{KMOD_PATH}/modules-load.d
install -m 644 conf/tizen-modules-rpi4.conf %{buildroot}/%{KMOD_PATH}/modules-load.d
+%endif
%ifarch aarch64
mkdir -p %{buildroot}/aarch64/modules
install -m 644 conf/tizen-modules-tw3.conf %{buildroot}/aarch64/modules/modules-load.d
%endif
-%ifnarch aarch64
+%ifarch %{arm}
mkdir -p %{buildroot}/%{KMOD_PATH_TM1}/modules-load.d
install -m 644 conf/tizen-modules-tm1.conf %{buildroot}/%{KMOD_PATH_TM1}/modules-load.d
mv -v %{buildroot}/%{KMOD_PATH}/*3.10* %{buildroot}/%{KMOD_PATH_TM1}
rm -rf %{buildroot}
rm -rf %{_builddir}/%{name}-%{version}/lib
+%ifarch %{arm} aarch64
%post rpi4
RELEASEVERSION=$(basename $(dirname `find /lib/modules -name extra | head -1`))
/sbin/depmod -a $RELEASEVERSION
%post rpi4-rt
RELEASEVERSION=$(basename $(dirname `find /lib/modules -name extra | head -1`))
/sbin/depmod -a $RELEASEVERSION
+%endif
-%ifnarch aarch64
+%ifarch %{arm}
%post tm1
KMOD_PATH_TM1=%{KMOD_PATH_TM1}
KMOD_BASEPATH=${KMOD_PATH_TM1%%%{KMOD_PATH}}
/sbin/depmod -b ${KMOD_BASEPATH} -a $RELEASEVERSION
%endif
+%ifarch %{arm} aarch64
%files rpi4
%manifest %{name}.manifest
%license COPYING
%endif
%{KMOD_PATH}/modprobe.d/tizen-modprobe-rpi4.conf
%{KMOD_PATH}/modules-load.d/tizen-modules-rpi4.conf
+%endif
%ifarch aarch64
%files tw3
/aarch64/modules/modules-load.d/tizen-modules-tw3.conf
%endif
-%ifnarch aarch64
+%ifarch %{arm}
%files tm1
%manifest %{name}.manifest
%license COPYING
%{KMOD_PATH_TM1}/*3.10*/extra/zlogger/zlogger.ko
%{KMOD_PATH_TM1}/modules-load.d/tizen-modules-tm1.conf
%endif
+
+%ifarch riscv64
+%files rv64qemu
+%manifest %{name}.manifest
+%license COPYING
+%{KMOD_PATH}/*-riscv-qemu/extra/logger.ko
+%{KMOD_PATH}/*-riscv-qemu/extra/zlogger/zlogger.ko
+
+%files visionfive2
+%manifest %{name}.manifest
+%license COPYING
+%{KMOD_PATH}/*-riscv-visionfive2/extra/logger.ko
+%{KMOD_PATH}/*-riscv-visionfive2/extra/zlogger/zlogger.ko
+%endif