smbmsg(8): slave address confusion?

Gavin Atkinson gavin at FreeBSD.org
Fri Nov 21 08:48:40 PST 2008


On Fri, 2008-11-21 at 17:16 +0100, Joerg Wunsch wrote:
> As Andriy Gapon wrote:
> 
> > Now:
> > 
> > (0x44 << 1) & 0xff == (0xc4 << 1) & 0xff = 0x88 (looks like RTC)
> > (0x50 << 1) & 0xff == (0xd0 << 1) & 0xff = 0xa0 (well known SPD addr)
> > (0x52 << 1) & 0xff == (0xd2 << 1) & 0xff = 0xa4 (well known SPD addr)
> > (0x80 << 1) & 0xff = 0x0 (mentioned above "global address")
> > (0x88 << 1) & 0xff == MIN_I2C_ADDR = 0x10 (something weird)
> > 
> > I think that this demonstrates that FreeBSD smb driver expects slave
> > addresses in range 0x0-0x7f.
> 
> Well, the machine I've been writing smbmsg(8) on has been a Sun E450 I
> don't have access to any longer, so I cannot post a live example
> output.  However, I could swear the output did make sense on that
> machine, i. e. the typical 0xa0 etc. addresses were populated there.
> Basically, the 0xa0 example you can find in the EXAMPLES section of
> the man page has been tailored after an actual session transcript made
> on said Sun E450.  (I'm not completely sure about the 0x70 example
> anymore, this could be a hypothetical one.)
> 
> So could that be a backend driver issue, so various backend drivers
> use different addressing formats? *shudder*

I believe this is the case, yes.  See for example, PR kern/100513.  It
appears that some frivers treat the adfdress one way, and others treat
it the other.

Gavin


More information about the freebsd-stable mailing list