From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C73902BDC28 for ; Fri, 20 Feb 2026 21:48:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771624111; cv=none; b=Bz4YOrVDIQF4W4AwyEfYO8ol0gkUfFAKQ3BG0AJS4N2scfX7S4L++OXk/NGrJE5TDHFUS8yKCGWgDbRThLECQNEY8+tkAl67AYaGTwFIJuRU3q+lk/o29YG+ETp3yzdO3h6TR9piE7IjR0Bkkjb6/IgSHHVlUEzciBWB3KxMOjM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771624111; c=relaxed/simple; bh=bknMDF8lQwRxo7xmJ5Xq23k1HXA3PGZJ5TZ07s81Cv8=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=G2iAHrBMBMgAaMoQUziiCRcFqw8gKfnSCZc6DWNSBrDKTnpRUAWSho8netR86SuibhAE6q0R7xlphzibyUzpVqGzbV/BEKe2zSgAMyuu/RRXd0YeyvKZFtVvO3wcZ5uxDRSUw4ZNPmcMhHrIwZlOMtLn+pwRzsI0AbXs3cr7X/M= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=JdQ66zrl; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QZHgu/Py; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="JdQ66zrl"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QZHgu/Py" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61KGkBas3337629 for ; Fri, 20 Feb 2026 21:48:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= kfhuDMVQ2sXAvKNxypnteftZi1j21aONkPIUNCFMvE4=; b=JdQ66zrluqUy5oLB Q4bOyiX9UpzfZk/rBtIix8lptSOscEqZVg8tdASFTwRzKsb62wbuG2j9JlTxeCKS VhsWmU/qmrIe19n1tYsx4TcMI3lTZ8/zR/6B2pTN8MLRz6xsEFORMwkpBkhXq6di 2mWZnVXOmY3Bsv3SChlYCNVyr+8sY0DOjMZVM6rTxxPOMyrT4E7ZnvS+lb2UfjRf 29HIjf2TZW+U+LsCrrfeeSwCBFFSsuMKH9Gc/os/bzrDQJy8T1A6d+YmRy7YVRgC dEjVKih/uHiQNMcFSjcyjsf2HpQzFjci6AmGtsgZ+7znqJTLSSe/T2FMLHqFQlJZ ACBHsg== Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cedp6k0fd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 20 Feb 2026 21:48:29 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d4c7afa9e0so31498757a34.0 for ; Fri, 20 Feb 2026 13:48:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1771624108; x=1772228908; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=kfhuDMVQ2sXAvKNxypnteftZi1j21aONkPIUNCFMvE4=; b=QZHgu/PyRTJ7Jra0VTy2qr7tPD31lSpTeb0cK1BpWC8BaC19SSRsN/0YqkW+PqXVeZ /as/SNb+GXFJYRFoqsSUipQTLpNZDmzqKcTNBgMEjnTI9/aRC3M3x4l70vLmrGeheZWJ fIXTGxFnat7ElLNlW3CiH+pFJaxTrxIbneqUmUtmjhzmztJqBXXLZYr0ozXcEqWaTAyA nmyU0ZOk18O/EuWdsA4PA+kUaPuVUlcoYVp1gW2KXjov8Pb3JpIhAl51AOq+a7XE95RG Z4zBeC4Tyj4V+7lkYKZr6aBGBHRYIWJmzF8dEr+moOM2tTQ9qLmL33EC2eTs0Xtr2Ecx O9VA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771624108; x=1772228908; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kfhuDMVQ2sXAvKNxypnteftZi1j21aONkPIUNCFMvE4=; b=OhJTfjZVE8CCHpRcHh01LcQeko9Y/n3X7q0vK2L6cazkI9tEQT1PTw9hhHE2vmdbvq WzI7lHHXmKUtNCaZbCONY+k5b8Vgxux8yF3mt5rurWS4VuAcWvkkacRz2cDx7BZqBia+ X3LWsQ+BztWc+HvmCdEeAWE2m988A+wE9uyW9r5ah0611YM9c1SOTRAh+xhxZUUO4aMC iUtUO9YUQLuKZAbEwtTgQ4EqXoSbNNFSAbFyRzPDkdk6OzEaDEveoK7mC7tiU44NRZC9 UlbekkgJQZaC0Kr5T8b9/WdyhLpuLQNpwcDSa5myFbq8AstuyMAGDBu5f5FiiUL37OYM jRbQ== X-Forwarded-Encrypted: i=1; AJvYcCV+ODYlFCV1fxpWR/DE9h6PY3gw8V/G9cII4CYcXLRXYBtIkpjIkK8Kt+PRQvmCidrj8sXaUpW0zIuqmyE=@vger.kernel.org X-Gm-Message-State: AOJu0Yw6B62bja/Zha7H39/VRAZJB9GXO7OT1gZDiQw8AzF0E2jhGg2j lL5Lis4i8FKKsUyGUKBGdp0DCkI/HIyKTxXRa/t2U3IXz3Z6X4km7kdSdmsJpicTHsZTrQI6xU0 O5tDuSu2ax3SDpCfLhtfDH/yXRdVebxidJOhCD0fCaOOUMUK0DtMPljtKF1+Qso4Dn3k= X-Gm-Gg: AZuq6aJ3P9YBn1aaDhN5GveM97Y+VAGMzoLkI0noAU+XNTQATp2/yBuBu/7t7atOmrt ZgNMrvx/9hdwITJ3CNcORUYaQQlwM2i2KSUfAKqomGy+wWqanj8QhxMvrx73ikeewAwBNbMHMbB Bm3Kp211N7jidmGsTJJewYwX+x1LBzSw2vZGg7XSSpfGUZtmAyKm4ssforeMXJ8G+WVX6KScvOc 3i2AtrfJy7qlEAgkggDoecD0RBVVfu2LDZCgVKQBVWkB4lADO9SclbmsRqMBRAx+vl1Rw/r48Hw KSwh2K4eDQX3pNDHdJqg/hCIeFbRccdmVgR5wI2iwb2bk/hE7elpV+ybbiXrnvvKfd6QwBeog0t SyFiU/0vheq8keVgwZtdFQtV4mg5c4GbTP1O73NrElqmWI6Wv7M8cTug= X-Received: by 2002:a05:6830:3689:b0:7cf:d0f3:4610 with SMTP id 46e09a7af769-7d52bf36ea6mr1036706a34.28.1771624108125; Fri, 20 Feb 2026 13:48:28 -0800 (PST) X-Received: by 2002:a05:6830:3689:b0:7cf:d0f3:4610 with SMTP id 46e09a7af769-7d52bf36ea6mr1036688a34.28.1771624107604; Fri, 20 Feb 2026 13:48:27 -0800 (PST) Received: from [192.168.86.165] ([76.176.48.107]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d52cf9f489sm608050a34.7.2026.02.20.13.48.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 20 Feb 2026 13:48:27 -0800 (PST) Message-ID: <2379d582-47a0-47c1-968a-04d5dc2a0d9d@oss.qualcomm.com> Date: Fri, 20 Feb 2026 13:48:25 -0800 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 1/1] firmware: smccc: add support for Live Firmware Activation (LFA) To: Andre Przywara , Salman Nabi Cc: mark.rutland@arm.com, lpieralisi@kernel.org, linux-kernel@vger.kernel.org, vwadekar@nvidia.com, sdonthineni@nvidia.com, vsethi@nvidia.com, linux-coco@lists.linux.dev, sudeep.holla@arm.com, ardb@kernel.org, linux-arm-kernel@lists.infradead.org, chao.gao@intel.com References: <20260119122729.287522-1-salman.nabi@arm.com> <20260119122729.287522-2-salman.nabi@arm.com> <20260220173929.02bc2cf2@orionap.fritz.box> Content-Language: en-US From: Trilok Soni In-Reply-To: <20260220173929.02bc2cf2@orionap.fritz.box> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjIwMDE3OSBTYWx0ZWRfX1Rgnd/x8lH0H wOJTgzhUfwAnTIgqsbclEpVDa5+jq80RX6fPFAQZU389lc2q93eb3+PU3R9YDW5z1rx4wsX1ZkU 9CCBDqmYSpskIunyciXCa8+FobKSMVLKuBj8DvyCDycVqfVp5tXwuxsqgBLQayHwqtF0sRDXKAc IFcv4WUepk6KazQuRjsf3qqn/khWMZkWRV/xCC1ySR9cAwA5WaUPgCRD6gFQWr0j9gAKALwE2/+ GZPX665PqqVMp56fpHMhl/2LcF8JTvqp/qFRcYYCHqjD5ucXq0h6TTC3JNRJ/lWuFEZnQSRyfi0 6lpRwqkw2WLje9BD6H75cdvsJXgxc5OFEsNg1LLasddc8tIOmNy/ansGpcTPXpE0Z1ROyD/ptCk 4DgF48UZAF6XboZFltuY/cmtkcbJbYjaE71R9ohPS4vI2UlCC3hklWCB71mCw7azz+j37nqKxGX SFyLRKIzxC2hlSaOgHQ== X-Proofpoint-ORIG-GUID: 4_bSc9gexJ4PcmLmmbKCabyPL3znycLK X-Authority-Analysis: v=2.4 cv=Vuouwu2n c=1 sm=1 tr=0 ts=6998d6ad cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=lsoD3MMNObdLvy1227ExmA==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=7CQSdrXTAAAA:8 a=KiQHqBYQfqT5kMCPLFsA:9 a=QEXdDO2ut3YA:10 a=Z1Yy7GAxqfX1iEi80vsk:22 a=a-qgeE7W1pNrGK8U0ZQC:22 X-Proofpoint-GUID: 4_bSc9gexJ4PcmLmmbKCabyPL3znycLK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-20_03,2026-02-20_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 adultscore=0 bulkscore=0 impostorscore=0 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602200179 On 2/20/2026 9:39 AM, Andre Przywara wrote: > On Mon, 19 Jan 2026 12:27:29 +0000 > Salman Nabi wrote: > > Hey, > > for the records: while working on improving the patch and during internal > review, we found some bugs and issues in there. I will mark them below for > the benefit of others. I will send a v2 after -rc1, with those things > fixed and some improvements, and will include Vedashree's patches, so > that we have everything in one series. > >> The Arm Live Firmware Activation (LFA) is a specification [1] to describe >> activating firmware components without a reboot. Those components >> (like TF-A's BL31, EDK-II, TF-RMM, secure paylods) would be updated the >> usual way: via fwupd, FF-A or other secure storage methods, or via some >> IMPDEF Out-Of-Bound method. The user can then activate this new firmware, >> at system runtime, without requiring a reboot. >> The specification covers the SMCCC interface to list and query available >> components and eventually trigger the activation. >> >> Add a new directory under /sys/firmware to present firmware components >> capable of live activation. Each of them is a directory under lfa/, >> and is identified via its GUID. The activation will be triggered by echoing >> "1" into the "activate" file: >> ========================================== >> /sys/firmware/lfa # ls -l . 6c* >> .: >> total 0 >> drwxr-xr-x 2 0 0 0 Jan 19 11:33 47d4086d-4cfe-9846-9b95-2950cbbd5a00 >> drwxr-xr-x 2 0 0 0 Jan 19 11:33 6c0762a6-12f2-4b56-92cb-ba8f633606d9 >> drwxr-xr-x 2 0 0 0 Jan 19 11:33 d6d0eea7-fcea-d54b-9782-9934f234b6e4 >> >> 6c0762a6-12f2-4b56-92cb-ba8f633606d9: >> total 0 >> --w------- 1 0 0 4096 Jan 19 11:33 activate >> -r--r--r-- 1 0 0 4096 Jan 19 11:33 activation_capable >> -r--r--r-- 1 0 0 4096 Jan 19 11:33 activation_pending >> --w------- 1 0 0 4096 Jan 19 11:33 cancel >> -r--r--r-- 1 0 0 4096 Jan 19 11:33 cpu_rendezvous >> -r--r--r-- 1 0 0 4096 Jan 19 11:33 current_version >> -rw-r--r-- 1 0 0 4096 Jan 19 11:33 force_cpu_rendezvous >> -r--r--r-- 1 0 0 4096 Jan 19 11:33 may_reset_cpu >> -r--r--r-- 1 0 0 4096 Jan 19 11:33 name >> -r--r--r-- 1 0 0 4096 Jan 19 11:33 pending_version >> /sys/firmware/lfa/6c0762a6-12f2-4b56-92cb-ba8f633606d9 # grep . * >> grep: activate: Permission denied >> activation_capable:1 >> activation_pending:1 >> grep: cancel: Permission denied >> cpu_rendezvous:1 >> current_version:0.0 >> force_cpu_rendezvous:1 >> may_reset_cpu:0 >> name:TF-RMM >> pending_version:0.0 >> /sys/firmware/lfa/6c0762a6-12f2-4b56-92cb-ba8f633606d9 # echo 1 > activate >> [ 2825.797871] Arm LFA: firmware activation succeeded. >> /sys/firmware/lfa/6c0762a6-12f2-4b56-92cb-ba8f633606d9 # >> ========================================== >> >> [1] https://developer.arm.com/documentation/den0147/latest/ >> >> Signed-off-by: Salman Nabi >> --- >> drivers/firmware/smccc/Kconfig | 8 + >> drivers/firmware/smccc/Makefile | 1 + >> drivers/firmware/smccc/lfa_fw.c | 668 ++++++++++++++++++++++++++++++++ >> 3 files changed, 677 insertions(+) >> create mode 100644 drivers/firmware/smccc/lfa_fw.c >> >> diff --git a/drivers/firmware/smccc/Kconfig b/drivers/firmware/smccc/Kconfig >> index 15e7466179a6..ff7ca49486b0 100644 >> --- a/drivers/firmware/smccc/Kconfig >> +++ b/drivers/firmware/smccc/Kconfig >> @@ -23,3 +23,11 @@ config ARM_SMCCC_SOC_ID >> help >> Include support for the SoC bus on the ARM SMCCC firmware based >> platforms providing some sysfs information about the SoC variant. >> + >> +config ARM_LFA >> + tristate "Arm Live Firmware activation support" >> + depends on HAVE_ARM_SMCCC_DISCOVERY > > As the kernel test robot correctly pointed out, this only works on ARM64. > SMCCC v1.2 is only defined for AArch64, and the LFA spec documents > actually explicitly mentions AArch64-only at the beginning. Thank you for the update. How to test these patches outside of NVIDIA devices? Is it possible to test them on the QEMU or FVP? Any instructions on doing these tests will be helpful w/ the virtual platforms. ---Trilok Soni