diff options
Diffstat (limited to 'sys-firmware/amdgpu-ucode/amdgpu-ucode-20161121.ebuild')
-rw-r--r-- | sys-firmware/amdgpu-ucode/amdgpu-ucode-20161121.ebuild | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/sys-firmware/amdgpu-ucode/amdgpu-ucode-20161121.ebuild b/sys-firmware/amdgpu-ucode/amdgpu-ucode-20161121.ebuild new file mode 100644 index 000000000000..8b75a1c79cae --- /dev/null +++ b/sys-firmware/amdgpu-ucode/amdgpu-ucode-20161121.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit linux-info + +AMDGPU_UCODE_LINUX_FIRMWARE="linux-firmware-20170113" + +DESCRIPTION="Microcode for C.Islands/V.Islands/A.Islands Radeon GPUs and APUs" +HOMEPAGE="https://people.freedesktop.org/~agd5f/radeon_ucode/" +SRC_URI="mirror://gentoo/${AMDGPU_UCODE_LINUX_FIRMWARE}.tar.xz" + +LICENSE="radeon-ucode" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="legacy" + +RDEPEND="legacy? ( !sys-firmware/radeon-ucode ) + !>sys-kernel/linux-firmware-20150812[-savedconfig]" + +S=${WORKDIR}/${AMDGPU_UCODE_LINUX_FIRMWARE}/amdgpu + +AMDGPU_LEGACY_CIK="bonaire hainan hawaii kabini kaveri mullins oland pitcairn tahiti verde" + +src_unpack() { + unpack ${A} + mv linux-firmware-* "${AMDGPU_UCODE_LINUX_FIRMWARE}" || die +} + +src_install() { + local chip files legacyfiles + if use legacy; then + pushd ../radeon || die + for chip in ${AMDGPU_LEGACY_CIK}; do + legacyfiles+=( ${chip}*.bin ) + done + insinto /lib/firmware/radeon + doins ${legacyfiles[@]} + popd + fi + files=( *.bin ) + insinto /lib/firmware/amdgpu + doins ${files[@]} + FILES=( ${files[@]/#/amdgpu/} ${legacyfiles[@]/#/radeon/} ) +} + +pkg_postinst() { + if linux_config_exists && linux_chkconfig_builtin DRM_AMDGPU; then + if ! linux_chkconfig_present FIRMWARE_IN_KERNEL || \ + ! [[ "$(linux_chkconfig_string EXTRA_FIRMWARE)" == *_rlc.bin* ]]; then + ewarn "Your kernel has amdgpu DRM built-in but not the microcode." + ewarn "For kernel modesetting to work, please set in kernel config" + ewarn "CONFIG_FIRMWARE_IN_KERNEL=y" + ewarn "CONFIG_EXTRA_FIRMWARE_DIR=\"/lib/firmware\"" + ewarn "CONFIG_EXTRA_FIRMWARE=\"${FILES[@]}\"" + ewarn "You may skip microcode files for which no hardware is installed." + ewarn "More information at https://wiki.gentoo.org/wiki/AMDGPU#Firmware" + fi + fi +} |