Re: [v10, 2/2] Documentation/ABI: Add ABI information for QCOM socinfo driver

From: Imran Khan
Date: Mon Apr 24 2017 - 12:00:59 EST


On 4/18/2017 7:53 PM, Imran Khan wrote:
Hi Rob,
Could you please provide some feedback so that this discussion can move forward
and ABI document can be finalized?
Without the ABI document we are not able to get the corresponding driver
finalized and get merged.

Thanks again for your time,
Imran
> Hi Rob,
>
> On 3/6/2017 12:19 PM, Imran Khan wrote:
>> On 2/22/2017 7:34 PM, Rob Herring wrote:
>>> On Mon, Feb 20, 2017 at 10:17:15PM +0530, Khan, Imran wrote:
>>>> The socinfo ABI document describes the information provided
>>>> by socinfo driver and the corresponding attributes to access
>>>> that information.
>>>>
>>>> Signed-off-by: Imran Khan <kimran@xxxxxxxxxxxxxx>
>>>> ---
>>>> .../ABI/testing/sysfs-driver-qcom_socinfo | 171 +++++++++++++++++++++
>>>> 1 file changed, 171 insertions(+)
>>>> create mode 100644 Documentation/ABI/testing/sysfs-driver-qcom_socinfo
>>>
>>> Sorry to comment late on this (blame LWM), but I think creating this ABI
>>> is a mistake. The biggest issue I have is this doesn't scale if every
>>> SoC does its own thing. We should have a common interface so for example
>>> userspace can retrieve the serial number from any SoC in the same way.
>>> Yes, we can have custom attributes, but there should be common base.
>>>
>>
>> Yeah, I agree about the scalability part. Could you please suggest some way to
>> implement a common base for the custom attributes. Like for serial number I think
>> we can put it in generic soc_device_attribute but for custom attributes like accessory_chip,
>> hw_platform etc., how can we implement a common base. Can we have a private pointer within
>> generic soc_device_attribute structure and this private pointer can point to custom attributes.
>> Or if you have some other suggestion to implement this common interface, please let me know.
>
> Could you please provide some feedback regarding this?
>
>>>
>>>> diff --git a/Documentation/ABI/testing/sysfs-driver-qcom_socinfo b/Documentation/ABI/testing/sysfs-driver-qcom_socinfo
>>>> new file mode 100644
>>>> index 0000000..cce611f
>>>> --- /dev/null
>>>> +++ b/Documentation/ABI/testing/sysfs-driver-qcom_socinfo
>>>> @@ -0,0 +1,171 @@
>>>> +What: /sys/devices/soc0/accessory_chip
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows the id of the accessory chip.
>>>> +
>>>> +What: /sys/devices/soc0/adsp_image_crm
>>>> +What: /sys/devices/soc0/adsp_image_variant
>>>> +What: /sys/devices/soc0/adsp_image_version
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + These files respectively show the crm version, variant and
>>>> + version of the ADSP image.
>>>
>>> Shouldn't this be part of the ADSP driver?
>>>
>> Yes, It can be but I wanted to keep the image information at a central location,
>> rather than pushing it back to each driver. For image information we basically
>> read the same item from SMEM but use different offsets within it for different images,
>> so the idea was to read this information ( get SMEM handler) just once, rather than
>> doing it for each driver.
>> But if this idea does not look correct, I can remove it from socinfo driver.
>>
>
> Could you please provide some feedback regarding this?
>
>>>> +
>>>> +What: /sys/devices/soc0/apps_image_crm
>>>> +What: /sys/devices/soc0/apps_image_variant
>>>> +What: /sys/devices/soc0/apps_image_version
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + These files respectively show the crm version, variant and
>>>> + version of the APPS(Linux kernel, rootfs) image.
>>>
>>> Assuming that the kernel and rootfs are the same image and updated
>>> together?
>>>
>>
>> Yes. The kernel and rootfs are same image and they are updated together.
>>
>>>> +
>>>> +What: /sys/devices/soc0/boot_image_crm
>>>> +What: /sys/devices/soc0/boot_image_variant
>>>> +What: /sys/devices/soc0/boot_image_version
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + These files respectively show the crm version, variant and
>>>> + version of the Boot(bootloader) image.
>>>> +
>>>> +What: /sys/devices/soc0/build_id
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows the unique id of current build being used on
>>>> + the system.
>>>
>>> Build of what? The kernel already has a build version.
>>>
>> This is not build id of the kernel. This is build ID of complete meta image.
>>
>>>> +
>>>> +What: /sys/devices/soc0/cnss_image_crm
>>>> +What: /sys/devices/soc0/cnss_image_variant
>>>> +What: /sys/devices/soc0/cnss_image_version
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + These files respectively show the crm version, variant and
>>>> + version of the CNSS image.
>>>> +
>>>> +What: /sys/devices/soc0/family
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows the family(e.g Snapdragon) of the SoC.
>>>
>>> Sounds like a standard attr.
>>>
>> Yeah. This is standard attribute. Will remove this from Documentation here.
>>
>>>> +
>>>> +What: /sys/devices/soc0/foundry_id
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows the id of the foundry, where soc was
>>>> + manufactured.
>>>
>>> I don't see how userspace should care...
>>>
>> Yeah, usually user space would not care for such information. But sometimes we have
>> come across h/w issues that were seen only on set of chips from a particular
>> foundry. Under such situations we use this information to confirm if a certain h/w
>> issue is specific to a batch from a particular foundry or not.
>>
> Could you please provide some feedback regarding this?
>
>>>> +
>>>> +What: /sys/devices/soc0/hw_platform
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows the type of hardware platform
>>>> + (e.g MTP, QRD etc) where SoC is being used.
>>>
>>> What's a platform?
>>>
>> We may use same soc on different type of platforms. For example for QCOM we have
>> MTP (board with which a debug board can be connected), QRD (no debug connection available).
>> Similarly other ODMs may have different kind of platforms based on same soc.
>> hw_paltform indicates numeric id for different kind of such platforms.
>>
>>>> +
>>>> +What: /sys/devices/soc0/machine
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows the machine name as given in the DT.
>>>
>>> This is already exposed.
>>>
>> Yeah. Will remove it from this document.
>>
>>>> +
>>>> +What: /sys/devices/soc0/mpss_image_crm
>>>> +What: /sys/devices/soc0/mpss_image_variant
>>>> +What: /sys/devices/soc0/mpss_image_version
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + These files respectively show the crm version, variant and
>>>> + version of the MPSS image.
>>>
>>> Part of the MPSS driver?
>>>
>> Agree. Kindly see my comment above for the ADSP image(adsp_image_xxx).
>>
>>>> +
>>>> +What: /sys/devices/soc0/platform_subtype
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows the sub-type of hardware platform
>>>> + (SKUAA, SKUF etc.) where SoC is being used.
>>>> +
>>>> +What: /sys/devices/soc0/platform_version
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file show the version of the hardware platform.
>>>> +
>>>> +What: /sys/devices/soc0/pmic_die_revision
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows revision of PMIC die.
>>>
>>> Part of the PMIC driver?
>>>
>> Agree. Kindly see my comment above for the ADSP image(adsp_image_xxx).
>>
>>>> +
>>>> +What: /sys/devices/soc0/pmic_model
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows name of PMIC model.
>>>> +
>>>> +What: /sys/devices/soc0/qcom_odm
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows the ODM using the SoC.
>>>
>>> The vendor in the top-level compatible should provide this.
>>>
>> Yeah. Have removed this in the latest version of driver. Will remove it
>> from ABI document too.
>>
>>>> +
>>>> +What: /sys/devices/soc0/raw_version
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows raw version of the SoC.
>>>> +
>>>> +What: /sys/devices/soc0/revision
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows revision of the SoC.
>>>
>>> Why do you need both?
>>>
>> Revision is version of the soc like 2.0, 3.0, 3.1 etc.
>> and raw_version is is raw chip version which is an strictly increasing
>> integer counter, increasing for each version of the chip.
>> For example:
>> Version Raw_version
>> 1.0 0
>> 1.1 1
>> 2.0 2
>> 2.1 3
>> 2.2 4
>> 3.0 5
>>
>>>> +
>>>> +What: /sys/devices/soc0/rpm_image_crm
>>>> +What: /sys/devices/soc0/rpm_image_variant
>>>> +What: /sys/devices/soc0/rpm_image_version
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + These files respectively show the crm version, variant and
>>>> + version of the RPM image.
>>>
>>> RPM driver?
>>>
>> Agree. Kindly see my comment above for the ADSP image(adsp_image_xxx).
>>
>>>> +
>>>> +What: /sys/devices/soc0/serial_number
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows serial number of the SoC.
>>>
>>> Already have a standard property in DT.
>>>
>>>> +
>>>> +What: /sys/devices/soc0/soc_id
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows the unique numeric id of a Qualcomm SoC.
>>>
>>> unique per chip or per SoC model?
>>>
>> This is unique per SoC model. For example 8996 and 8996pro
>> would have different soc_id.
>>
>>>> +
>>>> +What: /sys/devices/soc0/tz_image_crm
>>>> +What: /sys/devices/soc0/tz_image_variant
>>>> +What: /sys/devices/soc0/tz_image_version
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + These files respectively show the crm version, variant and
>>>> + version of the TZ image.
>>>
>>> TZ driver?
>>>
>> Agree. Kindly see my comment above for the ADSP image(adsp_image_xxx).
>>
>>>> +
>>>> +What: /sys/devices/soc0/vendor
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + This file shows the vendor of the SoC.
>>>
>>> Already in DT.
>>>
>> Okay. Will remove this field from the driver and from the
>> document.
>>
>>>> +
>>>> +What: /sys/devices/soc0/video_image_crm
>>>> +What: /sys/devices/soc0/video_image_variant
>>>> +What: /sys/devices/soc0/video_image_version
>>>> +Date: January 2017
>>>> +Contact: linux-arm-msm@xxxxxxxxxxxxxxx
>>>> +Description:
>>>> + These files respectively show the crm version, variant and
>>>> + version of the video image.
>>>
>>> Video as in display or video codec? Should be part of the driver.
>>>
>> Agree. Kindly see my comment above for the ADSP image(adsp_image_xxx).
>>> Rob
>>
>> Thanks for the review comments.
>>
>> Thanks and Regards,
>> Imran
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-soc" in
>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>>
>>
>>
> Thanks and Regards,
> Imran
>


--
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a\nmember of the Code Aurora Forum, hosted by The Linux Foundation