Skip to content

RFC Export SoC info through sysfs

Maxime Coquelin linux-arm-kernel linux-arm-msm linux-omap lkml 2 versions – New

Get series with b4
b4 am 1299846911-15782-1-git-send-email-maxime.coquelin-nonst@stericsson.com

Versions newest first · linked by author and title

  1. v2 RFC Latest2 patches 0 repliesNew
  2. v1 RFC0 of 2 patches 0 repliesSuperseded

v1 from the cover letter

Conclusion about first version :
* /sys/devices/system is not right place for this interface.
* "mach_name" should be declared as other attributes to simplify code.
* The get_info callback should use directly the "show" callback buffer.
* Documentation was missing (ABI description required)
* Errors were not reported at registration time.
* Macros should be used to create attributes.
* Some kernel coding rules not followed.

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2Export SoC info through sysfsDocumentation/ABI/testing/sysfs-socinfo drivers/base/Kconfig drivers/base/Makefile +2 more+149 -025 replies
1/2Export SoC info through sysfs+0 -01 reply
2/2ux500: Export U8500 SoC info through sysfsarch/arm/mach-ux500/Kconfig arch/arm/mach-ux500/id.c+71 -03 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [RFC PATCHv2 0/2] Export SoC info through sysfs

Here is the second version of the proposal to export SoC related information to user-space through sysFS interface.

The first patch introduces the common part, which provides an interface to the platform to export platform-defined IDs to user-space. The IDs strings can be provided in two ways: either with a pointer to the string, or by a callback fullfilling the sysfs's "show" callback buffer.

The second patch is given as example for the ux500 architecture. It registers the socinfo interface, and exports 5 values (Family name, machine name, silicon process, silicon revision, and serial number).

Here is the output for DB8500:
root at ME:/sys/socinfo ls -l

-r--r--r-- 1 root root 4096 Jan  2 03:35 family
-r--r--r-- 1 root root 4096 Jan  2 03:35 machine
-r--r--r-- 1 root root 4096 Jan  2 03:35 process
-r--r--r-- 1 root root 4096 Jan  2 03:35 revision
-r--r--r-- 1 root root 4096 Jan  2 03:35 soc_id

root at ME:/sys/socinfo cat machine
DB8500
root at ME:/sys/socinfo cat family
Ux500
root at ME:/sys/socinfo cat process
Standard
root at ME:/sys/socinfo cat revision
2.0
root at ME:/sys/socinfo cat soc_id
2ba07ce9e5835d6185321e9577462ef2ea2129cf

-------------------------------------------------------------------------------
v1:
Conclusion about first version :
* /sys/devices/system is not right place for this interface.
* "mach_name" should be declared as other attributes to simplify code.
* The get_info callback should use directly the "show" callback buffer.
* Documentation was missing (ABI description required)
* Errors were not reported at registration time.
* Macros should be used to create attributes.
* Some kernel coding rules not followed.

-------------------------------------------------------------------------------

Any comments are welcome.

Note that I will be off from 13th to 21th of March.

Regards,
Maxime

-------------------------------------------------------------------------------

Maxime Coquelin (2):
Export SoC info through sysfs
ux500: Export U8500 SoC info through sysfs

 Documentation/ABI/testing/sysfs-socinfo |   16 ++++++
 arch/arm/mach-ux500/Kconfig             |    1 +
 arch/arm/mach-ux500/id.c                |   70 +++++++++++++++++++++++++++
 drivers/base/Kconfig                    |    3 +
 drivers/base/Makefile                   |    1 +
 drivers/base/soc.c                      |   79 +++++++++++++++++++++++++++++++
 include/linux/sys_soc.h                 |   50 +++++++++++++++++++
 7 files changed, 220 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-socinfo
 create mode 100644 drivers/base/soc.c
 create mode 100644 include/linux/sys_soc.h