Functional testing of mainline vchiq driver

Noralf Trønnes noralf at tronnes.org
Fri Oct 28 10:50:08 PDT 2016


Den 28.10.2016 18:01, skrev Eric Anholt:
> Stefan Wahren <stefan.wahren at i2se.com> writes:
>
>> Am 28.10.2016 um 09:27 schrieb Michael Zoran:
>>> On Wed, 2016-10-26 at 20:00 +0200, Stefan Wahren wrote:
>>>> Hi Michael,
>>>>
>>>>> Michael Zoran <mzoran at crowfest.net> hat am 26. Oktober 2016 um
>>>>> 01:22
>>>>> geschrieben:
>>>>>
>>>>>
>>>>> On Tue, 2016-10-25 at 14:52 -0700, Michael Zoran wrote:
>>>>>> On Tue, 2016-10-25 at 14:45 -0700, Michael Zoran wrote:
>>>>>>> On Tue, 2016-10-25 at 23:20 +0200, Stefan Wahren wrote:
>>>>>>>> thanks, here are my steps to get the driver working:
>>>>>>>>
>>>>>>>> * checkout Greg's staging-testing tree
>>>>>>>> * applied "staging: vc04_services: Remove dmac_map_area"
>>>>>>>> * remove BROKEN in drivers/staging/vc04_services/Kconfig
>>>>>>>> * add the following node to arch/arm/boot/dts/bcm283x.dtsi
>>>>>>>>
>>>>>>>>                 vchiq: vchiq at 7e00b840 {
>>>>>>>>                         compatible = "brcm,bcm2835-vchiq";
>>>>>>>>                         reg = <0x7e00b840 0xf>;
>>>>>>>>                         interrupts = <0 2>;
>>>>>>>>                         cache-line-size = <32>;
>>>>>>>>                         firmware = <&firmware>;
>>>>>>>>                 };
>>>>>>>>
>>>>>>>> * build kernel and dtb for Raspberry Pi B
>>>>>>>>
>>>>>>>>
>>>>>> BTW, the downstream tree has an override for the cache-line-
>>>>>> size.  Did
>>>>>> you perhaps try and add it to the device tree as well?
>>>>>>
>>>>>> bcm2708_common.dtsi:
>>>>>>
>>>>>> 	__overrides__ {
>>>>>> 		cache_line_size = <&vchiq>, "cache-line-size:0";
>>>>>> 	};
>>>> i applied the second version of your patch "staging: vc04_services:
>>>> Remove
>>>> dmac_map_area" and rebuild the whole driver. Now vchiq_test works
>>>> without any
>>>> issues. The __overrides__ wasn't necessary.
>>> I just tested an out of the box built of the staging-testing branch
>>> with all the latest patches.  For me, if I have the __overrides__ in
>>> the DT vchiq_test -f works fine.  If I remove it I get data corruption
>>> on my RPI 2.
>> Yes, Phil wrote that the RPI 2 & 3 requires a cache-line-size of 64.
>>
>> Currently i'm searching for a good solution but it seems
>> get_cpu_cacheinfo() which contains the cache line size isn't implemented
>> for ARM (only for ARM64).
> Aren't you just looking for linux/cache.h's cache_line_size()?

cache_line_size() is a static value which means it won't be possible to
build a kernel image that works on both Pi1 and Pi2.
Has anyone tried to build such a kernel?
I tried to do it in the downstream repo and failed miserably.

Noralf.




More information about the linux-rpi-kernel mailing list