Received: by 2002:a05:7412:d002:b0:f9:9049:d2ea with SMTP id bd2csp16002rdb; Wed, 20 Dec 2023 02:33:26 -0800 (PST) X-Google-Smtp-Source: AGHT+IEdYRnmyVBFQOEzEIsGo8CZqPeQQfCSc8M08rDUnF+NlwWXiIQW72cw1u0XHdDZL+cJ6krO X-Received: by 2002:a05:622a:1a90:b0:427:90b2:bad2 with SMTP id s16-20020a05622a1a9000b0042790b2bad2mr32976qtc.30.1703068406131; Wed, 20 Dec 2023 02:33:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703068406; cv=none; d=google.com; s=arc-20160816; b=RYWksmlTdTJjWIcuz8P8horktXxiKz3ibTwbRe6TKrJSVWN8ibsVJt90KUzeTHet9f 6IZCfqkqxBjtFNVjAtAW0eziw24IcC4SbaYjvCzmxutxjzMXjySama0sv8o7vDoDr/3M ymgnfZfuc+CXKsqdB5V2mlmnQvr0LcFlLMAe9VJnR0nRG0A1LEZ1StVfWSzpc4RhWRLn t6b5zN5Aou3gA/BGAHBaLisbJkGYPYGff1OTSlxjzuhfnGEbc4/WgoAqnFOvYHwDzM6D ZTRZHFBcgpNLD6ZpeS2UFGSHbNFSYLV8IqJUpdVDDIq5YOnBWwl8NZaVGDXW4lv3exDL 4Olg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:to:from:dkim-signature; bh=7qtNcAO0ppjHzZIU/hLis0rkAchUbEqDdoUufrmlDX0=; fh=2N3Z03RQVVhePyrZ72iH60gtdUYOyAenDN3C1O3SC6M=; b=XUEgGxvQi+/0JZ+m4VZDMx0sJe3JJsHVUbyedu+zBzlEI2NysLRvYX/VzFctb4gAXq nh2jvyjvDD/QTmmU2DjlhTKbZB5Qr2m0kMKzSvnCJ/QIM6cvzCPoLWd+eLGxe03V2xbh FCHP2Qp411zm49hq7784ZLO+6nz6MKH1AQw1ZlqMQWHCNwO2ogOeGoOs8qEmBWtpgQ2J 0VMp5brEVSFgsvhrWdevHyg0FrseVOZgOd/o486ywG4XzYXwDIyim/0cgvzh5iaLyT1O zGwS3yIgus/VFd+wju+uNt2HH/2jCkP7i6zM5nPJ7K0llTBN7jVAc5Xn0PD9/AYSGb7S QDcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=mDa17dwM; spf=pass (google.com: domain of linux-kernel+bounces-6749-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-6749-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id w11-20020a05622a134b00b0042578643aacsi30777067qtk.577.2023.12.20.02.33.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Dec 2023 02:33:26 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-6749-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=mDa17dwM; spf=pass (google.com: domain of linux-kernel+bounces-6749-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-6749-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id C4FC01C221B4 for ; Wed, 20 Dec 2023 10:33:25 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 55B7020B1E; Wed, 20 Dec 2023 10:33:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mDa17dwM" X-Original-To: linux-kernel@vger.kernel.org Received: from mail-yb1-f179.google.com (mail-yb1-f179.google.com [209.85.219.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3665920B04 for ; Wed, 20 Dec 2023 10:33:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-yb1-f179.google.com with SMTP id 3f1490d57ef6-da7ea62e76cso4646139276.3 for ; Wed, 20 Dec 2023 02:33:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1703068395; x=1703673195; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=7qtNcAO0ppjHzZIU/hLis0rkAchUbEqDdoUufrmlDX0=; b=mDa17dwMLTzXf77SHxXF9lgsZws9smAt1eOg5Ns607VYvwVwZ+4XMHf0iBcGRHUyvq Lveo7h/fVsOQiqo0djpoblWhY82lSyTGybrYCzNjUgEIXmLNbh66lek4locd3uPGJWLe H0Y1eHP5l4W71B3DTRmFVq5++a1+pB7o9mWet5XaudDT/ubjqxXR3rNO1afpmc7r0mOG dJ0MBDPt1QPpri4Owzb7tHwGL6/DxJ4eXdIuFXLqPgwjGVyW8RYV6jCXQYCz6nxFvenZ VKoO6++UcBhrZgdYFUXOHQiMOO5T2QGYLz9MY5xkXXiFdBdT6zyDXvH1wDVlnF5Ar02t l5rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703068395; x=1703673195; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7qtNcAO0ppjHzZIU/hLis0rkAchUbEqDdoUufrmlDX0=; b=M+PCiZB0y9ujKdFtTWpoMakPPVBc9+NrvFHXWoI7Bsk/9aG114mczhDyNUSbJMY/nF tASElb0+shRd1IOswdL/uFvXHMw2KPnZlqtFOaKPD+ffli4xSQ7Y5I3hxzL49vl5tkBk Rih7O5ueMdTZVtHBTcW5azFdHNzTZ1d5NjHWP7V5LYfwZpsR3/IU2slKBggHyTIixm/x wm1jeIeuLg5sDEaeuR9ghaMaRWzEds/Nwlc99OGdgUoU1X/JNRY4XjtBYQjUbM3BsN/x ykrx8mbMLQB/kh7Sou+JP+nb+X62uPaznNdCRG7FDUqvXIFuRzW+GLZbrfHHdrEOS3nx /5Mg== X-Gm-Message-State: AOJu0YwZ73p4XsyUz08DcYATDd9cVbSxDtoRyyC9uDVbDzBX7kJfbRV0 nS0MHnVH0omZaAMLTbwJ4bs= X-Received: by 2002:a25:ab86:0:b0:dbd:4fae:cf79 with SMTP id v6-20020a25ab86000000b00dbd4faecf79mr1977544ybi.129.1703068395043; Wed, 20 Dec 2023 02:33:15 -0800 (PST) Received: from localhost ([185.215.181.26]) by smtp.gmail.com with ESMTPSA id t49-20020a25aab4000000b00dbd15c3b753sm345116ybi.46.2023.12.20.02.33.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Dec 2023 02:33:14 -0800 (PST) From: Kevin Martin To: kevinmbecause@gmail.com, Luis Chamberlain , Russ Weight , Greg Kroah-Hartman , "Rafael J. Wysocki" , linux-kernel@vger.kernel.org Subject: [PATCH 2/2] firmware_loader: Enable compressed files in EXTRA_FIRMWARE Date: Wed, 20 Dec 2023 05:29:33 -0500 Message-ID: X-Mailer: git-send-email 2.41.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The linux-firmware packages on Gentoo, Fedora, Arch, and others compress the firmware files. This works well with CONFIG_FW_LOADER_COMPRESS, but does not work with CONFIG_EXTRA_FIRMWARE. This patch allows the build system to decompress firmware files specified by CONFIG_EXTRA_FIRMWARE. Uncompressed files are used first, then the compressed files are used. Signed-off-by: Kevin Martin --- drivers/base/firmware_loader/Kconfig | 5 ++++- drivers/base/firmware_loader/builtin/Makefile | 16 ++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/drivers/base/firmware_loader/Kconfig b/drivers/base/firmware_loader/Kconfig index 5ca00e02f..b7a908bff 100644 --- a/drivers/base/firmware_loader/Kconfig +++ b/drivers/base/firmware_loader/Kconfig @@ -76,7 +76,10 @@ config EXTRA_FIRMWARE image since it combines both GPL and non-GPL work. You should consult a lawyer of your own before distributing such an image. - NOTE: Compressed files are not supported in EXTRA_FIRMWARE. + NOTE: Compressed files are supported by EXTRA_FIRMWARE. The build + system will look for uncompressed files first then fall back to + searching for compressed files in a similar way to + CONFIG_FW_LOADER_COMPRESS. config EXTRA_FIRMWARE_DIR string "Firmware blobs root directory" diff --git a/drivers/base/firmware_loader/builtin/Makefile b/drivers/base/firmware_loader/builtin/Makefile index 6c067dedc..cc60eb441 100644 --- a/drivers/base/firmware_loader/builtin/Makefile +++ b/drivers/base/firmware_loader/builtin/Makefile @@ -20,7 +20,7 @@ filechk_fwbin = \ echo " .section .rodata" ;\ echo " .p2align 4" ;\ echo "_fw_$(FWSTR)_bin:" ;\ - echo " .incbin \"$(fwdir)/$(FWNAME)\"" ;\ + echo " .incbin \"$(obj)/$(FWNAME)\"" ;\ echo "_fw_end:" ;\ echo " .section .rodata.str,\"aMS\",$(PROGBITS),1" ;\ echo " .p2align $(ASM_ALIGN)" ;\ @@ -36,7 +36,15 @@ $(obj)/%.gen.S: FORCE $(call filechk,fwbin) # The .o files depend on the binaries directly; the .S files don't. -$(addprefix $(obj)/, $(firmware)): $(obj)/%.gen.o: $(fwdir)/% +$(addprefix $(obj)/, $(firmware)): $(obj)/%.gen.o: $(obj)/% -targets := $(patsubst $(obj)/%,%, \ - $(shell find $(obj) -name \*.gen.S 2>/dev/null)) +$(obj)/% : $(fwdir)/% FORCE + $(call if_changed,copy) + +$(obj)/% : $(fwdir)/%.xz FORCE + $(call if_changed,xzdec) + +$(obj)/% : $(fwdir)/%.zst FORCE + $(call if_changed,zstddec) + +targets := $(patsubst %.gen.o, %.gen.S, $(firmware)) $(CONFIG_EXTRA_FIRMWARE) -- 2.41.0