Functional testing of mainline vchiq driver

Michael Zoran mzoran at crowfest.net
Fri Oct 28 10:53:40 PDT 2016


On Fri, 2016-10-28 at 19:50 +0200, Noralf Trønnes wrote:
> 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.
> 

I tried and also failed.  I guess were both failures...

One of the issues I hit was that the Pi2 requires symetric
multiprocessing to be enable.  If it isn't included the Pi2 will hang
very early in the boot sequence.  I found that out recently.

Doesn't the PI Foundation distribute separate kernel binaries for v6
and v7?




More information about the linux-rpi-kernel mailing list