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-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 28 Feb 2014 16:26:26 +0200
From:	Peter Ujfalusi <peter.ujfalusi@...com>
To:	Nishanth Menon <nm@...com>, Lee Jones <lee.jones@...aro.org>
CC:	<florian.vaussard@...l.ch>, <linux-kernel@...r.kernel.org>,
	<linux-omap@...r.kernel.org>, Samuel Ortiz <sameo@...ux.intel.com>
Subject: Re: [PATCH 1/3] mfd: twl6040: Select i2c fast mode as default with
 regmap patch

On 02/28/2014 03:30 PM, Nishanth Menon wrote:
> TWL6030 can do 3.3MHz by default and there are no speed registers to
> configure.

According to the datasheet the speed of twl6030 is limited to 2.4MHz. I have
not seen registers or pins to select the speed. As the documentation puts
this: High-speed mode (limited to 2.4Mbit/s maximum)


>> Also you could have more devices on the bus, wired for 3.4MHz. In that case we
>> would need to make sure that the first access happens with 100KHz to twl6040
>> to select 3.4MHz mode, switch the controller speed and allow the communication
>> to other chips. It is another question how the 3.4MHz clients will interpret
>> the 100KHz communication on the bus, I guess it is ignored by them.
> As far as the i2c spec 2.1 says:
> "Fast-mode devices are downward-compatible and can communicate with
> Standard-mode devices in a 0 to 100 kbit/s I2C-bus system"
> ...
> "Hs-mode devices can transfer information at bit rates of up to 3.4
> Mbit/s, yet they remain fully downward compatible with Fast- or
> Standard-mode (F/S-mode) devices for bi-directional communication in a
> mixed-speed bus system."
> 
> So, they are backward compatible.

I just tried it on PandaBoard to set the i2c speed to 24MHz. If I do not touch
the twl6040 ACCCTL register's i2cmode I can not access to twl6040 later on.
However if I select the high-speed mode as the first write everything is fine
afterwards.
Hrm, it is possible that I can write with high-speed to twl6040 but the
twl6040 is sending back the data in normal-mode?
So in theory if I have the ACCCTL write as a first I2C access towards twl6040
we might be safe if the bus is in high-speed mode?

If I have fast mode configured to the controller, I can still communicate with
twl6040 even if it is set to normal mode.

I still think that this patch is safe for now. We could try to figure out how
to increase the i2c speed on the bus for twl6030 and twl6040. This has to be
done in the same series.

Now after several boots:
It seams if I set the i2c to 2.4MHz and I can not communicate with twl6040
right after cold power on.
So if the i2c bus is already set to 2.4GHz I can not set the twl6040 ACCCTL
register. But the content of ACCCTL register seams to be preserved between
reboots and this is why I saw that the 2.4MHz bus speed might be even possible.

-- 
Péter
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ