This is where I'm going with fwcontrol
Dieter
freebsd at sopwith.solgatos.com
Fri Aug 29 20:22:42 UTC 2008
> > Should
> >
> >
> >> Message ID Root ID R T Gap Count
> >> 00(2 bits) (5 bits) 1 1 (6 bits)
> >>
> >
> > be
> >
> > Message ID Root ID R T Gap Count
> > 00(2 bits) (6 bits) 1 1 (6 bits)
> >
> > send_phy_config() ANDs root_node with 0x3f, and the
> > "Physical ID" field in the controller register is
> > 6 bits.
> >
> Well, according to the 1394 documentation, no. The root ID is
> definitely 5 bits.
>
> The gap count is also 5 bits, I must have mis-counted. So, really it
> should be:
>
> Message ID Root ID R T Gap Count
> 00(2 bits) (5 bits) 1 1 (5 bits)
Looking at "Table 5. PHY Register Map" in the VIA controller datasheet
(page 24 of the pdf)
http://www.datasheetarchive.com/pdf-datasheets/Datasheets-6/DSA-113181.pdf
the "Physical ID" field is 6 bits, as is the "Gap Count" field.
I don't have the IEEE documentation, so I'll have to assume
you are correct about it saying 5 bits. So why doesn't the
controller datasheet agree with the IEEE doc? Granted one is
a controller register and the other is a packet, but I'd
expect these individual fields to be the same size.
> This means that the Root ID and the Gap Count cannot exceed 0x3f(63).
That's 6 bits. 5 bits would be 0x1f = 31 decimal.
> So, the masking
> of the values instead of generating and error seems wrong to me. I'm
> going to put in error checking
> to make sure the values comply with the specification and document the
> correct values in the man page
> and the comments of the code.
Sounds good.
More information about the freebsd-firewire
mailing list