The lib/start.S file contains the start-up routine for a deployed payload. Its responsibilities are as follows:
To enable caching, if available.
To initialise a kernel stack for privileged routines to use.
To set up the globals pointer so that symbols can be looked up.
To enter the main program of the payload.
The start-up routine is positioned in the .boot section of the payload.
Alongside the start-up routine are definitions of device configuration registers: .devcfg0, .devcfg1 and .devcfg2. The actual values set for these registers should be defined in an application's devconfig.h file.