* [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge
@ 2025-06-10 16:01 Laurentiu Mihalcea
2025-06-10 16:01 ` [PATCH v7 1/6] dt-bindings: bus: document " Laurentiu Mihalcea
` (7 more replies)
0 siblings, 8 replies; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-06-10 16:01 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein
Cc: Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
The AIPSTZ bridge offers some security-related configurations which can
be used to restrict master access to certain peripherals on the bridge.
Normally, this could be done from a secure environment such as ATF before
Linux boots but the configuration of AIPSTZ5 is lost each time the power
domain is powered off and then powered on. Because of this, it has to be
configured each time the power domain is turned on and before any master
tries to access the peripherals (e.g: AP, CM7, DSP, on i.MX8MP).
The child-parent relationship between the bridge and its peripherals
should guarantee that the bridge is configured before the AP attempts
to access the IPs.
Other masters should use the 'access-controllers' property to enforce
a dependency between their device and the bridge device (see the DSP,
for example).
The initial version of the series can be found at [1]. The new version
should provide better management of the device dependencies.
[1]: https://lore.kernel.org/linux-arm-kernel/20241119130726.2761726-1-daniel.baluta@nxp.com/
---
Changes in v7:
* fix merge conflit caused by addition of the reset-related properties to the
dsp node.
* align values for the macros defined in "imx8mp-aipstz.h" as per Shawn's
comment.
* encapsulate the default configuration and base address in a
"struct imx_aipstz_data" to make the driver more future-proof as per
Shawn's comment.
* link to v6: https://lore.kernel.org/lkml/20250415171919.5623-1-laurentiumihalcea111@gmail.com/
Changes in v6:
* drop the 'IMX8MP_AIPSTZ_HIFI4_T_RW_PL' macro. Its whole point was to
help with making the DTS more readable but if it makes it look worse
then there's no point in keeping it.
* use consumer ID as first AC cell and consumer type as the second cell.
Better to go with a format that more people are used to as long as it
still makes sense.
* pick up Rob's R-b
* link to v5: https://lore.kernel.org/lkml/20250408154236.49421-1-laurentiumihalcea111@gmail.com/
Changes in v5:
* merge imx-aipstz.h into imx8mp-aipstz.h. imx-aipstz.h is
currently only used in the DTS so it can't be added as a binding.
* place 'ranges' property just after 'reg' in the binding DT example
as Frank suggested.
* use the (1 << x) notation for the configuration bits. Previously,
hex values were used which didn't make it very clear that the
configuration options are bits.
* shorten the description of the bridge's AC cells.
* shorten the message of the commit introducing the bridge's binding.
* pick up some more R-b's on patches that remained untouched since V4.
* link to v4: https://lore.kernel.org/lkml/20250401154404.45932-1-laurentiumihalcea111@gmail.com/
Changes in v4:
* AIPS5 node now only contains a single memory region: that of the AC
(just like in V2). 'reg-names' property is dropped.
* AIPS5 node now uses 'ranges' property to restrict the size of the bus
(1:1 mapping)
* change the number of AC cells from 0 to 3
* add binding headers
* link to v3: https://lore.kernel.org/lkml/20250324162556.30972-1-laurentiumihalcea111@gmail.com/
Changes in v3:
* make '#address-cells' and '#size-cells' constants and equal to 1 in the
binding. The bus is 32-bit.
* add child node in the example DT snippet.
* the 'aips5' DT node now contains 2 memory regions: that of the
peripherals accessible via this bridge and that of the access controller.
* link to v2: https://lore.kernel.org/lkml/20250226165314.34205-1-laurentiumihalcea111@gmail.com/
Changes in v2:
* adress Frank Li's comments
* pick up some A-b/R-b's
* don't use "simple-bus" as the second compatible. As per Krzysztof's
comment, AIPSTZ is not a "simple-bus".
* link to v1: https://lore.kernel.org/lkml/20250221191909.31874-1-laurentiumihalcea111@gmail.com/
---
Laurentiu Mihalcea (6):
dt-bindings: bus: document the IMX AIPSTZ bridge
dt-bindings: dsp: fsl,dsp: document 'access-controllers' property
bus: add driver for IMX AIPSTZ bridge
arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
arm64: dts: imx8mp: add aipstz-related definitions
arm64: dts: imx8mp: make 'dsp' node depend on 'aips5'
.../bindings/bus/fsl,imx8mp-aipstz.yaml | 104 ++++++++++++++++++
.../devicetree/bindings/dsp/fsl,dsp.yaml | 3 +
arch/arm64/boot/dts/freescale/imx8mp-aipstz.h | 33 ++++++
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 16 ++-
drivers/bus/Kconfig | 6 +
drivers/bus/Makefile | 1 +
drivers/bus/imx-aipstz.c | 96 ++++++++++++++++
7 files changed, 255 insertions(+), 4 deletions(-)
create mode 100644 Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
create mode 100644 drivers/bus/imx-aipstz.c
--
2.34.1
^ permalink raw reply [flat|nested] 27+ messages in thread
* [PATCH v7 1/6] dt-bindings: bus: document the IMX AIPSTZ bridge
2025-06-10 16:01 [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Laurentiu Mihalcea
@ 2025-06-10 16:01 ` Laurentiu Mihalcea
2025-06-10 18:08 ` Rob Herring (Arm)
2025-06-10 16:01 ` [PATCH v7 2/6] dt-bindings: dsp: fsl,dsp: document 'access-controllers' property Laurentiu Mihalcea
` (6 subsequent siblings)
7 siblings, 1 reply; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-06-10 16:01 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein
Cc: Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Add documentation for IMX AIPSTZ bridge.
Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
---
.../bindings/bus/fsl,imx8mp-aipstz.yaml | 104 ++++++++++++++++++
1 file changed, 104 insertions(+)
create mode 100644 Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
diff --git a/Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml b/Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
new file mode 100644
index 000000000000..993293ebc4d3
--- /dev/null
+++ b/Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
@@ -0,0 +1,104 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/bus/fsl,imx8mp-aipstz.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Secure AHB to IP Slave bus (AIPSTZ) bridge
+
+description:
+ The secure AIPS bridge (AIPSTZ) acts as a bridge for AHB masters issuing
+ transactions to IP Slave peripherals. Additionally, this module offers access
+ control configurations meant to restrict which peripherals a master can
+ access.
+
+maintainers:
+ - Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
+
+properties:
+ compatible:
+ const: fsl,imx8mp-aipstz
+
+ reg:
+ maxItems: 1
+
+ power-domains:
+ maxItems: 1
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 1
+
+ "#access-controller-cells":
+ const: 3
+ description:
+ First cell - consumer ID
+ Second cell - consumer type (master or peripheral)
+ Third cell - configuration value
+
+ ranges: true
+
+# borrowed from simple-bus.yaml, no additional requirements for children
+patternProperties:
+ "@(0|[1-9a-f][0-9a-f]*)$":
+ type: object
+ additionalProperties: true
+ properties:
+ reg:
+ items:
+ minItems: 2
+ maxItems: 4
+ minItems: 1
+ maxItems: 1024
+ ranges:
+ oneOf:
+ - items:
+ minItems: 3
+ maxItems: 7
+ minItems: 1
+ maxItems: 1024
+ - $ref: /schemas/types.yaml#/definitions/flag
+ anyOf:
+ - required:
+ - reg
+ - required:
+ - ranges
+
+required:
+ - compatible
+ - reg
+ - power-domains
+ - "#address-cells"
+ - "#size-cells"
+ - "#access-controller-cells"
+ - ranges
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/imx8mp-clock.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ bus@30df0000 {
+ compatible = "fsl,imx8mp-aipstz";
+ reg = <0x30df0000 0x10000>;
+ ranges = <0x30c00000 0x30c00000 0x400000>;
+ power-domains = <&pgc_audio>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+ #access-controller-cells = <3>;
+
+ dma-controller@30e00000 {
+ compatible = "fsl,imx8mp-sdma", "fsl,imx8mq-sdma";
+ reg = <0x30e00000 0x10000>;
+ #dma-cells = <3>;
+ clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SDMA3_ROOT>,
+ <&clk IMX8MP_CLK_AUDIO_ROOT>;
+ clock-names = "ipg", "ahb";
+ interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+ fsl,sdma-ram-script-name = "imx/sdma/sdma-imx7d.bin";
+ };
+ };
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v7 2/6] dt-bindings: dsp: fsl,dsp: document 'access-controllers' property
2025-06-10 16:01 [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Laurentiu Mihalcea
2025-06-10 16:01 ` [PATCH v7 1/6] dt-bindings: bus: document " Laurentiu Mihalcea
@ 2025-06-10 16:01 ` Laurentiu Mihalcea
2025-06-10 16:01 ` [PATCH v7 3/6] bus: add driver for IMX AIPSTZ bridge Laurentiu Mihalcea
` (5 subsequent siblings)
7 siblings, 0 replies; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-06-10 16:01 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein
Cc: Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Some DSP instances may have their access to certain peripherals
conditioned by a bus access controller such as the one from the
AIPSTZ bridge.
Add the optional 'access-controllers' property, which may be used
in such cases.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
---
Documentation/devicetree/bindings/dsp/fsl,dsp.yaml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml
index b8693e4b4b0d..e610b7636a08 100644
--- a/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml
+++ b/Documentation/devicetree/bindings/dsp/fsl,dsp.yaml
@@ -91,6 +91,9 @@ properties:
- const: runstall
- const: softreset
+ access-controllers:
+ maxItems: 1
+
required:
- compatible
- reg
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v7 3/6] bus: add driver for IMX AIPSTZ bridge
2025-06-10 16:01 [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Laurentiu Mihalcea
2025-06-10 16:01 ` [PATCH v7 1/6] dt-bindings: bus: document " Laurentiu Mihalcea
2025-06-10 16:01 ` [PATCH v7 2/6] dt-bindings: dsp: fsl,dsp: document 'access-controllers' property Laurentiu Mihalcea
@ 2025-06-10 16:01 ` Laurentiu Mihalcea
2025-06-10 16:01 ` [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5' Laurentiu Mihalcea
` (4 subsequent siblings)
7 siblings, 0 replies; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-06-10 16:01 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein
Cc: Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
The secure AHB to IP Slave (AIPSTZ) bus bridge provides access control
configurations meant to restrict access to certain peripherals.
Some of the configurations include:
1) Marking masters as trusted for R/W. Based on this
(and the configuration of the accessed peripheral), the bridge
may choose to abort the R/W transactions issued by certain
masters.
2) Allowing/disallowing write accesses to peripherals.
Add driver for this IP. Since there's currently no framework for
access controllers (and since there's currently no need for having
flexibility w.r.t the configurations) all this driver does is it
applies a relaxed, "default" configuration, in which all masters
are trusted for R/W.
Note that some instances of this IP (e.g: AIPSTZ5 on i.MX8MP) may be tied
to a power domain and may lose their configuration when the domain is
powered off. This is why the configuration has to be restored when the
domain is powered on.
Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
---
drivers/bus/Kconfig | 6 +++
drivers/bus/Makefile | 1 +
drivers/bus/imx-aipstz.c | 96 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 103 insertions(+)
create mode 100644 drivers/bus/imx-aipstz.c
diff --git a/drivers/bus/Kconfig b/drivers/bus/Kconfig
index ff669a8ccad9..fe7600283e70 100644
--- a/drivers/bus/Kconfig
+++ b/drivers/bus/Kconfig
@@ -87,6 +87,12 @@ config HISILICON_LPC
Driver to enable I/O access to devices attached to the Low Pin
Count bus on the HiSilicon Hip06/7 SoC.
+config IMX_AIPSTZ
+ tristate "Support for IMX Secure AHB to IP Slave bus (AIPSTZ) bridge"
+ depends on ARCH_MXC
+ help
+ Enable support for IMX AIPSTZ bridge.
+
config IMX_WEIM
bool "Freescale EIM DRIVER"
depends on ARCH_MXC || COMPILE_TEST
diff --git a/drivers/bus/Makefile b/drivers/bus/Makefile
index cddd4984d6af..8e693fe8a03a 100644
--- a/drivers/bus/Makefile
+++ b/drivers/bus/Makefile
@@ -15,6 +15,7 @@ obj-$(CONFIG_FSL_MC_BUS) += fsl-mc/
obj-$(CONFIG_BT1_APB) += bt1-apb.o
obj-$(CONFIG_BT1_AXI) += bt1-axi.o
+obj-$(CONFIG_IMX_AIPSTZ) += imx-aipstz.o
obj-$(CONFIG_IMX_WEIM) += imx-weim.o
obj-$(CONFIG_INTEL_IXP4XX_EB) += intel-ixp4xx-eb.o
obj-$(CONFIG_MIPS_CDMM) += mips_cdmm.o
diff --git a/drivers/bus/imx-aipstz.c b/drivers/bus/imx-aipstz.c
new file mode 100644
index 000000000000..6610251f41c7
--- /dev/null
+++ b/drivers/bus/imx-aipstz.c
@@ -0,0 +1,96 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright 2025 NXP
+ */
+
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_platform.h>
+#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
+#include <linux/regmap.h>
+
+#define IMX_AIPSTZ_MPR0 0x0
+
+struct imx_aipstz_config {
+ u32 mpr0;
+};
+
+struct imx_aipstz_data {
+ void __iomem *base;
+ const struct imx_aipstz_config *default_cfg;
+};
+
+static void imx_aipstz_apply_default(struct imx_aipstz_data *data)
+{
+ writel(data->default_cfg->mpr0, data->base + IMX_AIPSTZ_MPR0);
+}
+
+static int imx_aipstz_probe(struct platform_device *pdev)
+{
+ struct imx_aipstz_data *data;
+
+ data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
+ if (!data)
+ return dev_err_probe(&pdev->dev, -ENOMEM,
+ "failed to allocate data memory\n");
+
+ data->base = devm_platform_get_and_ioremap_resource(pdev, 0, NULL);
+ if (IS_ERR(data->base))
+ return dev_err_probe(&pdev->dev, -ENOMEM,
+ "failed to get/ioremap AC memory\n");
+
+ data->default_cfg = of_device_get_match_data(&pdev->dev);
+
+ imx_aipstz_apply_default(data);
+
+ dev_set_drvdata(&pdev->dev, data);
+
+ pm_runtime_set_active(&pdev->dev);
+ devm_pm_runtime_enable(&pdev->dev);
+
+ return devm_of_platform_populate(&pdev->dev);
+}
+
+static int imx_aipstz_runtime_resume(struct device *dev)
+{
+ struct imx_aipstz_data *data = dev_get_drvdata(dev);
+
+ /* restore potentially lost configuration during domain power-off */
+ imx_aipstz_apply_default(data);
+
+ return 0;
+}
+
+static const struct dev_pm_ops imx_aipstz_pm_ops = {
+ RUNTIME_PM_OPS(NULL, imx_aipstz_runtime_resume, NULL)
+ SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, pm_runtime_force_resume)
+};
+
+/*
+ * following configuration is equivalent to:
+ * masters 0-7 => trusted for R/W + use AHB's HPROT[1] to det. privilege
+ */
+static const struct imx_aipstz_config imx8mp_aipstz_default_cfg = {
+ .mpr0 = 0x77777777,
+};
+
+static const struct of_device_id imx_aipstz_of_ids[] = {
+ { .compatible = "fsl,imx8mp-aipstz", .data = &imx8mp_aipstz_default_cfg },
+ { }
+};
+MODULE_DEVICE_TABLE(of, imx_aipstz_of_ids);
+
+static struct platform_driver imx_aipstz_of_driver = {
+ .probe = imx_aipstz_probe,
+ .driver = {
+ .name = "imx-aipstz",
+ .of_match_table = imx_aipstz_of_ids,
+ .pm = pm_ptr(&imx_aipstz_pm_ops),
+ },
+};
+module_platform_driver(imx_aipstz_of_driver);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("IMX secure AHB to IP Slave bus (AIPSTZ) bridge driver");
+MODULE_AUTHOR("Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>");
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-06-10 16:01 [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Laurentiu Mihalcea
` (2 preceding siblings ...)
2025-06-10 16:01 ` [PATCH v7 3/6] bus: add driver for IMX AIPSTZ bridge Laurentiu Mihalcea
@ 2025-06-10 16:01 ` Laurentiu Mihalcea
2025-07-02 18:49 ` Mark Brown
2025-07-11 8:38 ` Shawn Guo
2025-06-10 16:01 ` [PATCH v7 5/6] arm64: dts: imx8mp: add aipstz-related definitions Laurentiu Mihalcea
` (3 subsequent siblings)
7 siblings, 2 replies; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-06-10 16:01 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein
Cc: Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
AIPS5 is actually AIPSTZ5 as it offers some security-related
configurations. Since these configurations need to be applied before
accessing any of the peripherals on the bus, it's better to make AIPSTZ5
be their parent instead of keeping AIPS5 and adding a child node for
AIPSTZ5. Also, because of the security configurations, the address space
of the bus has to be changed to that of the configuration registers.
Finally, since AIPSTZ5 belongs to the AUDIOMIX power domain, add the
missing 'power-domains' property. The domain needs to be powered on before
attempting to configure the security-related registers.
The DT node name is not changed to avoid potential issues with DTs in
which this node is referenced.
Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 948b88cf5e9d..307e1671eccf 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -1397,12 +1397,14 @@ eqos: ethernet@30bf0000 {
};
};
- aips5: bus@30c00000 {
- compatible = "fsl,aips-bus", "simple-bus";
- reg = <0x30c00000 0x400000>;
+ aips5: bus@30df0000 {
+ compatible = "fsl,imx8mp-aipstz";
+ reg = <0x30df0000 0x10000>;
+ power-domains = <&pgc_audio>;
#address-cells = <1>;
#size-cells = <1>;
- ranges;
+ #access-controller-cells = <3>;
+ ranges = <0x30c00000 0x30c00000 0x400000>;
spba-bus@30c00000 {
compatible = "fsl,spba-bus", "simple-bus";
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v7 5/6] arm64: dts: imx8mp: add aipstz-related definitions
2025-06-10 16:01 [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Laurentiu Mihalcea
` (3 preceding siblings ...)
2025-06-10 16:01 ` [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5' Laurentiu Mihalcea
@ 2025-06-10 16:01 ` Laurentiu Mihalcea
2025-06-20 13:33 ` Daniel Baluta
2025-06-10 16:01 ` [PATCH v7 6/6] arm64: dts: imx8mp: make 'dsp' node depend on 'aips5' Laurentiu Mihalcea
` (2 subsequent siblings)
7 siblings, 1 reply; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-06-10 16:01 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein
Cc: Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Add header file with AIPSTZ-related definitions: consumer types,
master/peripheral configuration bits, and master ID definitions.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8mp-aipstz.h | 33 +++++++++++++++++++
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 1 +
2 files changed, 34 insertions(+)
create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
diff --git a/arch/arm64/boot/dts/freescale/imx8mp-aipstz.h b/arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
new file mode 100644
index 000000000000..6481c484ca37
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
+/*
+ * Copyright 2025 NXP
+ */
+
+#ifndef __IMX8MP_AIPSTZ_H
+#define __IMX8MP_AIPSTZ_H
+
+/* consumer type - master or peripheral */
+#define IMX8MP_AIPSTZ_MASTER 0x0
+#define IMX8MP_AIPSTZ_PERIPH 0x1
+
+/* master configuration options */
+#define IMX8MP_AIPSTZ_MPL (1 << 0)
+#define IMX8MP_AIPSTZ_MTW (1 << 1)
+#define IMX8MP_AIPSTZ_MTR (1 << 2)
+#define IMX8MP_AIPSTZ_MBW (1 << 3)
+
+/* peripheral configuration options */
+#define IMX8MP_AIPSTZ_TP (1 << 0)
+#define IMX8MP_AIPSTZ_WP (1 << 1)
+#define IMX8MP_AIPSTZ_SP (1 << 2)
+#define IMX8MP_AIPSTZ_BW (1 << 3)
+
+/* master ID definitions */
+#define IMX8MP_AIPSTZ_EDMA 0 /* AUDIOMIX EDMA */
+#define IMX8MP_AIPSTZ_CA53 1 /* Cortex-A53 cluster */
+#define IMX8MP_AIPSTZ_SDMA2 3 /* AUDIOMIX SDMA2 */
+#define IMX8MP_AIPSTZ_SDMA3 3 /* AUDIOMIX SDMA3 */
+#define IMX8MP_AIPSTZ_HIFI4 5 /* HIFI4 DSP */
+#define IMX8MP_AIPSTZ_CM7 6 /* Cortex-M7 */
+
+#endif /* __IMX8MP_AIPSTZ_H */
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 307e1671eccf..9b550f225856 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -13,6 +13,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/thermal/thermal.h>
+#include "imx8mp-aipstz.h"
#include "imx8mp-pinfunc.h"
/ {
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [PATCH v7 6/6] arm64: dts: imx8mp: make 'dsp' node depend on 'aips5'
2025-06-10 16:01 [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Laurentiu Mihalcea
` (4 preceding siblings ...)
2025-06-10 16:01 ` [PATCH v7 5/6] arm64: dts: imx8mp: add aipstz-related definitions Laurentiu Mihalcea
@ 2025-06-10 16:01 ` Laurentiu Mihalcea
2025-06-20 13:25 ` Daniel Baluta
2025-07-01 14:25 ` [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Shawn Guo
2025-07-03 8:11 ` Ahmad Fatoum
7 siblings, 1 reply; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-06-10 16:01 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein
Cc: Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
The DSP needs to access peripherals on AIPSTZ5 (to communicate with
the AP using AUDIOMIX MU, for instance). To do so, the security-related
registers of the bridge have to be configured before the DSP is started.
Enforce a dependency on AIPSTZ5 by adding the 'access-controllers'
property to the 'dsp' node.
Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8mp.dtsi | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
index 9b550f225856..26efea15f6b0 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
@@ -2435,6 +2435,11 @@ dsp: dsp@3b6e8000 {
firmware-name = "imx/dsp/hifi4.bin";
resets = <&audio_blk_ctrl IMX8MP_AUDIOMIX_DSP_RUNSTALL>;
reset-names = "runstall";
+ access-controllers = <&aips5
+ IMX8MP_AIPSTZ_HIFI4
+ IMX8MP_AIPSTZ_MASTER
+ (IMX8MP_AIPSTZ_MPL | IMX8MP_AIPSTZ_MTW | IMX8MP_AIPSTZ_MTR)
+ >;
status = "disabled";
};
};
--
2.34.1
^ permalink raw reply related [flat|nested] 27+ messages in thread
* Re: [PATCH v7 1/6] dt-bindings: bus: document the IMX AIPSTZ bridge
2025-06-10 16:01 ` [PATCH v7 1/6] dt-bindings: bus: document " Laurentiu Mihalcea
@ 2025-06-10 18:08 ` Rob Herring (Arm)
2025-06-11 3:45 ` Rob Herring
0 siblings, 1 reply; 27+ messages in thread
From: Rob Herring (Arm) @ 2025-06-10 18:08 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Pengutronix Kernel Team, Marco Felsch, Fabio Estevam,
Daniel Baluta, Conor Dooley, Krzysztof Kozlowski, Frank Li,
linux-kernel, Sascha Hauer, Marc Kleine-Budde, Shengjiu Wang,
devicetree, imx, Shawn Guo, linux-arm-kernel, Alexander Stein
On Tue, 10 Jun 2025 12:01:47 -0400, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
> Add documentation for IMX AIPSTZ bridge.
>
> Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> ---
> .../bindings/bus/fsl,imx8mp-aipstz.yaml | 104 ++++++++++++++++++
> 1 file changed, 104 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml: oneOf: Missing additionalProperties/unevaluatedProperties constraint
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250610160152.1113930-2-laurentiumihalcea111@gmail.com
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 1/6] dt-bindings: bus: document the IMX AIPSTZ bridge
2025-06-10 18:08 ` Rob Herring (Arm)
@ 2025-06-11 3:45 ` Rob Herring
0 siblings, 0 replies; 27+ messages in thread
From: Rob Herring @ 2025-06-11 3:45 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Pengutronix Kernel Team, Marco Felsch, Fabio Estevam,
Daniel Baluta, Conor Dooley, Krzysztof Kozlowski, Frank Li,
linux-kernel, Sascha Hauer, Marc Kleine-Budde, Shengjiu Wang,
devicetree, imx, Shawn Guo, linux-arm-kernel, Alexander Stein
On Tue, Jun 10, 2025 at 01:08:18PM -0500, Rob Herring (Arm) wrote:
>
> On Tue, 10 Jun 2025 12:01:47 -0400, Laurentiu Mihalcea wrote:
> > From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
> >
> > Add documentation for IMX AIPSTZ bridge.
> >
> > Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
> > Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
> > Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
> > Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> > ---
> > .../bindings/bus/fsl,imx8mp-aipstz.yaml | 104 ++++++++++++++++++
> > 1 file changed, 104 insertions(+)
> > create mode 100644 Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
> >
>
> My bot found errors running 'make dt_binding_check' on your patch:
>
> yamllint warnings/errors:
>
> dtschema/dtc warnings/errors:
> /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml: oneOf: Missing additionalProperties/unevaluatedProperties constraint
You can ignore this. It's an issue in the tools.
Rob
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 6/6] arm64: dts: imx8mp: make 'dsp' node depend on 'aips5'
2025-06-10 16:01 ` [PATCH v7 6/6] arm64: dts: imx8mp: make 'dsp' node depend on 'aips5' Laurentiu Mihalcea
@ 2025-06-20 13:25 ` Daniel Baluta
0 siblings, 0 replies; 27+ messages in thread
From: Daniel Baluta @ 2025-06-20 13:25 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
On Tue, Jun 10, 2025 at 7:04 PM Laurentiu Mihalcea
<laurentiumihalcea111@gmail.com> wrote:
>
> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
> The DSP needs to access peripherals on AIPSTZ5 (to communicate with
> the AP using AUDIOMIX MU, for instance). To do so, the security-related
> registers of the bridge have to be configured before the DSP is started.
> Enforce a dependency on AIPSTZ5 by adding the 'access-controllers'
> property to the 'dsp' node.
>
> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 5/6] arm64: dts: imx8mp: add aipstz-related definitions
2025-06-10 16:01 ` [PATCH v7 5/6] arm64: dts: imx8mp: add aipstz-related definitions Laurentiu Mihalcea
@ 2025-06-20 13:33 ` Daniel Baluta
0 siblings, 0 replies; 27+ messages in thread
From: Daniel Baluta @ 2025-06-20 13:33 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
On Tue, Jun 10, 2025 at 7:04 PM Laurentiu Mihalcea
<laurentiumihalcea111@gmail.com> wrote:
>
> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
> Add header file with AIPSTZ-related definitions: consumer types,
> master/peripheral configuration bits, and master ID definitions.
>
> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
> ---
> arch/arm64/boot/dts/freescale/imx8mp-aipstz.h | 33 +++++++++++++++++++
> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 1 +
> 2 files changed, 34 insertions(+)
> create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-aipstz.h b/arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
> new file mode 100644
> index 000000000000..6481c484ca37
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
> @@ -0,0 +1,33 @@
> +/* SPDX-License-Identifier: (GPL-2.0-only OR MIT) */
> +/*
> + * Copyright 2025 NXP
> + */
> +
> +#ifndef __IMX8MP_AIPSTZ_H
> +#define __IMX8MP_AIPSTZ_H
> +
> +/* consumer type - master or peripheral */
> +#define IMX8MP_AIPSTZ_MASTER 0x0
> +#define IMX8MP_AIPSTZ_PERIPH 0x1
> +
> +/* master configuration options */
> +#define IMX8MP_AIPSTZ_MPL (1 << 0)
> +#define IMX8MP_AIPSTZ_MTW (1 << 1)
> +#define IMX8MP_AIPSTZ_MTR (1 << 2)
> +#define IMX8MP_AIPSTZ_MBW (1 << 3)
> +
> +/* peripheral configuration options */
> +#define IMX8MP_AIPSTZ_TP (1 << 0)
> +#define IMX8MP_AIPSTZ_WP (1 << 1)
> +#define IMX8MP_AIPSTZ_SP (1 << 2)
> +#define IMX8MP_AIPSTZ_BW (1 << 3)
> +
> +/* master ID definitions */
> +#define IMX8MP_AIPSTZ_EDMA 0 /* AUDIOMIX EDMA */
> +#define IMX8MP_AIPSTZ_CA53 1 /* Cortex-A53 cluster */
> +#define IMX8MP_AIPSTZ_SDMA2 3 /* AUDIOMIX SDMA2 */
> +#define IMX8MP_AIPSTZ_SDMA3 3 /* AUDIOMIX SDMA3 */
> +#define IMX8MP_AIPSTZ_HIFI4 5 /* HIFI4 DSP */
> +#define IMX8MP_AIPSTZ_CM7 6 /* Cortex-M7 */
> +
> +#endif /* __IMX8MP_AIPSTZ_H */
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp.dtsi b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> index 307e1671eccf..9b550f225856 100644
> --- a/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> +++ b/arch/arm64/boot/dts/freescale/imx8mp.dtsi
> @@ -13,6 +13,7 @@
> #include <dt-bindings/interrupt-controller/arm-gic.h>
> #include <dt-bindings/thermal/thermal.h>
>
> +#include "imx8mp-aipstz.h"
> #include "imx8mp-pinfunc.h"
>
> / {
> --
> 2.34.1
>
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge
2025-06-10 16:01 [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Laurentiu Mihalcea
` (5 preceding siblings ...)
2025-06-10 16:01 ` [PATCH v7 6/6] arm64: dts: imx8mp: make 'dsp' node depend on 'aips5' Laurentiu Mihalcea
@ 2025-07-01 14:25 ` Shawn Guo
2025-07-03 8:11 ` Ahmad Fatoum
7 siblings, 0 replies; 27+ messages in thread
From: Shawn Guo @ 2025-07-01 14:25 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
On Tue, Jun 10, 2025 at 12:01:46PM -0400, Laurentiu Mihalcea wrote:
> Laurentiu Mihalcea (6):
> dt-bindings: bus: document the IMX AIPSTZ bridge
> dt-bindings: dsp: fsl,dsp: document 'access-controllers' property
> bus: add driver for IMX AIPSTZ bridge
> arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
> arm64: dts: imx8mp: add aipstz-related definitions
> arm64: dts: imx8mp: make 'dsp' node depend on 'aips5'
Applied all, thanks!
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-06-10 16:01 ` [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5' Laurentiu Mihalcea
@ 2025-07-02 18:49 ` Mark Brown
2025-07-02 19:54 ` Laurentiu Mihalcea
2025-07-11 8:38 ` Shawn Guo
1 sibling, 1 reply; 27+ messages in thread
From: Mark Brown @ 2025-07-02 18:49 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
[-- Attachment #1: Type: text/plain, Size: 20625 bytes --]
On Tue, Jun 10, 2025 at 12:01:50PM -0400, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
> AIPS5 is actually AIPSTZ5 as it offers some security-related
> configurations. Since these configurations need to be applied before
> accessing any of the peripherals on the bus, it's better to make AIPSTZ5
> be their parent instead of keeping AIPS5 and adding a child node for
> AIPSTZ5. Also, because of the security configurations, the address space
> of the bus has to be changed to that of the configuration registers.
>
> Finally, since AIPSTZ5 belongs to the AUDIOMIX power domain, add the
> missing 'power-domains' property. The domain needs to be powered on before
> attempting to configure the security-related registers.
I'm seeing failures to probe the audio devices on the i.MX8MP Verdin
system in -next which seem to bisect down to this commit, I'm seeing
separate boot failures on the EVK so haven't been able to confirm the
status there. There's no obvious logging, the dt selftest shows:
# not ok 141 /sound
# not ok 142 /sound-hdmi
Full log at:
https://lava.sirena.org.uk/scheduler/job/1530197#L5119
Full bisect log:
# bad: [50c8770a42faf8b1c7abe93e7c114337f580a97d] Add linux-next specific files for 20250702
# good: [1b2f703000c0fdae4e348162553e8c1bb9835e00] Merge branch 'for-linux-next-fixes' of https://gitlab.freedesktop.org/drm/misc/kernel.git
# good: [244bc18e5f1875401a4af87d2eae3f9376d9d720] spi: stm32: delete stray tabs in stm32h7_spi_data_idleness()
# good: [7e1c28fbf235791cb5046fafdac5bc16fe8e788d] spi: spi-pci1xxxx: enable concurrent DMA read/write across SPI transfers
# good: [b9ab3b61824190b1c6b2c59e7ba4de591f24eb92] ASoC: SDCA: Add some initial IRQ handlers
# good: [c4f2c05ab02952c9a56067aeb700ded95b183570] spi: stm32: fix pointer-to-pointer variables usage
# good: [427ceac823e58813b510e585011488f603f0d891] regulator: tps6286x-regulator: Enable REGCACHE_MAPLE
# good: [29ddce17e909779633f856ad1c2f111fbf71c0df] ASoC: codecs: Add calibration function to aw88399 chip
# good: [ac4c064f67d3cdf9118b9b09c1e3b28b6c10a7ea] spi: dt-bindings: add nxp,lpc3220-spi.yaml
# good: [08bf1663c21a3e815eda28fa242d84c945ca3b94] dmaengine: Add devm_dma_request_chan()
# good: [2555691165a0285a4617230fed859f20dcc51608] spi: atmel-quadspi: Use `devm_dma_request_chan()`
# good: [ce57bc9771411d6d27f2ca7b40396cbd7d684ba9] regulator: core: Don't use "proxy" headers
# good: [0f60ecffbfe35e12eb56c99640ba2360244b5bb3] ASoC: sdw_utils: generate combined spk components string
# good: [9a944494c299fabf3cc781798eb7c02a0bece364] spi: dt-bindings: stm32: deprecate `st,spi-midi-ns` property
# good: [3e36c822506d924894ff7de549b9377d3114c2d7] spi: spi-pci1xxxx: Add support for per-instance DMA interrupt vectors
# good: [68fbc70ece40139380380dce74059afa592846b3] ASoC: hisilicon: Standardize ASoC menu
# good: [8f9cf02c8852837923f1cdacfcc92e138513325c] spi: microchip-core-qspi: Add regular transfers
# good: [17cc308b183308bf5ada36e164284fff7eb064ba] ASoC: wm8524: enable constraints when sysclk is configured.
# good: [59566923d955b69bfb1e1163f07dff437dde8c9c] ASoC: SOF: amd: add alternate machines for ACP7.0 and ACP7.1 platforms
# good: [024f39fff6d222cedde361f7fe34d9ba4e6afb92] regulator: mtk-dvfsrc: Add support for MediaTek MT8196 DVFSRC
# good: [19cbc930c209d59a2c9828de4c7b767e9f14667e] regulator: pca9450: Support PWM mode also for pca9451a
# good: [c4ca928a6db1593802cd945f075a7e21dd0430c1] ASoC: hdac_hdmi: Rate limit logging on connection and disconnection
# good: [a48352921f0b15b1f7eff83f5b5613d6ae2350d3] ASoC: codecs: wcd939x: Add defines for major/minor version decoding
# good: [3421d46440ebe0865bec71dbd2330b4e17a425ab] HID: core: Add bus define for SoundWire bus
# good: [a1d203d390e04798ccc1c3c06019cd4411885d6d] ASoC: SOF: ipc4-pcm: Enable delay reporting for ChainDMA streams
# good: [2756b7f08ff6ca7c68c8c7dd61c8dc6895c9de34] ASoC: SOF: ipc4-pcm: Harmonize sof_ipc4_set_pipeline_state() dbg print
# good: [bb48117b79ebc39485f7306d09dc602981fe540f] ASoC: Intel: sof_sdw: Implement add_dai_link to filter HDMI PCMs
# good: [ace9b3daf2b4778358573d3698e34cb1c0fa7e14] ASoC: SOF: ipc4/Intel: Add support for library restore firmware functionality
# good: [5fc2c383125c2b4b6037e02ad8796b776b25e6d0] spi: falcon: mark falcon_sflash_xfer() as static
# good: [7f8924e8785b68c998bc1906e049bf5595865e60] ASoC: dt-bindings: cirrus,cs42xx8: add 'port' property
# good: [3e1c01d06e1f52f78fe00ef26a9cf80dbb0a3115] regulator: rpi-panel-v2: Add shutdown hook
# good: [d9f38d9824bfb1b046d2e720349d2f45959ab184] ASoC: tegra: AHUB: Remove unneeded semicolon
# good: [d03b53c9139352b744ed007bf562bd35517bacff] dt-bindings: gpio: gpio-xilinx: Mark clocks as required property
# good: [dce4bc30f42d313b4dc5832316196411b7f07ad0] spi: spi-fsl-dspi: Revert unintended dependency change in config SPI_FSL_DSPI
# good: [7b2c2f1eb3914f5214a5b2ae966d7d7bb0057582] gpio: Use dev_fwnode() where applicable across drivers
# good: [47972c1c3315672352f25c68f91dd88543541947] ASoC: Intel: Replace deprecated strcpy() with strscpy()
# good: [367864935785382bab95f5e5a691535d28f5a21b] gpio: raspberrypi-exp: use new GPIO line value setter callbacks
# good: [5eb8a0d7733d4cd32a776acf1d1aa1c7c01c8a14] ASoC: hdmi-codec: use SND_JACK_AVOUT as jack status
# good: [bb8d8ba4715cb8f997d63d90ba935f6073595df5] ASoC: mediatek: mt8183-afe-pcm: use local `dev` pointer in driver callbacks
# good: [8a5a5cecb79058b608e5562d8998123a3adb313c] ASoC: tas2781: Move the "include linux/debugfs.h" into tas2781.h
# good: [a4eb71ff98c4792f441f108910bd829da7a04092] regulator: rpi-panel-v2: Fix missing OF dependency
# good: [6cafcc53eb5fffd9b9bdfde700bb9bad21e98ed3] spi: spi-mt65xx: Add support for MT6991 Dimensity 9400 SPI IPM
# good: [7e10d7242ea8a5947878880b912ffa5806520705] ASoC: ops: dynamically allocate struct snd_ctl_elem_value
# good: [d6fa0ca959db8efd4462d7beef4bdc5568640fd0] regulator: rpi-panel-v2: Add missing GPIOLIB dependency
# good: [d49305862fdc4d9ff1b1093b4ed7d8e0cb9971b4] regulator: rpi-panel-v2: Add regulator for 7" Raspberry Pi 720x1280
# good: [6ba68e5aa9d5d15c8877a655db279fcfc0b38b04] ASoC: renesas: msiof: Convert to <linux/spi/sh_msiof.h>
# good: [1f5cdb6ab45e1c06ae0953609acbb52f8946b3e8] ASoC: codecs: Add support for Richtek RTQ9124
# good: [548d770c330cd1027549947a6ea899c56b5bc4e4] regulator: pca9450: Add support for mode operations
# good: [c459262159f39e6e6336797feb975799344b749b] spi: spi-pci1xxxx: Add support for 25MHz Clock frequency in C0
# good: [267be32b0a7b70cc777f8a46f0904c92c0521d89] ASoC: remove component->id
# good: [03b778d1994827ea5cc971dbdfbb457bbb7bfa5d] ASOC: rockchip: Use helper function devm_clk_get_enabled()
# good: [f6f914893d478b7ba08e5c375de1ced16deb5e92] ASoC: dt-bindings: tas57xx: add tas5753 compatibility
# good: [111a2c8ab462d77d1519b71b46f13ae1b46920b4] ASoC: imx-card: Use helper function for_each_child_of_node_scoped()
# good: [9a30e332c36c52e92e5316b4a012d45284dedeb5] spi: spi-fsl-dspi: Enable support for S32G platforms
# good: [c95e925daa434ee1a40a86aec6476ce588e4bd77] ASoC: Intel: avs: Add rt5640 machine board
# good: [e6e8897995a9e6028563ce36c27877e5478c8571] ASoC: qcom: sm8250: Add Fairphone 5 soundcard compatible
# good: [c8c4694ede7ed42d8d4db0e8927dea9839a3e248] regmap: kunit: Constify regmap_range_cfg array
# good: [ac209bde018fd320b79976657a44c23113181af6] ASoC: tas2781: Drop the unnecessary symbol imply
# good: [ece5d881004f041c2e1493436409dbcbea3ad5f8] ASoC: codecs: wcd939x: Drop unused 'struct wcd939x_priv' fields
# good: [b9ecde0bcf6a99a3ff08496d4ba90a385ebbfd68] ASoC: codecs: wcd939x: Add VDD_PX supply
# good: [7e17e80c3a7eb2734795f66ba946f933412d597f] Merge branch 'for-6.14/stack-order' into for-next
git bisect start '50c8770a42faf8b1c7abe93e7c114337f580a97d' '1b2f703000c0fdae4e348162553e8c1bb9835e00' '244bc18e5f1875401a4af87d2eae3f9376d9d720' '7e1c28fbf235791cb5046fafdac5bc16fe8e788d' 'b9ab3b61824190b1c6b2c59e7ba4de591f24eb92' 'c4f2c05ab02952c9a56067aeb700ded95b183570' '427ceac823e58813b510e585011488f603f0d891' '29ddce17e909779633f856ad1c2f111fbf71c0df' 'ac4c064f67d3cdf9118b9b09c1e3b28b6c10a7ea' '08bf1663c21a3e815eda28fa242d84c945ca3b94' '2555691165a0285a4617230fed859f20dcc51608' 'ce57bc9771411d6d27f2ca7b40396cbd7d684ba9' '0f60ecffbfe35e12eb56c99640ba2360244b5bb3' '9a944494c299fabf3cc781798eb7c02a0bece364' '3e36c822506d924894ff7de549b9377d3114c2d7' '68fbc70ece40139380380dce74059afa592846b3' '8f9cf02c8852837923f1cdacfcc92e138513325c' '17cc308b183308bf5ada36e164284fff7eb064ba' '59566923d955b69bfb1e1163f07dff437dde8c9c' '024f39fff6d222cedde361f7fe34d9ba4e6afb92' '19cbc930c209d59a2c9828de4c7b767e9f14667e' 'c4ca928a6db1593802cd945f075a7e21dd0430c1' 'a48352921f0b15b1f7eff83f5b5613d6ae2350d3' '3421d46440ebe0865bec71dbd2330b4e17a425ab' 'a1d203d390e04798ccc1c3c06019cd4411885d6d' '2756b7f08ff6ca7c68c8c7dd61c8dc6895c9de34' 'bb48117b79ebc39485f7306d09dc602981fe540f' 'ace9b3daf2b4778358573d3698e34cb1c0fa7e14' '5fc2c383125c2b4b6037e02ad8796b776b25e6d0' '7f8924e8785b68c998bc1906e049bf5595865e60' '3e1c01d06e1f52f78fe00ef26a9cf80dbb0a3115' 'd9f38d9824bfb1b046d2e720349d2f45959ab184' 'd03b53c9139352b744ed007bf562bd35517bacff' 'dce4bc30f42d313b4dc5832316196411b7f07ad0' '7b2c2f1eb3914f5214a5b2ae966d7d7bb0057582' '47972c1c3315672352f25c68f91dd88543541947' '367864935785382bab95f5e5a691535d28f5a21b' '5eb8a0d7733d4cd32a776acf1d1aa1c7c01c8a14' 'bb8d8ba4715cb8f997d63d90ba935f6073595df5' '8a5a5cecb79058b608e5562d8998123a3adb313c' 'a4eb71ff98c4792f441f108910bd829da7a04092' '6cafcc53eb5fffd9b9bdfde700bb9bad21e98ed3' '7e10d7242ea8a5947878880b912ffa5806520705' 'd6fa0ca959db8efd4462d7beef4bdc5568640fd0' 'd49305862fdc4d9ff1b1093b4ed7d8e0cb9971b4' '6ba68e5aa9d5d15c8877a655db279fcfc0b38b04' '1f5cdb6ab45e1c06ae0953609acbb52f8946b3e8' '548d770c330cd1027549947a6ea899c56b5bc4e4' 'c459262159f39e6e6336797feb975799344b749b' '267be32b0a7b70cc777f8a46f0904c92c0521d89' '03b778d1994827ea5cc971dbdfbb457bbb7bfa5d' 'f6f914893d478b7ba08e5c375de1ced16deb5e92' '111a2c8ab462d77d1519b71b46f13ae1b46920b4' '9a30e332c36c52e92e5316b4a012d45284dedeb5' 'c95e925daa434ee1a40a86aec6476ce588e4bd77' 'e6e8897995a9e6028563ce36c27877e5478c8571' 'c8c4694ede7ed42d8d4db0e8927dea9839a3e248' 'ac209bde018fd320b79976657a44c23113181af6' 'ece5d881004f041c2e1493436409dbcbea3ad5f8' 'b9ecde0bcf6a99a3ff08496d4ba90a385ebbfd68' '7e17e80c3a7eb2734795f66ba946f933412d597f'
# test job: [244bc18e5f1875401a4af87d2eae3f9376d9d720] https://lava.sirena.org.uk/scheduler/job/1528313
# test job: [7e1c28fbf235791cb5046fafdac5bc16fe8e788d] https://lava.sirena.org.uk/scheduler/job/1525613
# test job: [b9ab3b61824190b1c6b2c59e7ba4de591f24eb92] https://lava.sirena.org.uk/scheduler/job/1526381
# test job: [c4f2c05ab02952c9a56067aeb700ded95b183570] https://lava.sirena.org.uk/scheduler/job/1526217
# test job: [427ceac823e58813b510e585011488f603f0d891] https://lava.sirena.org.uk/scheduler/job/1525665
# test job: [29ddce17e909779633f856ad1c2f111fbf71c0df] https://lava.sirena.org.uk/scheduler/job/1523969
# test job: [ac4c064f67d3cdf9118b9b09c1e3b28b6c10a7ea] https://lava.sirena.org.uk/scheduler/job/1515918
# test job: [08bf1663c21a3e815eda28fa242d84c945ca3b94] https://lava.sirena.org.uk/scheduler/job/1517670
# test job: [2555691165a0285a4617230fed859f20dcc51608] https://lava.sirena.org.uk/scheduler/job/1515770
# test job: [ce57bc9771411d6d27f2ca7b40396cbd7d684ba9] https://lava.sirena.org.uk/scheduler/job/1515828
# test job: [0f60ecffbfe35e12eb56c99640ba2360244b5bb3] https://lava.sirena.org.uk/scheduler/job/1511601
# test job: [9a944494c299fabf3cc781798eb7c02a0bece364] https://lava.sirena.org.uk/scheduler/job/1507935
# test job: [3e36c822506d924894ff7de549b9377d3114c2d7] https://lava.sirena.org.uk/scheduler/job/1506321
# test job: [68fbc70ece40139380380dce74059afa592846b3] https://lava.sirena.org.uk/scheduler/job/1504170
# test job: [8f9cf02c8852837923f1cdacfcc92e138513325c] https://lava.sirena.org.uk/scheduler/job/1502886
# test job: [17cc308b183308bf5ada36e164284fff7eb064ba] https://lava.sirena.org.uk/scheduler/job/1501534
# test job: [59566923d955b69bfb1e1163f07dff437dde8c9c] https://lava.sirena.org.uk/scheduler/job/1499635
# test job: [024f39fff6d222cedde361f7fe34d9ba4e6afb92] https://lava.sirena.org.uk/scheduler/job/1499710
# test job: [19cbc930c209d59a2c9828de4c7b767e9f14667e] https://lava.sirena.org.uk/scheduler/job/1497296
# test job: [c4ca928a6db1593802cd945f075a7e21dd0430c1] https://lava.sirena.org.uk/scheduler/job/1496248
# test job: [a48352921f0b15b1f7eff83f5b5613d6ae2350d3] https://lava.sirena.org.uk/scheduler/job/1497384
# test job: [3421d46440ebe0865bec71dbd2330b4e17a425ab] https://lava.sirena.org.uk/scheduler/job/1493073
# test job: [a1d203d390e04798ccc1c3c06019cd4411885d6d] https://lava.sirena.org.uk/scheduler/job/1491514
# test job: [2756b7f08ff6ca7c68c8c7dd61c8dc6895c9de34] https://lava.sirena.org.uk/scheduler/job/1489211
# test job: [bb48117b79ebc39485f7306d09dc602981fe540f] https://lava.sirena.org.uk/scheduler/job/1489341
# test job: [ace9b3daf2b4778358573d3698e34cb1c0fa7e14] https://lava.sirena.org.uk/scheduler/job/1489277
# test job: [5fc2c383125c2b4b6037e02ad8796b776b25e6d0] https://lava.sirena.org.uk/scheduler/job/1486889
# test job: [7f8924e8785b68c998bc1906e049bf5595865e60] https://lava.sirena.org.uk/scheduler/job/1486900
# test job: [3e1c01d06e1f52f78fe00ef26a9cf80dbb0a3115] https://lava.sirena.org.uk/scheduler/job/1481707
# test job: [d9f38d9824bfb1b046d2e720349d2f45959ab184] https://lava.sirena.org.uk/scheduler/job/1481625
# test job: [d03b53c9139352b744ed007bf562bd35517bacff] https://lava.sirena.org.uk/scheduler/job/1487618
# test job: [dce4bc30f42d313b4dc5832316196411b7f07ad0] https://lava.sirena.org.uk/scheduler/job/1479479
# test job: [7b2c2f1eb3914f5214a5b2ae966d7d7bb0057582] https://lava.sirena.org.uk/scheduler/job/1487181
# test job: [47972c1c3315672352f25c68f91dd88543541947] https://lava.sirena.org.uk/scheduler/job/1479563
# test job: [367864935785382bab95f5e5a691535d28f5a21b] https://lava.sirena.org.uk/scheduler/job/1487335
# test job: [5eb8a0d7733d4cd32a776acf1d1aa1c7c01c8a14] https://lava.sirena.org.uk/scheduler/job/1474455
# test job: [bb8d8ba4715cb8f997d63d90ba935f6073595df5] https://lava.sirena.org.uk/scheduler/job/1472036
# test job: [8a5a5cecb79058b608e5562d8998123a3adb313c] https://lava.sirena.org.uk/scheduler/job/1471845
# test job: [a4eb71ff98c4792f441f108910bd829da7a04092] https://lava.sirena.org.uk/scheduler/job/1469016
# test job: [6cafcc53eb5fffd9b9bdfde700bb9bad21e98ed3] https://lava.sirena.org.uk/scheduler/job/1468917
# test job: [7e10d7242ea8a5947878880b912ffa5806520705] https://lava.sirena.org.uk/scheduler/job/1466037
# test job: [d6fa0ca959db8efd4462d7beef4bdc5568640fd0] https://lava.sirena.org.uk/scheduler/job/1464678
# test job: [d49305862fdc4d9ff1b1093b4ed7d8e0cb9971b4] https://lava.sirena.org.uk/scheduler/job/1463041
# test job: [6ba68e5aa9d5d15c8877a655db279fcfc0b38b04] https://lava.sirena.org.uk/scheduler/job/1463332
# test job: [1f5cdb6ab45e1c06ae0953609acbb52f8946b3e8] https://lava.sirena.org.uk/scheduler/job/1462965
# test job: [548d770c330cd1027549947a6ea899c56b5bc4e4] https://lava.sirena.org.uk/scheduler/job/1460084
# test job: [c459262159f39e6e6336797feb975799344b749b] https://lava.sirena.org.uk/scheduler/job/1460986
# test job: [267be32b0a7b70cc777f8a46f0904c92c0521d89] https://lava.sirena.org.uk/scheduler/job/1460406
# test job: [03b778d1994827ea5cc971dbdfbb457bbb7bfa5d] https://lava.sirena.org.uk/scheduler/job/1461854
# test job: [f6f914893d478b7ba08e5c375de1ced16deb5e92] https://lava.sirena.org.uk/scheduler/job/1461456
# test job: [111a2c8ab462d77d1519b71b46f13ae1b46920b4] https://lava.sirena.org.uk/scheduler/job/1460852
# test job: [9a30e332c36c52e92e5316b4a012d45284dedeb5] https://lava.sirena.org.uk/scheduler/job/1460564
# test job: [c95e925daa434ee1a40a86aec6476ce588e4bd77] https://lava.sirena.org.uk/scheduler/job/1460123
# test job: [e6e8897995a9e6028563ce36c27877e5478c8571] https://lava.sirena.org.uk/scheduler/job/1461762
# test job: [c8c4694ede7ed42d8d4db0e8927dea9839a3e248] https://lava.sirena.org.uk/scheduler/job/1461307
# test job: [ac209bde018fd320b79976657a44c23113181af6] https://lava.sirena.org.uk/scheduler/job/1461943
# test job: [ece5d881004f041c2e1493436409dbcbea3ad5f8] https://lava.sirena.org.uk/scheduler/job/1461681
# test job: [b9ecde0bcf6a99a3ff08496d4ba90a385ebbfd68] https://lava.sirena.org.uk/scheduler/job/1461059
# test job: [7e17e80c3a7eb2734795f66ba946f933412d597f] https://lava.sirena.org.uk/scheduler/job/1128660
# test job: [50c8770a42faf8b1c7abe93e7c114337f580a97d] https://lava.sirena.org.uk/scheduler/job/1530173
# bad: [50c8770a42faf8b1c7abe93e7c114337f580a97d] Add linux-next specific files for 20250702
git bisect bad 50c8770a42faf8b1c7abe93e7c114337f580a97d
# test job: [108a6ad0bec80613356c69b210bb5ad8b08576e2] https://lava.sirena.org.uk/scheduler/job/1530443
# bad: [108a6ad0bec80613356c69b210bb5ad8b08576e2] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
git bisect bad 108a6ad0bec80613356c69b210bb5ad8b08576e2
# test job: [b31f8592766c1a408198963b77bfabb2434764ab] https://lava.sirena.org.uk/scheduler/job/1530739
# bad: [b31f8592766c1a408198963b77bfabb2434764ab] Merge branch 'fs-next' of linux-next
git bisect bad b31f8592766c1a408198963b77bfabb2434764ab
# test job: [bb8977f5b28d88e74c23e4af218618c657fd4df4] https://lava.sirena.org.uk/scheduler/job/1530814
# bad: [bb8977f5b28d88e74c23e4af218618c657fd4df4] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git
git bisect bad bb8977f5b28d88e74c23e4af218618c657fd4df4
# test job: [d3a07f21b8a377f4eaf8da88b128d222a1b817c7] https://lava.sirena.org.uk/scheduler/job/1530844
# good: [d3a07f21b8a377f4eaf8da88b128d222a1b817c7] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc.git
git bisect good d3a07f21b8a377f4eaf8da88b128d222a1b817c7
# test job: [c26527f37efce3a5187699582bee0bb85799ece4] https://lava.sirena.org.uk/scheduler/job/1530888
# bad: [c26527f37efce3a5187699582bee0bb85799ece4] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap.git
git bisect bad c26527f37efce3a5187699582bee0bb85799ece4
# test job: [26f285671a0fd77933d5a18faefbc7dacd6e5e28] https://lava.sirena.org.uk/scheduler/job/1530936
# bad: [26f285671a0fd77933d5a18faefbc7dacd6e5e28] Merge branch 'imx/defconfig' into for-next
git bisect bad 26f285671a0fd77933d5a18faefbc7dacd6e5e28
# test job: [b6fb05efd90e0f0bfc3e3d2557b6aa1c65fcbfa6] https://lava.sirena.org.uk/scheduler/job/1531005
# good: [b6fb05efd90e0f0bfc3e3d2557b6aa1c65fcbfa6] arm64: dts: imx93-11x11-evk: reduce the driving strength of net RXC/TXC
git bisect good b6fb05efd90e0f0bfc3e3d2557b6aa1c65fcbfa6
# test job: [a1a5a0ab552393b033eb1e757676fb90b0a4f80b] https://lava.sirena.org.uk/scheduler/job/1531030
# good: [a1a5a0ab552393b033eb1e757676fb90b0a4f80b] Merge branch 'imx/bindings' into for-next
git bisect good a1a5a0ab552393b033eb1e757676fb90b0a4f80b
# test job: [b63ae4182b6afa89ad0f7cff9c932328d887b936] https://lava.sirena.org.uk/scheduler/job/1531088
# good: [b63ae4182b6afa89ad0f7cff9c932328d887b936] ARM: dts: imx28: add pwm7 muxing options
git bisect good b63ae4182b6afa89ad0f7cff9c932328d887b936
# test job: [14d0e2aaf99df35a346aa0645c9e12fb2b7c99b9] https://lava.sirena.org.uk/scheduler/job/1531180
# bad: [14d0e2aaf99df35a346aa0645c9e12fb2b7c99b9] Merge branch 'imx/dt64' into for-next
git bisect bad 14d0e2aaf99df35a346aa0645c9e12fb2b7c99b9
# test job: [47773c360293b787a1fe5da5250724abbb4a9e64] https://lava.sirena.org.uk/scheduler/job/1531335
# bad: [47773c360293b787a1fe5da5250724abbb4a9e64] arm64: dts: imx8mp: add aipstz-related definitions
git bisect bad 47773c360293b787a1fe5da5250724abbb4a9e64
# test job: [da472d13b1dcf5ffd0e0d151fa83c7059af67d63] https://lava.sirena.org.uk/scheduler/job/1531424
# bad: [da472d13b1dcf5ffd0e0d151fa83c7059af67d63] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
git bisect bad da472d13b1dcf5ffd0e0d151fa83c7059af67d63
# test job: [fc0d2840a00d75931777e6dba55fcce40f34a24a] https://lava.sirena.org.uk/scheduler/job/1531508
# good: [fc0d2840a00d75931777e6dba55fcce40f34a24a] arm64: dts: imx93-11x11-evk: remove the duplicated pinctrl_lpi2c3 node
git bisect good fc0d2840a00d75931777e6dba55fcce40f34a24a
# first bad commit: [da472d13b1dcf5ffd0e0d151fa83c7059af67d63] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-07-02 18:49 ` Mark Brown
@ 2025-07-02 19:54 ` Laurentiu Mihalcea
2025-07-03 10:56 ` Mark Brown
` (2 more replies)
0 siblings, 3 replies; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-07-02 19:54 UTC (permalink / raw)
To: Mark Brown
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
On 7/2/2025 9:49 PM, Mark Brown wrote:
> On Tue, Jun 10, 2025 at 12:01:50PM -0400, Laurentiu Mihalcea wrote:
>> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>>
>> AIPS5 is actually AIPSTZ5 as it offers some security-related
>> configurations. Since these configurations need to be applied before
>> accessing any of the peripherals on the bus, it's better to make AIPSTZ5
>> be their parent instead of keeping AIPS5 and adding a child node for
>> AIPSTZ5. Also, because of the security configurations, the address space
>> of the bus has to be changed to that of the configuration registers.
>>
>> Finally, since AIPSTZ5 belongs to the AUDIOMIX power domain, add the
>> missing 'power-domains' property. The domain needs to be powered on before
>> attempting to configure the security-related registers.
> I'm seeing failures to probe the audio devices on the i.MX8MP Verdin
> system in -next which seem to bisect down to this commit, I'm seeing
> separate boot failures on the EVK so haven't been able to confirm the
> status there. There's no obvious logging, the dt selftest shows:
>
> # not ok 141 /sound
> # not ok 142 /sound-hdmi
>
> Full log at:
>
> https://lava.sirena.org.uk/scheduler/job/1530197#L5119
Hi Mark,
Thanks for catching this!
After browsing through the provided logs it would seem like no device under the
AIPSTZ bus gets probed. Right now, my guess is that the AIPSTZ driver is not being
compiled since CONFIG_IMX_AIPSTZ might be set to 'n'.
Which defconfig is the CI using? Is it arch/arm64/configs/defconfig?
Thanks,
Laurentiu
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge
2025-06-10 16:01 [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Laurentiu Mihalcea
` (6 preceding siblings ...)
2025-07-01 14:25 ` [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Shawn Guo
@ 2025-07-03 8:11 ` Ahmad Fatoum
2025-07-03 8:51 ` Laurentiu Mihalcea
7 siblings, 1 reply; 27+ messages in thread
From: Ahmad Fatoum @ 2025-07-03 8:11 UTC (permalink / raw)
To: Laurentiu Mihalcea, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Shawn Guo, Sascha Hauer, Fabio Estevam,
Daniel Baluta, Shengjiu Wang, Frank Li, Marco Felsch,
Marc Kleine-Budde, Alexander Stein
Cc: devicetree, linux-kernel, linux-arm-kernel,
Pengutronix Kernel Team, imx
Hello Laurentiu,
On 10.06.25 18:01, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
> The AIPSTZ bridge offers some security-related configurations which can
> be used to restrict master access to certain peripherals on the bridge.
>
> Normally, this could be done from a secure environment such as ATF before
> Linux boots but the configuration of AIPSTZ5 is lost each time the power
> domain is powered off and then powered on. Because of this, it has to be
> configured each time the power domain is turned on and before any master
> tries to access the peripherals (e.g: AP, CM7, DSP, on i.MX8MP).
Sorry if this has been asked before, but I hoped the cover letter or patch
3/6 would explain if it were.
What is the default configuration for the AIPSTZ before this series?
I assume the SAIs under AIPS5 can be accessed by SDMA already, so why was
changing the AIPSTZ settings needed for the DSP to work?
Thanks,
Ahmad
>
> The child-parent relationship between the bridge and its peripherals
> should guarantee that the bridge is configured before the AP attempts
> to access the IPs.
>
> Other masters should use the 'access-controllers' property to enforce
> a dependency between their device and the bridge device (see the DSP,
> for example).
>
> The initial version of the series can be found at [1]. The new version
> should provide better management of the device dependencies.
>
> [1]: https://lore.kernel.org/linux-arm-kernel/20241119130726.2761726-1-daniel.baluta@nxp.com/
>
> ---
> Changes in v7:
> * fix merge conflit caused by addition of the reset-related properties to the
> dsp node.
> * align values for the macros defined in "imx8mp-aipstz.h" as per Shawn's
> comment.
> * encapsulate the default configuration and base address in a
> "struct imx_aipstz_data" to make the driver more future-proof as per
> Shawn's comment.
> * link to v6: https://lore.kernel.org/lkml/20250415171919.5623-1-laurentiumihalcea111@gmail.com/
>
> Changes in v6:
> * drop the 'IMX8MP_AIPSTZ_HIFI4_T_RW_PL' macro. Its whole point was to
> help with making the DTS more readable but if it makes it look worse
> then there's no point in keeping it.
> * use consumer ID as first AC cell and consumer type as the second cell.
> Better to go with a format that more people are used to as long as it
> still makes sense.
> * pick up Rob's R-b
> * link to v5: https://lore.kernel.org/lkml/20250408154236.49421-1-laurentiumihalcea111@gmail.com/
>
> Changes in v5:
> * merge imx-aipstz.h into imx8mp-aipstz.h. imx-aipstz.h is
> currently only used in the DTS so it can't be added as a binding.
> * place 'ranges' property just after 'reg' in the binding DT example
> as Frank suggested.
> * use the (1 << x) notation for the configuration bits. Previously,
> hex values were used which didn't make it very clear that the
> configuration options are bits.
> * shorten the description of the bridge's AC cells.
> * shorten the message of the commit introducing the bridge's binding.
> * pick up some more R-b's on patches that remained untouched since V4.
> * link to v4: https://lore.kernel.org/lkml/20250401154404.45932-1-laurentiumihalcea111@gmail.com/
>
> Changes in v4:
> * AIPS5 node now only contains a single memory region: that of the AC
> (just like in V2). 'reg-names' property is dropped.
> * AIPS5 node now uses 'ranges' property to restrict the size of the bus
> (1:1 mapping)
> * change the number of AC cells from 0 to 3
> * add binding headers
> * link to v3: https://lore.kernel.org/lkml/20250324162556.30972-1-laurentiumihalcea111@gmail.com/
>
> Changes in v3:
> * make '#address-cells' and '#size-cells' constants and equal to 1 in the
> binding. The bus is 32-bit.
> * add child node in the example DT snippet.
> * the 'aips5' DT node now contains 2 memory regions: that of the
> peripherals accessible via this bridge and that of the access controller.
> * link to v2: https://lore.kernel.org/lkml/20250226165314.34205-1-laurentiumihalcea111@gmail.com/
>
> Changes in v2:
> * adress Frank Li's comments
> * pick up some A-b/R-b's
> * don't use "simple-bus" as the second compatible. As per Krzysztof's
> comment, AIPSTZ is not a "simple-bus".
> * link to v1: https://lore.kernel.org/lkml/20250221191909.31874-1-laurentiumihalcea111@gmail.com/
> ---
>
> Laurentiu Mihalcea (6):
> dt-bindings: bus: document the IMX AIPSTZ bridge
> dt-bindings: dsp: fsl,dsp: document 'access-controllers' property
> bus: add driver for IMX AIPSTZ bridge
> arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
> arm64: dts: imx8mp: add aipstz-related definitions
> arm64: dts: imx8mp: make 'dsp' node depend on 'aips5'
>
> .../bindings/bus/fsl,imx8mp-aipstz.yaml | 104 ++++++++++++++++++
> .../devicetree/bindings/dsp/fsl,dsp.yaml | 3 +
> arch/arm64/boot/dts/freescale/imx8mp-aipstz.h | 33 ++++++
> arch/arm64/boot/dts/freescale/imx8mp.dtsi | 16 ++-
> drivers/bus/Kconfig | 6 +
> drivers/bus/Makefile | 1 +
> drivers/bus/imx-aipstz.c | 96 ++++++++++++++++
> 7 files changed, 255 insertions(+), 4 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/bus/fsl,imx8mp-aipstz.yaml
> create mode 100644 arch/arm64/boot/dts/freescale/imx8mp-aipstz.h
> create mode 100644 drivers/bus/imx-aipstz.c
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge
2025-07-03 8:11 ` Ahmad Fatoum
@ 2025-07-03 8:51 ` Laurentiu Mihalcea
2025-07-03 9:56 ` Ahmad Fatoum
0 siblings, 1 reply; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-07-03 8:51 UTC (permalink / raw)
To: Ahmad Fatoum, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Shawn Guo, Sascha Hauer, Fabio Estevam, Daniel Baluta,
Shengjiu Wang, Frank Li, Marco Felsch, Marc Kleine-Budde,
Alexander Stein
Cc: devicetree, linux-kernel, linux-arm-kernel,
Pengutronix Kernel Team, imx
On 7/3/2025 11:11 AM, Ahmad Fatoum wrote:
> Hello Laurentiu,
>
> On 10.06.25 18:01, Laurentiu Mihalcea wrote:
>> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>>
>> The AIPSTZ bridge offers some security-related configurations which can
>> be used to restrict master access to certain peripherals on the bridge.
>>
>> Normally, this could be done from a secure environment such as ATF before
>> Linux boots but the configuration of AIPSTZ5 is lost each time the power
>> domain is powered off and then powered on. Because of this, it has to be
>> configured each time the power domain is turned on and before any master
>> tries to access the peripherals (e.g: AP, CM7, DSP, on i.MX8MP).
> Sorry if this has been asked before, but I hoped the cover letter or patch
> 3/6 would explain if it were.
>
> What is the default configuration for the AIPSTZ before this series?
the default configuration is the reset configuration since AIPSTZ registers go
back to their reset values during domain power cycling.
> I assume the SAIs under AIPS5 can be accessed by SDMA already, so why was
> changing the AIPSTZ settings needed for the DSP to work?
AFAIK SDMA transactions to peripherals don't go through AIPS5. They use SPBA, which
is why SDMA works even w/o this series. As for the DSP: transactions to peripherals go
through AIPS5. With the reset configuration, the DSP is not allowed to access said peripherals,
which is why this series was needed.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge
2025-07-03 8:51 ` Laurentiu Mihalcea
@ 2025-07-03 9:56 ` Ahmad Fatoum
0 siblings, 0 replies; 27+ messages in thread
From: Ahmad Fatoum @ 2025-07-03 9:56 UTC (permalink / raw)
To: Laurentiu Mihalcea, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Shawn Guo, Sascha Hauer, Fabio Estevam,
Daniel Baluta, Shengjiu Wang, Frank Li, Marco Felsch,
Marc Kleine-Budde, Alexander Stein
Cc: devicetree, linux-kernel, linux-arm-kernel,
Pengutronix Kernel Team, imx
Hello Laurentiu,
On 7/3/25 10:51, Laurentiu Mihalcea wrote:
>
>
> On 7/3/2025 11:11 AM, Ahmad Fatoum wrote:
>> Hello Laurentiu,
>>
>> On 10.06.25 18:01, Laurentiu Mihalcea wrote:
>>> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>>>
>>> The AIPSTZ bridge offers some security-related configurations which can
>>> be used to restrict master access to certain peripherals on the bridge.
>>>
>>> Normally, this could be done from a secure environment such as ATF before
>>> Linux boots but the configuration of AIPSTZ5 is lost each time the power
>>> domain is powered off and then powered on. Because of this, it has to be
>>> configured each time the power domain is turned on and before any master
>>> tries to access the peripherals (e.g: AP, CM7, DSP, on i.MX8MP).
>> Sorry if this has been asked before, but I hoped the cover letter or patch
>> 3/6 would explain if it were.
>>
>> What is the default configuration for the AIPSTZ before this series?
>
> the default configuration is the reset configuration since AIPSTZ registers go
> back to their reset values during domain power cycling.
>
>> I assume the SAIs under AIPS5 can be accessed by SDMA already, so why was
>> changing the AIPSTZ settings needed for the DSP to work?
>
> AFAIK SDMA transactions to peripherals don't go through AIPS5. They use SPBA, which
> is why SDMA works even w/o this series. As for the DSP: transactions to peripherals go
> through AIPS5. With the reset configuration, the DSP is not allowed to access said peripherals,
> which is why this series was needed.
I see. Thanks for tackling this issue and your explanation.
Cheers,
Ahmad
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-07-02 19:54 ` Laurentiu Mihalcea
@ 2025-07-03 10:56 ` Mark Brown
2025-07-03 15:25 ` Mark Brown
2025-07-07 5:11 ` Alexander Stein
2 siblings, 0 replies; 27+ messages in thread
From: Mark Brown @ 2025-07-03 10:56 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
[-- Attachment #1: Type: text/plain, Size: 812 bytes --]
On Wed, Jul 02, 2025 at 10:54:09PM +0300, Laurentiu Mihalcea wrote:
> On 7/2/2025 9:49 PM, Mark Brown wrote:
> >> attempting to configure the security-related registers.
> > I'm seeing failures to probe the audio devices on the i.MX8MP Verdin
> > system in -next which seem to bisect down to this commit, I'm seeing
> > separate boot failures on the EVK so haven't been able to confirm the
> > status there. There's no obvious logging, the dt selftest shows:
> After browsing through the provided logs it would seem like no device under the
> AIPSTZ bus gets probed. Right now, my guess is that the AIPSTZ driver is not being
> compiled since CONFIG_IMX_AIPSTZ might be set to 'n'.
>
> Which defconfig is the CI using? Is it arch/arm64/configs/defconfig?
Yes, it's covering defconfig here.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-07-02 19:54 ` Laurentiu Mihalcea
2025-07-03 10:56 ` Mark Brown
@ 2025-07-03 15:25 ` Mark Brown
2025-07-05 14:41 ` Laurentiu Mihalcea
2025-07-07 5:11 ` Alexander Stein
2 siblings, 1 reply; 27+ messages in thread
From: Mark Brown @ 2025-07-03 15:25 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
[-- Attachment #1: Type: text/plain, Size: 4223 bytes --]
On Wed, Jul 02, 2025 at 10:54:09PM +0300, Laurentiu Mihalcea wrote:
> On 7/2/2025 9:49 PM, Mark Brown wrote:
> > On Tue, Jun 10, 2025 at 12:01:50PM -0400, Laurentiu Mihalcea wrote:
> >> Finally, since AIPSTZ5 belongs to the AUDIOMIX power domain, add the
> >> missing 'power-domains' property. The domain needs to be powered on before
> >> attempting to configure the security-related registers.
> > I'm seeing failures to probe the audio devices on the i.MX8MP Verdin
> > system in -next which seem to bisect down to this commit, I'm seeing
> > separate boot failures on the EVK so haven't been able to confirm the
> > status there. There's no obvious logging, the dt selftest shows:
> Thanks for catching this!
> After browsing through the provided logs it would seem like no device under the
> AIPSTZ bus gets probed. Right now, my guess is that the AIPSTZ driver is not being
> compiled since CONFIG_IMX_AIPSTZ might be set to 'n'.
> Which defconfig is the CI using? Is it arch/arm64/configs/defconfig?
This also appears to be the source of the boot issues I mentioned on the
EVK, affecting ramdisk only boots:
https://lava.sirena.org.uk/scheduler/job/1533032
as well as NFS. The board seems to get to userspace but then not
respond to serial input, it looks like it's hit something while loading
modules and locked up but ICBW.
Bisect log:
git bisect start
# status: waiting for both good and bad commits
# good: [bb2c96d4df623d7eb1ecc683fb621dc908d0ecd9] Merge branch 'for-linux-next-fixes' of https://gitlab.freedesktop.org/drm/misc/kernel.git
git bisect good bb2c96d4df623d7eb1ecc683fb621dc908d0ecd9
# status: waiting for bad commit, 1 good commit known
# bad: [8d6c58332c7a8ba025fcfa76888b6c37dbce9633] Add linux-next specific files for 20250703
git bisect bad 8d6c58332c7a8ba025fcfa76888b6c37dbce9633
# bad: [a24f6fb0720d1298e25046c2afd417008986f11d] Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux.git
git bisect bad a24f6fb0720d1298e25046c2afd417008986f11d
# bad: [1f96a201bce97b8b175753cdc9df4124f485e47c] Merge branch 'fs-next' of linux-next
git bisect bad 1f96a201bce97b8b175753cdc9df4124f485e47c
# bad: [99a5bbadf92feeec49a213682272731a6c968c9b] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git
git bisect bad 99a5bbadf92feeec49a213682272731a6c968c9b
# good: [b6341cd003a394801ece1c80de80b37cceac4644] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc.git
git bisect good b6341cd003a394801ece1c80de80b37cceac4644
# bad: [370374e41e0d1c3e1c82cee8dd041cb929b87a57] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap.git
git bisect bad 370374e41e0d1c3e1c82cee8dd041cb929b87a57
# good: [bd71a1d70117432ada29669dee349be3e9e817af] Merge branch 'for-next' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl.git
git bisect good bd71a1d70117432ada29669dee349be3e9e817af
# bad: [c78e0a2da7b1a1c61449945f51358b852088a130] arm64: dts: imx8mp: make 'dsp' node depend on 'aips5'
git bisect bad c78e0a2da7b1a1c61449945f51358b852088a130
# good: [b4ff842d24c058e9518a188de2f5153956582f52] arm64: dts: imx943-evk: add bt-sco sound card support
git bisect good b4ff842d24c058e9518a188de2f5153956582f52
# good: [900dd54b8b6281b65612c2df87ddaf64f7989d4d] arm64: dts: imx95-19x19-evk: add GPIO reset for ethphy0
git bisect good 900dd54b8b6281b65612c2df87ddaf64f7989d4d
# good: [3ee18578689c6d5831d8455e138bd298977698ff] arm64: dts: imx93-qsb/evk: add usdhc3 and lpuart5
git bisect good 3ee18578689c6d5831d8455e138bd298977698ff
# good: [fc0d2840a00d75931777e6dba55fcce40f34a24a] arm64: dts: imx93-11x11-evk: remove the duplicated pinctrl_lpi2c3 node
git bisect good fc0d2840a00d75931777e6dba55fcce40f34a24a
# bad: [47773c360293b787a1fe5da5250724abbb4a9e64] arm64: dts: imx8mp: add aipstz-related definitions
git bisect bad 47773c360293b787a1fe5da5250724abbb4a9e64
# bad: [da472d13b1dcf5ffd0e0d151fa83c7059af67d63] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
git bisect bad da472d13b1dcf5ffd0e0d151fa83c7059af67d63
# first bad commit: [da472d13b1dcf5ffd0e0d151fa83c7059af67d63] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-07-03 15:25 ` Mark Brown
@ 2025-07-05 14:41 ` Laurentiu Mihalcea
2025-07-07 10:51 ` Mark Brown
0 siblings, 1 reply; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-07-05 14:41 UTC (permalink / raw)
To: Mark Brown
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
On 7/3/2025 6:25 PM, Mark Brown wrote:
> On Wed, Jul 02, 2025 at 10:54:09PM +0300, Laurentiu Mihalcea wrote:
>> On 7/2/2025 9:49 PM, Mark Brown wrote:
>>> On Tue, Jun 10, 2025 at 12:01:50PM -0400, Laurentiu Mihalcea wrote:
>>>> Finally, since AIPSTZ5 belongs to the AUDIOMIX power domain, add the
>>>> missing 'power-domains' property. The domain needs to be powered on before
>>>> attempting to configure the security-related registers.
>>> I'm seeing failures to probe the audio devices on the i.MX8MP Verdin
>>> system in -next which seem to bisect down to this commit, I'm seeing
>>> separate boot failures on the EVK so haven't been able to confirm the
>>> status there. There's no obvious logging, the dt selftest shows:
>> Thanks for catching this!
>> After browsing through the provided logs it would seem like no device under the
>> AIPSTZ bus gets probed. Right now, my guess is that the AIPSTZ driver is not being
>> compiled since CONFIG_IMX_AIPSTZ might be set to 'n'.
>> Which defconfig is the CI using? Is it arch/arm64/configs/defconfig?
> This also appears to be the source of the boot issues I mentioned on the
> EVK, affecting ramdisk only boots:
>
> https://lava.sirena.org.uk/scheduler/job/1533032
>
> as well as NFS. The board seems to get to userspace but then not
> respond to serial input, it looks like it's hit something while loading
> modules and locked up but ICBW.
OK, this is very odd. I've tried the ramdisk boot using the files from the CI job: Image,
modules, CPIO and my own flash.bin (u-boot and ATF hashes match those shown in
the CI job) on an EVK board and so far no hang.
What I've noticed though is that the bridge does indeed not get probed. So, for now,
I think I'm going to submit a patch to enable the driver config in the defconfig so
we can get the Verdin failures out of the way.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-07-02 19:54 ` Laurentiu Mihalcea
2025-07-03 10:56 ` Mark Brown
2025-07-03 15:25 ` Mark Brown
@ 2025-07-07 5:11 ` Alexander Stein
2025-07-07 23:49 ` Laurentiu Mihalcea
2 siblings, 1 reply; 27+ messages in thread
From: Alexander Stein @ 2025-07-07 5:11 UTC (permalink / raw)
To: Mark Brown, linux-arm-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel, Laurentiu Mihalcea
Hi,
Am Mittwoch, 2. Juli 2025, 21:54:09 CEST schrieb Laurentiu Mihalcea:
> On 7/2/2025 9:49 PM, Mark Brown wrote:
> > On Tue, Jun 10, 2025 at 12:01:50PM -0400, Laurentiu Mihalcea wrote:
> >> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
> >>
> >> AIPS5 is actually AIPSTZ5 as it offers some security-related
> >> configurations. Since these configurations need to be applied before
> >> accessing any of the peripherals on the bus, it's better to make AIPSTZ5
> >> be their parent instead of keeping AIPS5 and adding a child node for
> >> AIPSTZ5. Also, because of the security configurations, the address space
> >> of the bus has to be changed to that of the configuration registers.
> >>
> >> Finally, since AIPSTZ5 belongs to the AUDIOMIX power domain, add the
> >> missing 'power-domains' property. The domain needs to be powered on before
> >> attempting to configure the security-related registers.
> > I'm seeing failures to probe the audio devices on the i.MX8MP Verdin
> > system in -next which seem to bisect down to this commit, I'm seeing
> > separate boot failures on the EVK so haven't been able to confirm the
> > status there. There's no obvious logging, the dt selftest shows:
> >
> > # not ok 141 /sound
> > # not ok 142 /sound-hdmi
> >
> > Full log at:
> >
> > https://lava.sirena.org.uk/scheduler/job/1530197#L5119
>
> Hi Mark,
>
> Thanks for catching this!
>
> After browsing through the provided logs it would seem like no device under the
> AIPSTZ bus gets probed. Right now, my guess is that the AIPSTZ driver is not being
> compiled since CONFIG_IMX_AIPSTZ might be set to 'n'.
>
> Which defconfig is the CI using? Is it arch/arm64/configs/defconfig?
I'm also seeing audio problems starting with this commit. In my case I get
the following error:
fsl-asoc-card sound: failed to find CPU DAI device
fsl-asoc-card sound: probe with driver fsl-asoc-card failed with error -22
DAI device is sai5 aka /soc@0/bus@30df0000/spba-bus@30c00000/sai@30c50000.
It turns out that the module snd_soc_fsl_sai is not even autoloaded. Loading
manually doesn't have any effect. So I assume starting from this commit
the subnodes (at least sai5) are not even populated.
Reverting this commit fixes my setup.
I've set CONFIG_IMX_AIPSTZ to both 'y' or 'm' and doesn't change anything.
Best regards,
Alexander
--
TQ-Systems GmbH | Mühlstraße 2, Gut Delling | 82229 Seefeld, Germany
Amtsgericht München, HRB 105018
Geschäftsführer: Detlef Schneider, Rüdiger Stahl, Stefan Schneider
http://www.tq-group.com/
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-07-05 14:41 ` Laurentiu Mihalcea
@ 2025-07-07 10:51 ` Mark Brown
0 siblings, 0 replies; 27+ messages in thread
From: Mark Brown @ 2025-07-07 10:51 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1190 bytes --]
On Sat, Jul 05, 2025 at 05:41:17PM +0300, Laurentiu Mihalcea wrote:
> On 7/3/2025 6:25 PM, Mark Brown wrote:
> > This also appears to be the source of the boot issues I mentioned on the
> > EVK, affecting ramdisk only boots:
> > https://lava.sirena.org.uk/scheduler/job/1533032
> > as well as NFS. The board seems to get to userspace but then not
> > respond to serial input, it looks like it's hit something while loading
> > modules and locked up but ICBW.
> OK, this is very odd. I've tried the ramdisk boot using the files from the CI job: Image,
> modules, CPIO and my own flash.bin (u-boot and ATF hashes match those shown in
> the CI job) on an EVK board and so far no hang.
It may not actually be hung, it may just be hitting long timeouts in
userspace (I notice that all the boots with a NFS root are doing module
autoloading, and the ramdisk ones have tried to bring up the network).
> What I've noticed though is that the bridge does indeed not get probed. So, for now,
> I think I'm going to submit a patch to enable the driver config in the defconfig so
> we can get the Verdin failures out of the way.
If the driver is now required then it does need to be enabled.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-07-07 5:11 ` Alexander Stein
@ 2025-07-07 23:49 ` Laurentiu Mihalcea
0 siblings, 0 replies; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-07-07 23:49 UTC (permalink / raw)
To: Alexander Stein, Mark Brown, linux-arm-kernel
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde,
Pengutronix Kernel Team, devicetree, imx, linux-kernel
On 7/7/2025 8:11 AM, Alexander Stein wrote:
> Hi,
>
> Am Mittwoch, 2. Juli 2025, 21:54:09 CEST schrieb Laurentiu Mihalcea:
>> On 7/2/2025 9:49 PM, Mark Brown wrote:
>>> On Tue, Jun 10, 2025 at 12:01:50PM -0400, Laurentiu Mihalcea wrote:
>>>> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>>>>
>>>> AIPS5 is actually AIPSTZ5 as it offers some security-related
>>>> configurations. Since these configurations need to be applied before
>>>> accessing any of the peripherals on the bus, it's better to make AIPSTZ5
>>>> be their parent instead of keeping AIPS5 and adding a child node for
>>>> AIPSTZ5. Also, because of the security configurations, the address space
>>>> of the bus has to be changed to that of the configuration registers.
>>>>
>>>> Finally, since AIPSTZ5 belongs to the AUDIOMIX power domain, add the
>>>> missing 'power-domains' property. The domain needs to be powered on before
>>>> attempting to configure the security-related registers.
>>> I'm seeing failures to probe the audio devices on the i.MX8MP Verdin
>>> system in -next which seem to bisect down to this commit, I'm seeing
>>> separate boot failures on the EVK so haven't been able to confirm the
>>> status there. There's no obvious logging, the dt selftest shows:
>>>
>>> # not ok 141 /sound
>>> # not ok 142 /sound-hdmi
>>>
>>> Full log at:
>>>
>>> https://lava.sirena.org.uk/scheduler/job/1530197#L5119
>> Hi Mark,
>>
>> Thanks for catching this!
>>
>> After browsing through the provided logs it would seem like no device under the
>> AIPSTZ bus gets probed. Right now, my guess is that the AIPSTZ driver is not being
>> compiled since CONFIG_IMX_AIPSTZ might be set to 'n'.
>>
>> Which defconfig is the CI using? Is it arch/arm64/configs/defconfig?
> I'm also seeing audio problems starting with this commit. In my case I get
> the following error:
> fsl-asoc-card sound: failed to find CPU DAI device
> fsl-asoc-card sound: probe with driver fsl-asoc-card failed with error -22
>
> DAI device is sai5 aka /soc@0/bus@30df0000/spba-bus@30c00000/sai@30c50000.
> It turns out that the module snd_soc_fsl_sai is not even autoloaded. Loading
> manually doesn't have any effect. So I assume starting from this commit
> the subnodes (at least sai5) are not even populated.
> Reverting this commit fixes my setup.
> I've set CONFIG_IMX_AIPSTZ to both 'y' or 'm' and doesn't change anything.
ACK. Would you mind giving [1] a try and letting me know if that fixes the issue for you?
[1]: https://lore.kernel.org/lkml/20250707234628.164151-2-laurentiumihalcea111@gmail.com/
Thanks!
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-06-10 16:01 ` [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5' Laurentiu Mihalcea
2025-07-02 18:49 ` Mark Brown
@ 2025-07-11 8:38 ` Shawn Guo
2025-08-01 12:36 ` Laurentiu Mihalcea
1 sibling, 1 reply; 27+ messages in thread
From: Shawn Guo @ 2025-07-11 8:38 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
On Tue, Jun 10, 2025 at 12:01:50PM -0400, Laurentiu Mihalcea wrote:
> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>
> AIPS5 is actually AIPSTZ5 as it offers some security-related
> configurations. Since these configurations need to be applied before
> accessing any of the peripherals on the bus, it's better to make AIPSTZ5
> be their parent instead of keeping AIPS5 and adding a child node for
> AIPSTZ5. Also, because of the security configurations, the address space
> of the bus has to be changed to that of the configuration registers.
>
> Finally, since AIPSTZ5 belongs to the AUDIOMIX power domain, add the
> missing 'power-domains' property. The domain needs to be powered on before
> attempting to configure the security-related registers.
>
> The DT node name is not changed to avoid potential issues with DTs in
> which this node is referenced.
>
> Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
> Reviewed-by: Frank Li <Frank.Li@nxp.com>
Patch 4 ~ 6 dropped from my tree due to the regression.
Shawn
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-07-11 8:38 ` Shawn Guo
@ 2025-08-01 12:36 ` Laurentiu Mihalcea
2025-08-01 12:55 ` Mark Brown
0 siblings, 1 reply; 27+ messages in thread
From: Laurentiu Mihalcea @ 2025-08-01 12:36 UTC (permalink / raw)
To: Shawn Guo
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel, Mark Brown
On 7/11/2025 11:38 AM, Shawn Guo wrote:
> On Tue, Jun 10, 2025 at 12:01:50PM -0400, Laurentiu Mihalcea wrote:
>> From: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>>
>> AIPS5 is actually AIPSTZ5 as it offers some security-related
>> configurations. Since these configurations need to be applied before
>> accessing any of the peripherals on the bus, it's better to make AIPSTZ5
>> be their parent instead of keeping AIPS5 and adding a child node for
>> AIPSTZ5. Also, because of the security configurations, the address space
>> of the bus has to be changed to that of the configuration registers.
>>
>> Finally, since AIPSTZ5 belongs to the AUDIOMIX power domain, add the
>> missing 'power-domains' property. The domain needs to be powered on before
>> attempting to configure the security-related registers.
>>
>> The DT node name is not changed to avoid potential issues with DTs in
>> which this node is referenced.
>>
>> Co-developed-by: Daniel Baluta <daniel.baluta@nxp.com>
>> Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
>> Signed-off-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>> Reviewed-by: Frank Li <Frank.Li@nxp.com>
Hi Shawn and Mark,
> Patch 4 ~ 6 dropped from my tree due to the regression.
How should we proceed with this? The fix for the issue reported by Alexander
Stein was already picked up by Shawn via [1]. We also have [2], which is meant
to fix the Verdin issues pointed out by Mark. However, I'm still unsure about the
EVK issues reported by Mark, which I was not able to reproduce on my local setup.
[1]: https://lore.kernel.org/lkml/20250707234628.164151-2-laurentiumihalcea111@gmail.com/
[2]: https://lore.kernel.org/lkml/20250707234628.164151-3-laurentiumihalcea111@gmail.com/
Thanks,
Laurentiu
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-08-01 12:36 ` Laurentiu Mihalcea
@ 2025-08-01 12:55 ` Mark Brown
2025-08-20 2:47 ` Shawn Guo
0 siblings, 1 reply; 27+ messages in thread
From: Mark Brown @ 2025-08-01 12:55 UTC (permalink / raw)
To: Laurentiu Mihalcea
Cc: Shawn Guo, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Shawn Guo, Sascha Hauer, Fabio Estevam, Daniel Baluta,
Shengjiu Wang, Frank Li, Marco Felsch, Marc Kleine-Budde,
Alexander Stein, Pengutronix Kernel Team, devicetree, imx,
linux-arm-kernel, linux-kernel
[-- Attachment #1: Type: text/plain, Size: 446 bytes --]
On Fri, Aug 01, 2025 at 03:36:01PM +0300, Laurentiu Mihalcea wrote:
> How should we proceed with this? The fix for the issue reported by Alexander
> Stein was already picked up by Shawn via [1]. We also have [2], which is meant
> to fix the Verdin issues pointed out by Mark. However, I'm still unsure about the
> EVK issues reported by Mark, which I was not able to reproduce on my local setup.
FWIW the EVK issues are still present in -next.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5'
2025-08-01 12:55 ` Mark Brown
@ 2025-08-20 2:47 ` Shawn Guo
0 siblings, 0 replies; 27+ messages in thread
From: Shawn Guo @ 2025-08-20 2:47 UTC (permalink / raw)
To: Mark Brown, Laurentiu Mihalcea
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Shawn Guo,
Sascha Hauer, Fabio Estevam, Daniel Baluta, Shengjiu Wang,
Frank Li, Marco Felsch, Marc Kleine-Budde, Alexander Stein,
Pengutronix Kernel Team, devicetree, imx, linux-arm-kernel,
linux-kernel
On Fri, Aug 01, 2025 at 01:55:47PM +0100, Mark Brown wrote:
> On Fri, Aug 01, 2025 at 03:36:01PM +0300, Laurentiu Mihalcea wrote:
>
> > How should we proceed with this? The fix for the issue reported by Alexander
> > Stein was already picked up by Shawn via [1]. We also have [2], which is meant
> > to fix the Verdin issues pointed out by Mark. However, I'm still unsure about the
> > EVK issues reported by Mark, which I was not able to reproduce on my local setup.
>
> FWIW the EVK issues are still present in -next.
It sounds like that EVK issue is a separate one and has nothing to do
with this patch set.
Laurentiu,
I suggest you resend the dropped patches with defconfig fix in a
new series.
Shawn
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2025-08-20 3:19 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-10 16:01 [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Laurentiu Mihalcea
2025-06-10 16:01 ` [PATCH v7 1/6] dt-bindings: bus: document " Laurentiu Mihalcea
2025-06-10 18:08 ` Rob Herring (Arm)
2025-06-11 3:45 ` Rob Herring
2025-06-10 16:01 ` [PATCH v7 2/6] dt-bindings: dsp: fsl,dsp: document 'access-controllers' property Laurentiu Mihalcea
2025-06-10 16:01 ` [PATCH v7 3/6] bus: add driver for IMX AIPSTZ bridge Laurentiu Mihalcea
2025-06-10 16:01 ` [PATCH v7 4/6] arm64: dts: imx8mp: convert 'aips5' to 'aipstz5' Laurentiu Mihalcea
2025-07-02 18:49 ` Mark Brown
2025-07-02 19:54 ` Laurentiu Mihalcea
2025-07-03 10:56 ` Mark Brown
2025-07-03 15:25 ` Mark Brown
2025-07-05 14:41 ` Laurentiu Mihalcea
2025-07-07 10:51 ` Mark Brown
2025-07-07 5:11 ` Alexander Stein
2025-07-07 23:49 ` Laurentiu Mihalcea
2025-07-11 8:38 ` Shawn Guo
2025-08-01 12:36 ` Laurentiu Mihalcea
2025-08-01 12:55 ` Mark Brown
2025-08-20 2:47 ` Shawn Guo
2025-06-10 16:01 ` [PATCH v7 5/6] arm64: dts: imx8mp: add aipstz-related definitions Laurentiu Mihalcea
2025-06-20 13:33 ` Daniel Baluta
2025-06-10 16:01 ` [PATCH v7 6/6] arm64: dts: imx8mp: make 'dsp' node depend on 'aips5' Laurentiu Mihalcea
2025-06-20 13:25 ` Daniel Baluta
2025-07-01 14:25 ` [PATCH v7 0/6] imx8mp: add support for the IMX AIPSTZ bridge Shawn Guo
2025-07-03 8:11 ` Ahmad Fatoum
2025-07-03 8:51 ` Laurentiu Mihalcea
2025-07-03 9:56 ` Ahmad Fatoum
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).