This is where I'm going with fwcontrol
Dieter
freebsd at sopwith.solgatos.com
Fri Aug 29 01:02:15 UTC 2008
> send_phy_config() is causing the /dev/fwX device to generate a PHY
> configuration Packet(IEEE 1394-1995 4.3.4.3)
> <snippet from document>
> It is possible to optimize Serial Bus performance for particular
> configurations in the following ways:
> a) Setting the gap_count used by all nodes to a smaller value
> (appropriate to the actual worst-case number of
> hops between any two nodes)
> b) Forcing a particular node to be the root after the next bus
> initialization (for example, in isochronous systems,
> the root shall be cycle-master capable)
> Both of these actions shall be done for remote nodes using the PHY
> configuration packet shown in figure 4.20. (For the
> local node, the PH_CONT.request service is used) The procedures for
> using this PHY packet are described in clause
> 7.3.5.2.1.
> <end snippet>
>
> So, I think you are correct adjust_gap_count should become set_root_node
> as that is what it does.
>
> A PHY Config packet should look like this:
> Message ID Root ID R T Gap Count
> 00(2 bits) (5 bits) 1 1 (6 bits)
>
> So the Root ID(-f in fwcontrol) can't be set to a value greater than
> 0x3f(63) and the Gap Count can't be greater than 0x7f(127). An "R"
> value of 1 means that this is a message to set the root ID. An "T"
> value of 1 means that this is a message to set the gap count for all
> nodes. If "R" and "T" are both 0, then the message is ignored.
Thank you, this makes much more sense now! I was looking at
controller registers, but it is building a packet.
Suggestion: put something like the text above in a comment
at the start of send_phy_config().
More information about the freebsd-firewire
mailing list