diff --git a/PKGBUILD b/PKGBUILD index 3b6b780..f696f5b 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -77,8 +77,19 @@ prepare() { patch -Np1 < "../$src" done + # Ensure amdkfd is avaliable + sed -i '/^[[:space:]]*depends on DRM_AMDGPU && (/ { + /LOONGARCH/! { + s/)[[:space:]]*$/ || LOONGARCH)/ + } + }' drivers/gpu/drm/amd/amdkfd/Kconfig + echo "Setting config..." cp ../config .config + if [ $CARCH == loong64 ]; then + make savedefconfig + cat defconfig ../loong-addition.config > .config + fi make olddefconfig diff -u ../config .config || : @@ -146,7 +157,11 @@ _package-headers() { install -Dt "$builddir" -m644 .config Makefile Module.symvers System.map \ localversion.* version vmlinux tools/bpf/bpftool/vmlinux.h install -Dt "$builddir/kernel" -m644 kernel/Makefile - install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile + if [ $CARCH == x86_64 ]; then + install -Dt "$builddir/arch/x86" -m644 arch/x86/Makefile + elif [ $CARCH == loong64 ]; then + install -Dt "$builddir/arch/loongarch" -m644 arch/loongarch/Makefile + fi cp -t "$builddir" -a scripts ln -srt "$builddir" "$builddir/scripts/gdb/vmlinux-gdb.py" @@ -158,8 +173,13 @@ _package-headers() { echo "Installing headers..." cp -t "$builddir" -a include - cp -t "$builddir/arch/x86" -a arch/x86/include - install -Dt "$builddir/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s + if [ $CARCH == x86_64 ]; then + cp -t "$builddir/arch/x86" -a arch/x86/include + install -Dt "$builddir/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s + elif [ $CARCH == loong64 ]; then + cp -t "$builddir/arch/loongarch" -a arch/loongarch/include + install -Dt "$builddir/arch/loongarch/kernel" -m644 arch/loongarch/kernel/asm-offsets.s + fi install -Dt "$builddir/drivers/md" -m644 drivers/md/*.h install -Dt "$builddir/net/mac80211" -m644 net/mac80211/*.h @@ -189,7 +209,11 @@ _package-headers() { echo "Removing unneeded architectures..." local arch for arch in "$builddir"/arch/*/; do - [[ $arch = */x86/ ]] && continue + if [ $CARCH == x86_64 ]; then + [[ $arch = */x86/ ]] && continue + elif [ $CARCH == loong64 ]; then + [[ $arch = */loongarch/ ]] && continue + fi echo "Removing $(basename "$arch")" rm -r "$arch" done @@ -257,4 +281,17 @@ for _p in "${pkgname[@]}"; do }" done +source+=('loong-addition.config' + '0001-LOONGARCH-drm-radeon-Call-mmiowb-at-the-end-of-radeon_ring_commit.patch' + '0002-LOONGARCH-drm-xe-fix-build-on-non-4K-kernels.patch' + '0003-LOONGARCH-from-AOSCOS-more-fixes-for-Xe-on-LoongArch.patch') +sha256sums+=('77eba2e995872642d763af67747228ef2e27b9d0a7958e8db0a12c4cdcc9acc1' + 'd146728a3b3c722f433e310cad21e93c53e64a7afe948b5b43b077e962750941' + 'c723e02bbeb42c2a99461b0390d1cbcbb6d998e1191d6621ed02680efb17a554' + 'fb058222b06a3cee7984c554a18ce4475f3d71f9ade030e3fe6e3841222fad1b') +b2sums+=('652069e50060a3d84530f004f7064d98d6ac9bb02e690a3510d092d0df17598c9b3d564ae07fdb0dbbecc68d2d12d58c4c78c02cc08fbcbb8c01ba6e6256d922' + '4a0b268f1a28d4bfa37d9b644477c75a5215083414fe5cc5d637e2edc4895aace9e42b3b33ac0b3e2a15a18340bec651511fa3c347c1c3e347ed3418c033582c' + 'dc9528bb0aec946948273cd9d718db058440527439a81d488c8294f022d39bd626152eefb2e4310a60546a3e1d7d107e53a7833fecc5218924d201d065717add' + '0c9d8e9814d29e30ae71f4301fb1b7d6cd3285edcdb5c18c43933b853332c1cba72adc70d1086c7087364ef5ce6b364e9e531d8f0a81b26aadd1777b781fa906') + # vim:set ts=8 sts=2 sw=2 et: