lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 14 Aug 2019 15:01:44 +0000
From:   "FIXED-TERM Buecheler Konstantin (ETAS-SEC/ECT-Mu)" 
        <fixed-term.Konstantin.Buecheler@...rypt.com>
To:     "linux-can@...r.kernel.org" <linux-can@...r.kernel.org>,
        "netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC:     Dan Murphy <dmurphy@...com>
Subject: can: tcan4x5x: spi bits_per_word issue on Raspberry PI

> Hi all,
> 
> I am trying to use a tcan4550 together with a Raspberry PI 3 B. I am using the
> tcan4x5x driver from net-next.
> I always get the following error during startup.
> 	tcan4x5x spi0.0: Probe failed, err=-22
> 	tcan4x5x: probe of spi0.0 failed with error -22
> 
> I realized that this happens because the Raspberry PI does only support 8/9 bit
> words. https://elinux.org/index.php?title=RPi_SPI#Supported_bits_per_word
> In the driver it is set to 32.
> 	spi->bits_per_word = 32;
> 
> Setting this to 8 does not help of course since the tcan chip expects a multiple of
> 32 per spi transaction.
> I don't know if this is a Raspberry Pi specific problem or if there are more devices
> with this hardware limitation.
> 
> Does anyone have a workaround for that?

It seems to be enough to just change the bits_per_word value to 8

> 
> If this a common issue it might be a good idea to patch the driver. I will check if I
> can find proper a way to do so.
> 
> Regards,
> Konstantin

Now I have another really confusing problem. Anything I write to SPI is written little endian. The tcan chip expects big endian. 
Anything I read from SPI is treated as little endian but is big endian. Does anyone know why this happens? 
Is there a flag or something I can set for the SPI device/wire to fix this?

Regards,
Konstantin

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ