smb(4): address format

Bob Bishop rb at gid.co.uk
Tue Jan 13 06:08:52 PST 2009


Hi,

On 13 Jan 2009, at 12:43, Andriy Gapon wrote:

> Maybe this is not sufficiently suitable for arch@, but I couldn't  
> think
> of a more relevant list.
>
> smb(4) conveniently omits specifying what SMBus slave address is.  
> Ditto
> for iic(4).
>
> As you know the address itself is 7 bit but how to align those bits
> within a byte is somewhat ambiguous. Even the SMBus Specification
> sometimes refers to a 7-bit value as to a slave address, but sometimes
> uses phrases like "Slave Address Bits 7-1". The confusion seems to  
> come
> from how the address is actually transmitted on the wire where the  
> least
> significant bit of an address byte is used to indicate direction of an
> operation (read or write).

Version 2 of the standard is pretty clear that the MSb of the slave  
address is transmitted first and the LSb is the r/w indicator, but  
confusingly labels timing diagrams in bit transmission order so that  
slave address bit 7 is labelled 1 and the r/w bit is labelled 8.  
However it is clear from Fig 4-9 that the address bits precede the r/w  
bit on the wire.

> So, in practice, there two conventions of specifying a slave address:
> either as 0XXXXXXXb or XXXXXXX0b.

While a convention is just that, it would seem to be perverse to put  
what is clearly the LSb at the left of the byte and I'd vote for  
XXXXXXX0b.

> On FreeBSD we have a situation where smb/smbus doesn't insist on any
> convention nor try to enforce it, and specific hardware drivers have
> differing ideas.
>
> E.g. please see PR 100513:
> http://www.freebsd.org/cgi/query-pr.cgi?pr=100513
>
> This inconsistency can not be a good thing.
> Maybe we should pick one format, document it and enforce it?
>
>> From FreeBSD-centric point of view XXXXXXX0b format seems to be
> preferable - IMHO, of course. Majority hardware drivers already expect
> this format, userland programs like mbmon and smbmsg(8) also seem to  
> use it.
>
> In wider world 0XXXXXXXb format seems to be preferred, Linux also  
> sticks
> to it.
>
> Of course, choosing one format means changes for those using the other
> one, but I think that having current inconsistency is worse.
>
> P.S. I hope this won't trigger a bikeshed discussion.

Can you get a bikeshed with an SMBus interface? :-)

> -- 
> Andriy Gapon

--
Bob Bishop
rb at gid.co.uk






More information about the freebsd-arch mailing list