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] [day] [month] [year] [list]
Message-ID: <51E696B0.3050808@pcserviceselectronics.co.uk>
Date:	Wed, 17 Jul 2013 14:05:52 +0100
From:	Paul Carpenter <paul@...erviceselectronics.co.uk>
To:	Andy Lutomirski <luto@...capital.net>
CC:	linux-i2c@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: What endianness is word in i2c_smbus_data?

Andy Lutomirski wrote:
> I'm rather confused here.  In SMBUS, the "read word" operation returns
> two bytes.  Just to be confusing, the SMBUS spec calls the first byte
> "Data Byte Low" and the second byte "Data Byte High".  But they really
> are the first and second bytes -- Read Word will return whatever Read
> Byte would have as its first byte.  Let's call these bytes B1 and B2
> for first and second.

No that tells you WHATEVER the HOST endianness the bus transfer is
always treated the same, so when two bytes are combined (into a word,
the first will be the low byte for the HOST and the second will be the
high byte for the HOST. These may actually be different for the SLAVE
device.

> The eeprom and at24 drivers expect data->word to be (B2 << 8) | B1.
> That is, data->word is the cpu representation of the value on the bus
> if that value is treated as little-endian.  Is that indeed the correct
> interpretation?  If so, should it be documented somewhere?

Several I2C devices eg PCF8575 and MCP23017 often give 16 bit results as
2 byte transfers, knowing which byte order from device to bus to host
needs matching.

So knowing that a word is made up of bytes transmitted or received in a
particular order is important as some devices do transmit high byte
first.

> --Andy
> 


-- 
Paul Carpenter          | paul@...erviceselectronics.co.uk
<http://www.pcserviceselectronics.co.uk/>    PC Services
<http://www.pcserviceselectronics.co.uk/pi/>  Raspberry Pi Add-ons
<http://www.pcserviceselectronics.co.uk/fonts/> Timing Diagram Font
<http://www.gnuh8.org.uk/>  GNU H8 - compiler & Renesas H8/H8S/H8 Tiny
<http://www.badweb.org.uk/> For those web sites you hate
--
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