From aed5b43c096886bbf97b084172f904e5b4d88e70 Mon Sep 17 00:00:00 2001 From: "Sv. Lockal" Date: Sat, 4 Apr 2026 23:19:52 +0800 Subject: [PATCH] dev-libs/xdna-driver: update live ebuild to use wget for fetching firmwares Signed-off-by: Sv. Lockal --- dev-libs/xdna-driver/Manifest | 7 -- .../xdna-driver/xdna-driver-999999.ebuild | 107 +++++++++++------- 2 files changed, 69 insertions(+), 45 deletions(-) diff --git a/dev-libs/xdna-driver/Manifest b/dev-libs/xdna-driver/Manifest index 5ecf8e6fb1..31af5f519e 100644 --- a/dev-libs/xdna-driver/Manifest +++ b/dev-libs/xdna-driver/Manifest @@ -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 diff --git a/dev-libs/xdna-driver/xdna-driver-999999.ebuild b/dev-libs/xdna-driver/xdna-driver-999999.ebuild index dfc1946b1e..2858ff181a 100644 --- a/dev-libs/xdna-driver/xdna-driver-999999.ebuild +++ b/dev-libs/xdna-driver/xdna-driver-999999.ebuild @@ -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-.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