Date: Tue, 13 Jan 2009 14:43:22 +0200 From: Andriy Gapon <avg@icyb.net.ua> To: freebsd-arch@freebsd.org Subject: smb(4): address format Message-ID: <496C8C6A.2030708@icyb.net.ua>
next in thread | raw e-mail | index | archive | help
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). So, in practice, there two conventions of specifying a slave address: either as 0XXXXXXXb or 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. -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?496C8C6A.2030708>