Reserve eDMA channels 0 and 1 on the AXI eDMA controller for exclusive
use by V2X (Vehicle-to-Everything) fast hash operations.
Reviewed-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Tested-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
Signed-off-by: Joy Zou <joy.zou@nxp.com>
---
arch/arm64/boot/dts/freescale/imx95.dtsi | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
index 55e2da094c889fc7c1096d0e36f31ae118d2a982..9ac82da2ff440e08ae8378d7ff830a568d50a354 100644
--- a/arch/arm64/boot/dts/freescale/imx95.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
@@ -631,6 +631,8 @@ edma2: dma-controller@42000000 {
reg = <0x42000000 0x210000>;
#dma-cells = <3>;
dma-channels = <64>;
+ /* channels 0 and 1 reserved for V2X fast hash */
+ dma-channel-mask = <0x3>;
interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
--
2.37.1
Hi Joy,
Sorry to jump in at V3.
On Fri, Jan 30, 2026 at 05:36:27PM +0800, Joy Zou wrote:
>Reserve eDMA channels 0 and 1 on the AXI eDMA controller for exclusive
>use by V2X (Vehicle-to-Everything) fast hash operations.
>
>Reviewed-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>Tested-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>Signed-off-by: Joy Zou <joy.zou@nxp.com>
>---
> arch/arm64/boot/dts/freescale/imx95.dtsi | 2 ++
> 1 file changed, 2 insertions(+)
>
>diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
>index 55e2da094c889fc7c1096d0e36f31ae118d2a982..9ac82da2ff440e08ae8378d7ff830a568d50a354 100644
>--- a/arch/arm64/boot/dts/freescale/imx95.dtsi
>+++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
>@@ -631,6 +631,8 @@ edma2: dma-controller@42000000 {
> reg = <0x42000000 0x210000>;
> #dma-cells = <3>;
> dma-channels = <64>;
>+ /* channels 0 and 1 reserved for V2X fast hash */
>+ dma-channel-mask = <0x3>;
This is wrong. Per dt-binding,
dma-channel-mask means Bitmask of available DMA channels in ascending order,
The usage in this patch does not match the dt-binding.
Regards
Peng
On 2/1/2026 7:22 PM, Peng Fan wrote:
> Hi Joy,
>
> Sorry to jump in at V3.
>
> On Fri, Jan 30, 2026 at 05:36:27PM +0800, Joy Zou wrote:
>> Reserve eDMA channels 0 and 1 on the AXI eDMA controller for exclusive
>> use by V2X (Vehicle-to-Everything) fast hash operations.
>>
>> Reviewed-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>> Tested-by: Laurentiu Mihalcea <laurentiu.mihalcea@nxp.com>
>> Signed-off-by: Joy Zou <joy.zou@nxp.com>
>> ---
>> arch/arm64/boot/dts/freescale/imx95.dtsi | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/freescale/imx95.dtsi b/arch/arm64/boot/dts/freescale/imx95.dtsi
>> index 55e2da094c889fc7c1096d0e36f31ae118d2a982..9ac82da2ff440e08ae8378d7ff830a568d50a354 100644
>> --- a/arch/arm64/boot/dts/freescale/imx95.dtsi
>> +++ b/arch/arm64/boot/dts/freescale/imx95.dtsi
>> @@ -631,6 +631,8 @@ edma2: dma-controller@42000000 {
>> reg = <0x42000000 0x210000>;
>> #dma-cells = <3>;
>> dma-channels = <64>;
>> + /* channels 0 and 1 reserved for V2X fast hash */
>> + dma-channel-mask = <0x3>;
> This is wrong. Per dt-binding,
> dma-channel-mask means Bitmask of available DMA channels in ascending order,
> The usage in this patch does not match the dt-binding.
Ah, good catch. It would seem like our EDMA driver reverses the meaning of the "dma-channel-mask"
bits (i.e. bit x set means channel x reserved instead of channel x available).
Now, I wonder how we should be proceeding with this. According to the DT binding, our devicetree
configurations are wrong. Since there seem to be only 8 upstream instances in which this property is
being used I guess it wouldn't be so difficult to correct the driver's behavior and then correct the
devicetrees?
© 2016 - 2026 Red Hat, Inc.