[PATCH 06/13] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP

Guillaume Tucker guillaume.tucker at collabora.com
Fri Aug 14 12:33:31 EDT 2020


On 14/08/2020 16:26, Suman Anna wrote:
> On 8/14/20 9:32 AM, Guillaume Tucker wrote:
>> On 12/08/2020 06:31, Guillaume Tucker wrote:
>>> On 10/07/2020 00:19, Suman Anna wrote:
>>>> The CMA reserved memory nodes have been added for the IPU and DSP
>>>> remoteproc devices on all the OMAP4-based Panda boards. These nodes
>>>> are assigned to the respective rproc device nodes, and both the
>>>> IPU and DSP remote processors are enabled for all these boards.
>>>>
>>>> The current CMA pools and sizes are defined statically for each device.
>>>> The starting addresses are fixed to meet current dependencies on the
>>>> remote processor firmwares, and will go away when the remote-side
>>>> code has been improved to gather this information runtime during
>>>> its initialization.
>>>>
>>>> An associated pair of the rproc node and its CMA node can be disabled
>>>> later on if there is no use-case defined to use that remote processor.
>>>>
>>>> Signed-off-by: Suman Anna <s-anna at ti.com>
>>>> ---
>>>>  arch/arm/boot/dts/omap4-panda-common.dtsi | 30 +++++++++++++++++++++++
>>>>  1 file changed, 30 insertions(+)
>>>>
>>>> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>> index 55ea8b6189af..ef79028fc95f 100644
>>>> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>>> @@ -12,6 +12,26 @@ memory at 80000000 {
>>>>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>>>>  	};
>>>>  
>>>> +	reserved-memory {
>>>> +		#address-cells = <1>;
>>>> +		#size-cells = <1>;
>>>> +		ranges;
>>>> +
>>>> +		dsp_memory_region: dsp-memory at 98000000 {
>>>> +			compatible = "shared-dma-pool";
>>>> +			reg = <0x98000000 0x800000>;
>>>> +			reusable;
>>>> +			status = "okay";
>>>> +		};
>>>> +
>>>> +		ipu_memory_region: ipu-memory at 98800000 {
>>>> +			compatible = "shared-dma-pool";
>>>> +			reg = <0x98800000 0x7000000>;
>>>> +			reusable;
>>>> +			status = "okay";
>>>> +		};
>>>> +	};
>>>> +
>>>>  	chosen {
>>>>  		stdout-path = &uart3;
>>>>  	};
>>>> @@ -571,3 +591,13 @@ hdmi_out: endpoint {
>>>>  		};
>>>>  	};
>>>>  };
>>>> +
>>>> +&dsp {
>>>> +	status = "okay";
>>>> +	memory-region = <&dsp_memory_region>;
>>>> +};
>>>> +
>>>> +&ipu {
>>>> +	status = "okay";
>>>> +	memory-region = <&ipu_memory_region>;
>>>> +};
>>>>
>>>
>>> This appears to be causing some BUG alert messages:
>>>
>>>   BUG: Bad page state in process swapper/0  pfn:9c801
>>>
>>> as reported on kernelci.org:
>>>
>>>   https://kernelci.org/test/case/id/5f326c6661360154c452c1c9/
>>>
>>> I've run a bisection and it landed on this commit.  If you fix it
>>> with another patch, please add:
>>>
>>>   Reported-by: "kernelci.org bot" <bot at kernelci.org>
>>
>>
>> This was bisected again automatically on mainline, see the report
>> below.  Is anyone available to take a look, or could the patch be
>> reverted?
> 
> Thanks Guillaume for the report. I will take a look at this today. It is strange
> that the bisect is pointing to this commit as reserving a CMA pool and assigning
> it to a device should be fairly normal usage. Is the issue seen only on OMAP4
> Pandaboard and not any of the other OMAP5 uEVM or DRA7xx/AM57xx EVMS?

Thanks for taking a look.

In the extended OMAP family, aside from the Panda only the
BeagleBone Black and BeagleBoard xM are being tested on
kernelci.org and they don't show this problem:

  https://kernelci.org/soc/omap2/job/next/kernel/next-20200814/plan/baseline/

Thanks,
Guillaume

>> On 14/08/2020 15:22, KernelCI bot wrote:
>>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>> * This automated bisection report was sent to you on the basis  *
>>> * that you may be involved with the breaking commit it has      *
>>> * found.  No manual investigation has been done to verify it,   *
>>> * and the root cause of the problem may be somewhere else.      *
>>> *                                                               *
>>> * If you do send a fix, please include this trailer:            *
>>> *   Reported-by: "kernelci.org bot" <bot at kernelci.org>          *
>>> *                                                               *
>>> * Hope this helps!                                              *
>>> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>>
>>> mainline/master bisection: baseline.dmesg.alert on panda
>>>
>>> Summary:
>>>   Start:      a1d21081a60d Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
>>>   Plain log:  https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.txt
>>>   HTML log:   https://storage.kernelci.org/mainline/master/v5.8-13249-ga1d21081a60d/arm/multi_v7_defconfig+CONFIG_SMP=n/gcc-8/lab-collabora/baseline-omap4-panda.html
>>>   Result:     b4778e787fe9 ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>
>>> Checks:
>>>   revert:     PASS
>>>   verify:     PASS
>>>
>>> Parameters:
>>>   Tree:       mainline
>>>   URL:        https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>>   Branch:     master
>>>   Target:     panda
>>>   CPU arch:   arm
>>>   Lab:        lab-collabora
>>>   Compiler:   gcc-8
>>>   Config:     multi_v7_defconfig+CONFIG_SMP=n
>>>   Test case:  baseline.dmesg.alert
>>>
>>> Breaking commit found:
>>>
>>> -------------------------------------------------------------------------------
>>> commit b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
>>> Author: Suman Anna <s-anna at ti.com>
>>> Date:   Thu Jul 9 18:19:47 2020 -0500
>>>
>>>     ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>>     
>>>     The CMA reserved memory nodes have been added for the IPU and DSP
>>>     remoteproc devices on all the OMAP4-based Panda boards. These nodes
>>>     are assigned to the respective rproc device nodes, and both the
>>>     IPU and DSP remote processors are enabled for all these boards.
>>>     
>>>     The current CMA pools and sizes are defined statically for each device.
>>>     The starting addresses are fixed to meet current dependencies on the
>>>     remote processor firmwares, and will go away when the remote-side
>>>     code has been improved to gather this information runtime during
>>>     its initialization.
>>>     
>>>     An associated pair of the rproc node and its CMA node can be disabled
>>>     later on if there is no use-case defined to use that remote processor.
>>>     
>>>     Signed-off-by: Suman Anna <s-anna at ti.com>
>>>     Signed-off-by: Tony Lindgren <tony at atomide.com>
>>>
>>> diff --git a/arch/arm/boot/dts/omap4-panda-common.dtsi b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>> index 55ea8b6189af..ef79028fc95f 100644
>>> --- a/arch/arm/boot/dts/omap4-panda-common.dtsi
>>> +++ b/arch/arm/boot/dts/omap4-panda-common.dtsi
>>> @@ -12,6 +12,26 @@
>>>  		reg = <0x80000000 0x40000000>; /* 1 GB */
>>>  	};
>>>  
>>> +	reserved-memory {
>>> +		#address-cells = <1>;
>>> +		#size-cells = <1>;
>>> +		ranges;
>>> +
>>> +		dsp_memory_region: dsp-memory at 98000000 {
>>> +			compatible = "shared-dma-pool";
>>> +			reg = <0x98000000 0x800000>;
>>> +			reusable;
>>> +			status = "okay";
>>> +		};
>>> +
>>> +		ipu_memory_region: ipu-memory at 98800000 {
>>> +			compatible = "shared-dma-pool";
>>> +			reg = <0x98800000 0x7000000>;
>>> +			reusable;
>>> +			status = "okay";
>>> +		};
>>> +	};
>>> +
>>>  	chosen {
>>>  		stdout-path = &uart3;
>>>  	};
>>> @@ -571,3 +591,13 @@
>>>  		};
>>>  	};
>>>  };
>>> +
>>> +&dsp {
>>> +	status = "okay";
>>> +	memory-region = <&dsp_memory_region>;
>>> +};
>>> +
>>> +&ipu {
>>> +	status = "okay";
>>> +	memory-region = <&ipu_memory_region>;
>>> +};
>>> -------------------------------------------------------------------------------
>>>
>>>
>>> Git bisection log:
>>>
>>> -------------------------------------------------------------------------------
>>> git bisect start
>>> # good: [e4cbce4d131753eca271d9d67f58c6377f27ad21] Merge tag 'sched-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
>>> git bisect good e4cbce4d131753eca271d9d67f58c6377f27ad21
>>> # bad: [a1d21081a60dfb7fddf4a38b66d9cef603b317a9] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
>>> git bisect bad a1d21081a60dfb7fddf4a38b66d9cef603b317a9
>>> # bad: [47ec5303d73ea344e84f46660fff693c57641386] Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
>>> git bisect bad 47ec5303d73ea344e84f46660fff693c57641386
>>> # bad: [e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d] Merge tag 'leds-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/pavel/linux-leds
>>> git bisect bad e4a7b2dc35d9582c253cf5e6d6c3605aabc7284d
>>> # bad: [74858abbb1032222f922487fd1a24513bbed80f9] Merge tag 'cap-checkpoint-restore-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux
>>> git bisect bad 74858abbb1032222f922487fd1a24513bbed80f9
>>> # bad: [2f3fbfdaf77f3ac417d0511fac221f76af79f6fc] Merge tag 'arm-dt-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
>>> git bisect bad 2f3fbfdaf77f3ac417d0511fac221f76af79f6fc
>>> # bad: [c6e2e454baef6080ef89c2b6488e708d5fa0f052] Merge tag 'qcom-arm64-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/dt
>>> git bisect bad c6e2e454baef6080ef89c2b6488e708d5fa0f052
>>> # bad: [3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d] Merge tag 'tegra-for-5.9-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/dt
>>> git bisect bad 3502e079c6bcff95f5c34eecb5c1d9ad1379ae0d
>>> # bad: [39a85f6d91a1a827985ce44a346a99f68167d0ee] Merge tag 'v5.8-next-dts64' of git://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/dt
>>> git bisect bad 39a85f6d91a1a827985ce44a346a99f68167d0ee
>>> # good: [dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681] Merge tag 'uniphier-dt64-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-uniphier into arm/dt
>>> git bisect good dfe2a4cf8e2f4c1f53877aa6cb38eda102a14681
>>> # bad: [75f66813e081d2bd718d931ee50334c12a9e4492] Replace HTTP links with HTTPS ones: OMAP DEVICE TREE SUPPORT
>>> git bisect bad 75f66813e081d2bd718d931ee50334c12a9e4492
>>> # good: [9ae60ac13fc847d7175587290a1a9aa2aac091b0] ARM: dts: omap4: Update the DSP node
>>> git bisect good 9ae60ac13fc847d7175587290a1a9aa2aac091b0
>>> # bad: [3026ce47498dfdc92966d8d66f10afabf7190c46] ARM: dts: omap5: Add DSP and IPU nodes
>>> git bisect bad 3026ce47498dfdc92966d8d66f10afabf7190c46
>>> # good: [691eb1805fcfc1a2ede06aec6a4d85d312961146] ARM: dts: omap4: Add aliases for rproc nodes
>>> git bisect good 691eb1805fcfc1a2ede06aec6a4d85d312961146
>>> # bad: [7f7d771c00bf65d18a3e30e983b4061a418efbf4] ARM: dts: omap4-panda-common:: Add system timers to DSP and IPU
>>> git bisect bad 7f7d771c00bf65d18a3e30e983b4061a418efbf4
>>> # bad: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>> git bisect bad b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1
>>> # first bad commit: [b4778e787fe9e82dcbff8150ebfbe6fea0b6c4e1] ARM: dts: omap4-panda-common: Add CMA pools and enable IPU & DSP
>>> -------------------------------------------------------------------------------
>>
>>
> 




More information about the linux-arm-kernel mailing list