3.4.1. What must be done at boot time
When the machine is started (e.g. at power on), a number of things need to be done before the first instruction is executed on a Dragon processor. The following steps should be performed in order by the bootstrap processor (the PC/AT):
1. assert nDReset through power on detection or by software
2. assert nDFreeze to enable DBus operations
3. read and verify the hardware configuration by reading all component IDs on the DBus
4. set the DynaBus clock frequency to a reasonable value
5. tune clock skews in each hybrid to the "best" value
6. load unique DynaBus IDs into each DynaBus partner
7. load chip-dependent initialization constants into chips (arbiters, ...)
8. assert DynaBus StopOut/StopIn signal to prevent arbiters from running
9. remove nDFreeze, DBus will not be used any more
10. remove nDReset, allowing chips to start running (except arbiters)
11. remove DynaBus StopOut/StopIn to start all arbiters synchronously
12. load Dragon boot code into DynaBus memory through the IOBridge
13. start processors (remove the processor reset bit in caches)
The scheme outlined above requires that system components must start in precise order. It should be noticed that the StopOut/StopIn DynaBus signal, in addition to its function of stopping the machine after a hardware crash, is used to ensure synchronous start of all the arbiters in the system (this is a requirement of the arbiter implementation).