Technical Q&A

FW 02 - How do I ring the Doorbell? (17-May-1999)


Q: How do I ring the Doorbell?

A: Ringing the Doorbell is rather simple, once you have the SBP2 device's fetch agent address. The Doorbell's address is 16 bytes past the fetch agent's address. To ring the Doorbell, you write any value into the Doorbell's address using the FWWrite command.

You get the address of the fetch agent from the login status notification (because each login could have its own fetch agent, and therefore Doorbell register). Make sure that you register a login status notification function before you log into your SBP2 device; otherwise, you won't get the address of the SBP2 device's fetch agent.

Tip: Because the four-byte payload of the write to the Doorbell is ignored, you can put diagnostic information in it (but only four bytes), and examine the data with a FireWire packet analyzer. Even if you do not send diagnostic data, you must set a valid pointer in the asynchronous command object (the memory must be able to be held, for example).


-- Mark Cookson
Worldwide Developer Technical Support

Technical Q&As | Contents
Previous Question | Next Question

To contact us, please use the Contact Us page.