mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Cc: lst@pengutronix.de, ukl@pengutronix.de
Subject: [PATCH 00/10] Add new feature controller framework
Date: Thu, 18 Aug 2022 07:19:45 +0200	[thread overview]
Message-ID: <20220818051955.2088238-1-a.fatoum@pengutronix.de> (raw)

The i.MX8MM exists in a Lite variant with no VPUs as well as Solo and
Dual variants with one or two cores respectively instead of the default
four. For i.MX6, we had a manual fixup taking care of deleting the
excess CPUs, but for e.g. the i.MX8MP, we have fuses for the M7, VPUs, CAN,
CAN-FD, ISPs, NPU, ... etc. Describing all that in the DT is overly verbose
as we need to take care not to rely on specific device node names that
should be disabled. There has been an upstream attempt to get a binding
for U-Boot to act on:

  https://lore.kernel.org/all/20220324042024.26813-1-peng.fan@oss.nxp.com/

This was refused by the DT maintainer, because any solution to this
problem should also be flexible enough to cover the case of partitioning
devices between the secure and normal world.

There's a patch series upstream to describe a domain-controller binding
that allows a hypervisor to partition devices into domains. With the
naming generalized, this fits nicely the use case of gating devices
behind specific features:

https://lore.kernel.org/all/3ca7cd75-4b62-2380-adb0-646bbeb647a2@pengutronix.de/

This series does that. See the first two commit messages for details.
We use a barebox, prefix as the naming isn't set in stone, but the intention
is to drop the prefix and potentially rename once an upstream binding is
approved.

Ahmad Fatoum (10):
  driver: add feature controller framework
  driver: consult feature controller prior to device probe
  driver: featctrl: fixup kernel device tree
  dt-bindings: add i.MX8M feature controller bindings
  soc: imx: add i.MX8M feature controller driver
  nvmem: import Linux nvmem_cell_read_variable_le_u32
  nvmem: ocotp: add i.MX8M[MN] feature controller support
  ARM: dts: i.MX8MN: describe feature controller
  RFC: soc: imx: imx8m-featctrl: add i.MX8M[MN] stand-alone driver
  RFC: ARM: dts: i.MX8MM: describe standlone feature controller

 arch/arm/dts/imx8mm.dtsi             |  61 ++++++++++
 arch/arm/dts/imx8mn.dtsi             |  32 ++++++
 drivers/base/Kconfig                 |   3 +
 drivers/base/Makefile                |   1 +
 drivers/base/driver.c                |   9 ++
 drivers/base/featctrl.c              | 160 +++++++++++++++++++++++++++
 drivers/nvmem/core.c                 |  33 ++++++
 drivers/nvmem/ocotp.c                |  62 +++++++++--
 drivers/of/Kconfig                   |  12 ++
 drivers/soc/imx/Kconfig              |   6 +
 drivers/soc/imx/Makefile             |   1 +
 drivers/soc/imx/imx8m-featctrl.c     | 101 +++++++++++++++++
 include/dt-bindings/features/imx8m.h |  14 +++
 include/featctrl.h                   |  29 +++++
 include/linux/nvmem-consumer.h       |   9 ++
 include/soc/imx8m/featctrl.h         |  25 +++++
 16 files changed, 550 insertions(+), 8 deletions(-)
 create mode 100644 drivers/base/featctrl.c
 create mode 100644 drivers/soc/imx/imx8m-featctrl.c
 create mode 100644 include/dt-bindings/features/imx8m.h
 create mode 100644 include/featctrl.h
 create mode 100644 include/soc/imx8m/featctrl.h

-- 
2.30.2




             reply	other threads:[~2022-08-18  5:21 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-18  5:19 Ahmad Fatoum [this message]
2022-08-18  5:19 ` [PATCH 01/10] driver: add " Ahmad Fatoum
2022-08-18  5:19 ` [PATCH 02/10] driver: consult feature controller prior to device probe Ahmad Fatoum
2022-08-18  8:19   ` Philipp Zabel
2022-08-18  8:34     ` Ahmad Fatoum
2022-08-18  5:19 ` [PATCH 03/10] driver: featctrl: fixup kernel device tree Ahmad Fatoum
2022-08-18  5:19 ` [PATCH 04/10] dt-bindings: add i.MX8M feature controller bindings Ahmad Fatoum
2022-08-18  5:19 ` [PATCH 05/10] soc: imx: add i.MX8M feature controller driver Ahmad Fatoum
2022-08-18  5:19 ` [PATCH 06/10] nvmem: import Linux nvmem_cell_read_variable_le_u32 Ahmad Fatoum
2022-08-18  5:19 ` [PATCH 07/10] nvmem: ocotp: add i.MX8M[MN] feature controller support Ahmad Fatoum
2022-08-18  5:19 ` [PATCH 08/10] ARM: dts: i.MX8MN: describe feature controller Ahmad Fatoum
2022-08-18  5:19 ` [PATCH 09/10] RFC: soc: imx: imx8m-featctrl: add i.MX8M[MN] stand-alone driver Ahmad Fatoum
2022-08-18  5:19 ` [PATCH 10/10] RFC: ARM: dts: i.MX8MM: describe standlone feature controller Ahmad Fatoum
2022-08-30  7:32 ` [PATCH 00/10] Add new feature controller framework Sascha Hauer
2022-08-30  7:38   ` Ahmad Fatoum
2022-08-31  6:06     ` Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220818051955.2088238-1-a.fatoum@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=lst@pengutronix.de \
    --cc=ukl@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox