dev-libs/xdna-driver: update live ebuild to use wget for fetching firmwares

Signed-off-by: Sv. Lockal <lockalsash@gmail.com>
This commit is contained in:
Sv. Lockal
2026-04-04 23:19:52 +08:00
parent f52b3a9722
commit aed5b43c09
2 changed files with 69 additions and 45 deletions

View File

@@ -1,10 +1,3 @@
DIST 5c0409-1502_00__npu.dev.sbin 248592 BLAKE2B c7388450f546a69ffbd363f4fd1a6f415f8faa7b4badd9c2656707cfbacc6bf07e67fe605f6cb8670ea79ed3ade20021ea9a26979fbd55fc9bfbc15137cd13bf SHA512 fa49ab6bbbb23479d6493d85a6372cac84e3a3edb93bc82c63ce95c30d6e1e3d0fe304ea134734f052d37d86e19d26085a672b340858e9ab1fd8b093b76633cf
DIST 5c0409-17f0_10__npu.dev.sbin 429680 BLAKE2B 2da026df4e683dd0055872442ffd5974a59909e820ddf2ec8b148056ac998ce360ce117ad75beda5768059e6ac740d2b329676ec1e03886c96e020e077a8c13e SHA512 e15ea99bbc9a22e294626891cb9c0e06bc8ed328b3c3271f5628718f71a9d730f6a8a300bb9c4f7024cbd9d825ed1b34596beb0068bbebbed27fe7e9dbc4abe7
DIST 5c0409-17f0_11__npu.dev.sbin 429680 BLAKE2B 5addee1d5bb7563b9a06bf70f9d027f0363b97f7edd31754f2ecd9030bd2465163f0ba660e21a15917521404e453e2d6dbeb09e6049341b91ba3535ac3e87d3d SHA512 d1f0181305191c3f2e3a66f734a9c0c6f4413b28de1be724903f1b430298a2134211166165842b24ce7895f2faa36d46864f00c7498b1385bbf2155da07c21f4
DIST 5c0409-17f1_10__cert.dev.sbin 28576 BLAKE2B 747e6372802b227b7493408cc9394eaaf8f948f123527051a27797c3ef43f27197091613b0fcf5b26d7bbbaa856a70fd6266b867aadeaf31aca28e838dc35ea7 SHA512 e159c6af33b5c65fc25bec66814e8294146b9660e7fcd9d8363192375d1ebf709681fa797c02260d9e5ac91e9c1de5783ee6fd0a262ecf599673921c99a60c16
DIST 5c0409-17f1_10__npu.dev.sbin 252064 BLAKE2B 53a0f612b4bc59cb639d052dab088b08a0d9714325d74095f3c50d053058d8fda48336626b3fa9c5865671bfeaf3ae496d3b5b784c258bd514fc05adec043388 SHA512 753fbf62e98fc4500b337281a77633621f3bb0b1955bcd048639ddb23d199b0fc032a015a45f225b8ce6e93e94e59cf00224a44a41c76295a102e7625f830e37
DIST 5c0409-17f2_10__cert.dev.sbin 28576 BLAKE2B 747e6372802b227b7493408cc9394eaaf8f948f123527051a27797c3ef43f27197091613b0fcf5b26d7bbbaa856a70fd6266b867aadeaf31aca28e838dc35ea7 SHA512 e159c6af33b5c65fc25bec66814e8294146b9660e7fcd9d8363192375d1ebf709681fa797c02260d9e5ac91e9c1de5783ee6fd0a262ecf599673921c99a60c16
DIST 5c0409-17f2_10__npu.dev.sbin 252064 BLAKE2B 53a0f612b4bc59cb639d052dab088b08a0d9714325d74095f3c50d053058d8fda48336626b3fa9c5865671bfeaf3ae496d3b5b784c258bd514fc05adec043388 SHA512 753fbf62e98fc4500b337281a77633621f3bb0b1955bcd048639ddb23d199b0fc032a015a45f225b8ce6e93e94e59cf00224a44a41c76295a102e7625f830e37
DIST 886e89-1502_00__npu.dev.sbin 248592 BLAKE2B c7388450f546a69ffbd363f4fd1a6f415f8faa7b4badd9c2656707cfbacc6bf07e67fe605f6cb8670ea79ed3ade20021ea9a26979fbd55fc9bfbc15137cd13bf SHA512 fa49ab6bbbb23479d6493d85a6372cac84e3a3edb93bc82c63ce95c30d6e1e3d0fe304ea134734f052d37d86e19d26085a672b340858e9ab1fd8b093b76633cf
DIST 886e89-17f0_00__npu.dev.sbin 287712 BLAKE2B ae2ce2b54dfd86b02288a41ace66d08d8ac614dcfde4ce8537204613fb57e677b495ef37eaa6e435a53ffad7fac6fe3126c89132ed6df7a53b2011b5e84c79aa SHA512 888a4fbcd932978ad9c77f3c2e9c42de5c2f9a09ae76db2791dc0dea22b08de823917a79974a4660eec6d5c9fe5aed6f1f77123cb11e4574b45c8131934ecf96
DIST 886e89-17f0_10__npu.dev.sbin 492720 BLAKE2B 477bc7004ce13e2ad13a6bb214cd75438255f6f863c3e0bd261e6b3f26c42f88aa649fc5ec9273b032cf644a097bfcc8dcc9fdc7770647a4863e94bed6d19ec8 SHA512 6eded0563b4a247e32a8e21e8cb1d45233660586ea78dabdb3a0e8ec0871290df6c72ea2bf9348abb5022008d926642b53e10691d88fa500d0ce8a9d81867961

View File

@@ -5,20 +5,6 @@ EAPI=8
inherit linux-mod-r1 toolchain-funcs
# To regenerate, run:
# ebuild xdna-driver-999999.ebuild info
FW_COMMIT=5c040900cb08fe65c4f76c0c63ce5d7f318eae93
declare -A FIRMWARES=(
[1502_00/npu.sbin.1.5.5.391]=npu.dev.sbin
[17f1_10/npu.sbin.0.0.20.173]=npu.dev.sbin
[17f1_10/cert.sbin.20260217]=cert.dev.sbin
[17f2_10/npu.sbin.0.0.20.173]=npu.dev.sbin
[17f2_10/cert.sbin.20260217]=cert.dev.sbin
[17f0_10/npu.sbin.255.0.11.69]=npu.dev.sbin
[17f0_11/npu.sbin.255.0.11.71]=npu.dev.sbin
)
DESCRIPTION="AMD XDNA Driver"
HOMEPAGE="https://github.com/amd/xdna-driver"
@@ -26,36 +12,85 @@ if [[ ${PV} == 999999 ]] ; then
EGIT_REPO_URI="https://github.com/amd/xdna-driver.git"
EGIT_SUBMODULES=()
inherit git-r3
BDEPEND="
app-misc/jq
net-misc/wget
"
else
SRC_URI="https://github.com/amd/xdna-driver/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64"
# For live ebuild firmware is fetched from amd-ipu-staging branch of https://gitlab.com/kernel-firmware/drm-firmware.
# For release commit, see https://github.com/amd/xdna-driver/issues/1236
# (requires manual date-based commit selection)
FW_COMMIT=9c532be0fe8d6ac30e8a5e1c0b54a88ae94f50b6
# To regenerate, run:
# ebuild xdna-driver-<version>.ebuild info
declare -A FIRMWARES=(
[1502_00/npu.sbin.1.5.5.391]=npu.dev.sbin
[17f1_10/npu.sbin.1.1.0.206]=npu.dev.sbin
[17f1_10/cert.sbin.1.0.0.28]=cert.dev.sbin
[17f2_10/npu.sbin.1.1.0.206]=npu.dev.sbin
[17f2_10/cert.sbin.1.0.0.28]=cert.dev.sbin
[17f0_10/1.7_npu.sbin.1.1.2.64]=npu.dev.sbin
[17f0_11/1.7_npu.sbin.1.1.2.65]=npu.dev.sbin
)
FW_URI_PREFIX=https://gitlab.com/kernel-firmware/drm-firmware/-/raw/${FW_COMMIT}/amdnpu
SRC_URI+=" firmware? ( "
for fw in "${!FIRMWARES[@]}"; do
SRC_URI+="${FW_URI_PREFIX}/${fw} -> ${FW_COMMIT:0:6}-${fw%%/*}__${FIRMWARES[${fw}]} "
done
SRC_URI+=")"
fi
FW_URI_PREFIX=https://gitlab.com/kernel-firmware/drm-firmware/-/raw/${FW_COMMIT}/amdnpu
SRC_URI+=" firmware? ( "
for fw in "${!FIRMWARES[@]}"; do
SRC_URI+="${FW_URI_PREFIX}/${fw} -> ${FW_COMMIT:0:6}-${fw%%/*}__${FIRMWARES[${fw}]} "
done
SRC_URI+=")"
S="${WORKDIR}/${P}/src/driver/amdxdna"
LICENSE="GPL-2 firmware? ( linux-fw-redistributable )"
SLOT="0"
IUSE="+firmware"
pkg_info() {
local FWAPI=https://gitlab.com/api/v4/projects/kernel-firmware%2Fdrm-firmware/repository/branches/amd-ipu-staging
local FW_COMMIT=$(curl -s "$FWAPI" | jq -r '.commit.id')
local INFO_FILE=https://raw.githubusercontent.com/amd/xdna-driver/main/tools/info.json
local COMMON_PREFIX=https://gitlab.com/kernel-firmware/drm-firmware/-/raw/amd-ipu-staging/amdnpu/
# shellcheck disable=SC2016
local JQ_EXPR='.firmwares[] | (.url | sub($prefix; "")) as $p | " [" + $p + "]=" + .fw_name'
if [[ ${PV} != 999999 ]] ; then
local INFO_FILE="https://raw.githubusercontent.com/amd/xdna-driver/${PV}/tools/info.json"
local COMMON_PREFIX=https://gitlab.com/kernel-firmware/drm-firmware/-/raw/amd-ipu-staging/amdnpu/
# shellcheck disable=SC2016
local JQ_EXPR='.firmwares[] | (.url | sub($prefix; "")) as $p | " [" + $p + "]=" + .fw_name'
printf "FW_COMMIT=%s\n\n" "$FW_COMMIT"
echo 'declare -A FIRMWARES=('
curl -s "$INFO_FILE" | jq -r --arg prefix "$COMMON_PREFIX" "$JQ_EXPR"
echo ')'
echo 'declare -A FIRMWARES=('
curl -s "$INFO_FILE" | jq -r --arg prefix "$COMMON_PREFIX" "$JQ_EXPR"
echo ')'
fi
}
src_unpack() {
local firmware_dir="${WORKDIR}/${P}/amdxdna_bins/firmware"
if [[ ${PV} == 999999 ]] ; then
git-r3_src_unpack
while IFS=$'\t' read -r device pci_dev_id pci_rev_id fw_name url; do
outdir="${firmware_dir}/${pci_dev_id}_${pci_rev_id}"
mkdir -p "${outdir}" || die
wget -O "${outdir}/${fw_name}" "${url}" || die
done < <(
jq -r '.firmwares[] |
[.device, .pci_device_id, .pci_revision_id, .fw_name, .url]
| @tsv' "${WORKDIR}/${P}/tools/info.json" || die
) || die
else
default
mkdir -p "${firmware_dir}" || die
for fw in "${!FIRMWARES[@]}"; do
local dir="${fw%%/*}"
local src_filename="${FW_COMMIT:0:6}-${dir}__${FIRMWARES[${fw}]}"
mkdir -p "${firmware_dir}/${dir}" || die
cp "${DISTDIR}/${src_filename}" "${firmware_dir}/${dir}/${FIRMWARES[${fw}]}" || die
done
fi
}
src_prepare() {
@@ -84,12 +119,8 @@ src_compile() {
}
src_install() {
for fw in "${!FIRMWARES[@]}"; do
local dir="${fw%%/*}"
local src_filename="${FW_COMMIT:0:6}-${dir}__${FIRMWARES[${fw}]}"
insinto "/lib/firmware/amdnpu/${dir}"
newins "${DISTDIR}/${src_filename}" "${FIRMWARES[${fw}]}"
done
insinto /lib/firmware/amdnpu
doins -r "${WORKDIR}/${P}/amdxdna_bins/firmware"/*
insinto /usr/lib/modules-load.d
newins - amdxdna.conf <<-EOF