The Auto-Start facility in a SpaceWire link interface is provided to permit the far end of the link to initiate starting of the link. One end of the link is set to Auto-Start. Sometime later the other end of the link is started and begins sending Nulls. These are received by the end of the link set to Auto-Start, which responds to the reception of Nulls by starting and sending Nulls. Initialisation of the link takes place and data can then be sent over the link.
Both ends of a SpaceWire link can be set to Auto-Start, in which case either end can be started and cause link initialisation.
Without the Auto-Start facility both ends of the link would have to be started specifically. One end could be started, sending Nulls for a long time before the other end is also started. This wastes power.
The condition for enabling a link to begin initialisation is:
[Link Enabled] = ( NOT [Link Disabled] ) AND ([LinkStart] OR ( [AutoStart] AND gotNULL ))
LinkDisabled is a flag set by software or hardware to indicate that the link is disabled,
LinkStart is a flag set by software or hardware to start a link,
AutoStart is a flag set by software or hardware to request the link to start automatically on receipt of a NULL,
gotNULL is a flag indicating that the link interface has received a NULL.
If the link is disabled, LinkDisabled asserted, the other flags are ignored and the link will not attempt to start initialisation, until LinkDisabled is de-asserted.