[PATCH v6 0/3] Add Amlogic secure monitor driver

Carlo Caione carlo at caione.org
Thu Jun 2 07:16:01 PDT 2016


From: Carlo Caione <carlo at endlessm.com>

In the Amlogic SoCs the secure monitor calls are used for a lot of reasons:
interact with the NVMEM (efuses), check the reboot reason, set USB boot, ...

This driver defines a generic interface towards the secure monitor that can be
used by more specialized drivers to interact with the secure monitor itself
without worrying about bounce buffers managing.

Changelog:

v6:
  * Added comments
  * Fix checking u32 < 0
  * s/-ENODEV/-EINVAL/ in the probe function
  * Use WARN_ON()

v5:
  * Moved IDs from DT to header file
  * Made read/write bounce buffers not mandatory
  * Introduced helper meson_sm_map_shmem()

v4:
  * Changed patches order
  * Removed now useless PATCH 2/4
  * Changed compatible to be SoC-specific
  * In the DT now we use SoC-agnostic IDs for the SMC functions. These IDs are
    traslated into SoC specific function IDs inside the driver
  * Added error checking on meson_sm_call() to retrieve the base address
  * Improved printing on errors

v3:
  * Moved driver to drivers/firmware
  * Added EXPORT_SYMBOL macros
  * Changed '_' in '-'
  * Introduced 'struct meson_sm_firmware' and 'meson_sm_get_fw()' to be used by
    drivers using the secure-monitor to enforce probe ordering

v2:
  * All the SMC function identifiers are now in a SoC-specific header file to
    be included by the DTS files so the SMC commands are now defined in the DT
    instead to be hardcoded into the driver
  * Patchset is no longer an RFC
  * Better error management and boundary checking
  * s/unsigned int/u32/
  * SMC call not only on CPU 0
  * Fix memory leaking
  * s/amlogic/meson/ in the directory names

Carlo Caione (3):
  firmware: Amlogic: Add secure monitor driver
  documentation: Add secure monitor binding documentation
  ARM64: dts: amlogic: gxbb: Enable secure monitor

 .../bindings/firmware/meson/meson_sm.txt           |  29 +++
 arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi        |   8 +
 drivers/firmware/Kconfig                           |   1 +
 drivers/firmware/Makefile                          |   1 +
 drivers/firmware/meson/Kconfig                     |   8 +
 drivers/firmware/meson/Makefile                    |   1 +
 drivers/firmware/meson/meson_sm.c                  | 283 +++++++++++++++++++++
 include/linux/firmware/meson/meson_sm.h            |  32 +++
 8 files changed, 363 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/firmware/meson/meson_sm.txt
 create mode 100644 drivers/firmware/meson/Kconfig
 create mode 100644 drivers/firmware/meson/Makefile
 create mode 100644 drivers/firmware/meson/meson_sm.c
 create mode 100644 include/linux/firmware/meson/meson_sm.h

-- 
2.7.4




More information about the linux-arm-kernel mailing list