Payload Start Routine

The lib/start.S file contains the start-up routine for a deployed payload. Its responsibilities are as follows:

  1. To enable caching, if available.
  2. To initialise a kernel stack for privileged routines to use.
  3. To set up the globals pointer so that symbols can be looked up.
  4. To initialise payload data.
  5. 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.