Re: [PATCH] firmware: smccc: default ARM_SMCCC_SOC_ID to disabled
From: Satya Durga Srinivasu Prabhala
Date: Fri Jan 16 2026 - 15:53:26 EST
Hello Sudeep,
Thanks for the discussion & feedback.
Wanted to check on below possibilities to disable the SMCCC SOC ID at the vendor end, can you help comment?
1. Introduce cmdline option
We are trying to pursue that in Android Kernel - https://android-review.googlesource.com/c/kernel/common/+/3912874
2. Mark SMCCC SMC ID driver as tristate & module as suggested by Dmitry
If any of these other options are agreeable, will send separate patch.
On 1/16/2026 2:39 AM, Sudeep Holla wrote:
On Thu, Jan 15, 2026 at 10:42:51AM -0800, Satya Durga Srinivasu Prabhala wrote:--
Hello Sudeep,See below example of lscpu and HMP.
Thanks for the feedback.
On 1/14/2026 1:01 PM, Sudeep Holla wrote:
On Wed, Jan 14, 2026 at 08:50:23AM -0800, Satya Durga Srinivasu Prabhala wrote:That is one of the point which needs to be considered in my honest opinion.
Hello Sudeep,True, but that's not the main point.
On 1/13/2026 4:29 AM, Sudeep Holla wrote:
On Mon, Jan 12, 2026 at 10:24:06PM -0800, Satya Durga Srinivasu Prabhala wrote:Would like to add some history here. Vendor interface existed [1] even
The ARM SMCCC SoC ID driver is currently enabled by default and publishesInstead of relying on a vendor-specific SoC driver, we should consider
SMCCC-provided SoC identification into /sys/bus/soc/devices/socX/*.
On platforms where a vendor SoC driver already exposes widely-consumed
attributes (e.g. Qualcomm socinfo [1]), enabling the SMCCC driver changes
the format of /sys/devices/soc0/soc_id (e.g. "jep106:XXYY:ZZZZ" instead
of a vendor logical ID like "519") and breaks existing userspace consumers.
disabling it and using the OS-agnostic SoC information interface provided by
the firmware.
before
SMCCC SMC ID was introduced [2]. And there are several user space entities
which
uses the soc0 interface already.
Vendor driver existed from long time (v3.10 Kernels) in Android
https://android.googlesource.com/kernel/msm/+/refs/heads/android-msm-angler-3.10-marshmallow-dr/drivers/soc/qcom/socinfo.c
and lot of user space entities in Android depends on soc0 which is not just
limited
Qualcomm user space, but also, 3rd party ones.
Allow me to add some more details, so far, our firmware hasn't beenWhat exactly do you mean by "firmware started implementing support for SMCCCThe presence of this interface strongly suggests that theThat is correct. We started seeing the issue with user space when our
firmware is designed to support multiple operating systems or software stacks
that already depend on it.
firmware
started implementing support for SMCCC SOC ID recently for non-Linux based
product.
As the firmware remain same across OSes, user space is broken on Linux.
SOC ID recently for non-Linux based product" ? Does that really mean that
you can change the firmware for Linux based products ? I don't think so and
hence we are in this discussion.
1. Either it exists in which case deal with it by disabling vendor driver
and/or fixing the userspace.
or
2. It doesn't exist which is not a problem.
supporting
SMCCC SMC ID. Due a requirement on non-Linux based product, firmware
started
to support the feature and same firmware is used even on Linux Android
(android16-6.12)
based product.
I would say, firmware started supporting the feature on our newer product
instead
of firmware being updated on any older products.
Now, as the user space remain same and is relying on soc0 interface already,
user space is broken as SMCCC SOC ID enabled by default which gets compiled
into Kernel and takes precedence over vendor driver which is a vendor module
in case of Android.
Read that again and think. If other products can cope and are made to copeAs mentioned above, the requirement was for a non-Linux based OS whichThat statement simply doesn't make sense at all. Your product took all theAligning the Linux kernel with thisAgree. Updating entire use space would need time and we are looking to see
firmware-defined, OS-agnostic mechanism would reduce vendor-specific
dependencies and improve portability. Any gaps can be addressed by enhancing
userspace to correctly parse and consume this information.
if vendor specific interface can be given priority over the standard
interface.
effort to implement standards and then you don't want to use it at all.
As per your claims it is not even broken(in terms of data from the sysfs
files), so I don't know what to say here, sorry ?
impacted Linux Android baseline.
up with the new SOC_ID interface, why is Linux so special not to follow that
and fix the userspace to start using new interface. If just getting ID and not
name is the main issue here, consider moving to the updated spec or patch up
in the userspace.
Thanks and that dictates the direction of these discussions.Yes, that's well understood.The data given to the userspace from the kernel is not broken.Given theseAs mentioned above, existing user space will be broken and fixing existing
advantages, why would this approach not be the better long-term solution?
user space is going to take time. As the feature itself is "optional" from SMCCC
specification, if we can't disable by default, we should at-least have a way
to disable the feature by other means.
It was the case with lscpu too. We didn't disable HMP just because lscpuThe userspaceSorry, at risk of repeating the same thing again, the user space was using
tool seem to have made a wrong assumption and can't expect the kernel to
magically fix the issue here.
E.g. We didn't disable HMP(a.k.a big little platforms) as the assumptions
made by several userspace tools(e.g. lscpu IIRC) was wrong at the time.
soc0 interface on Linux Android products for a long time base on vendor
implementation. While I agree that, user space had some assumptions based
on vendor implementation, if not disabling the SMCCC SOC ID by default, we
should at-least have a way to disable it (via cmdline) based on vendor
requirements.
didn't understand or just read cpu0 data. It is exactly the case with
the userspace tool you are mentioning here. Kernel is not providing wrong
data.
From the ABI document in the kernel, it has been marked as socX since its
initial addition in 2012. So clearly userspace got it wrong and no one
realised it until now. There is no argument that data provided from the kernel
is wrong in these discussions. So I have nothing else to add unfortunately.
Kind Regards,
Satya