[PATCH v5 0/4] soc: amlogic: add new meson-gx-socinfo-sm driver

From: Viacheslav Bocharov
Date: Mon Jun 10 2024 - 04:41:53 EST


The Amlogic Meson SoC Secure Monitor implements a call to retrieve an
unique SoC ID starting from the GX Family and all new families.
But GX-family chips (e.g. GXB, GXL and newer) supports also 128-bit
chip ID. 128-bit chip ID consists 32-bit SoC version and 96-bit OTP data.

This is next attempt to publish data from the Amlogic secure monitor
chipid call. After discussions with Neil Armstrong, it was decided to
publish the chipid call results through the soc driver. Since
soc_device_match cannot wait for the soc driver to load, and the secure
monitor calls in turn depend on the sm driver, it was necessary to create
a new driver rather than expand an existing one.

In the patches, in addition to writing the driver:
- convert commonly used structures and functions of the meson-gx-socinfo
driver to a header file.
- add secure-monitor references for amlogic,meson-gx-ao-secure sections
in dts files of the a1, axg, g12, gx families.


---

Patch based on top:
- add new A113X SoC https://lore.kernel.org/linux-kernel/171766521601.3911648.2220702176918701226.b4-ty@xxxxxxxxxx/T/
- Add S905L ID https://lore.kernel.org/linux-kernel/171766521524.3911648.14792995642693649032.b4-ty@xxxxxxxxxx/T/

https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux.git (v6.11/drivers)

Changes
v4 [1] -> v5:
- split patch for A113X SoC id
- fix warnings
- add dt-bindings
v3 [2] -> v4:
- rebase
- fix double free of pointers, thanks to Krzysztof Kozlowski

v2 [3] -> v3:
- rebase
- update dependency in Kconfig for MESON_GX_SOCINFO_SM
- add links to secure-monitor in soc driver sections for A1, AXG, GX, G12

v1 [4] -> v2:
- create cpu_id structure for socinfo variable
- create meson_sm_chip_id for result of sm call
- remove shared functions
- move from funcs for bit operations to C bit fields


Links:
- [1] https://lore.kernel.org/linux-kernel/20240516112849.3803674-2-adeep@xxxxxxxxx/
- [2] https://lore.kernel.org/linux-arm-kernel/ZfMJ_Z07QkwFbOuQ@bogus/T/
- [3] https://lore.kernel.org/linux-arm-kernel/20240221143654.544444-1-adeep@xxxxxxxxx/
- [4] https://lore.kernel.org/linux-arm-kernel/202311242104.RjBPI3uI-lkp@xxxxxxxxx/T/


Viacheslav Bocharov (4):
soc: amlogic: meson-gx-socinfo: move common code to header file
soc: amlogic: meson-gx-socinfo-sm: Add Amlogic secure-monitor SoC
Information driver
dt-bindings: arm: amlogic: amlogic,meson-gx-ao-secure: add
secure-monitor property
arm64: dts: meson: add dts links to secure-monitor for soc driver in
a1, axg, gx, g12

.../amlogic/amlogic,meson-gx-ao-secure.yaml | 4 +
arch/arm64/boot/dts/amlogic/meson-a1.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-axg.dtsi | 1 +
.../boot/dts/amlogic/meson-g12-common.dtsi | 1 +
arch/arm64/boot/dts/amlogic/meson-gx.dtsi | 1 +
drivers/soc/amlogic/Kconfig | 10 +
drivers/soc/amlogic/Makefile | 1 +
.../soc/amlogic/meson-gx-socinfo-internal.h | 128 ++++++++++++
drivers/soc/amlogic/meson-gx-socinfo-sm.c | 190 ++++++++++++++++++
drivers/soc/amlogic/meson-gx-socinfo.c | 140 ++-----------
10 files changed, 352 insertions(+), 125 deletions(-)
create mode 100644 drivers/soc/amlogic/meson-gx-socinfo-internal.h
create mode 100644 drivers/soc/amlogic/meson-gx-socinfo-sm.c


base-commit: 9584e2b31432a608bf29d074ac39e855eeee2207
--
2.45.2