Setting up the Networking Environment

Except for simple evaluation on a PC target, RTEMS/GeSys needs several networking services:

How the Boot Process Works

Here's how GeSys boots up:
  1. The target firmware (pcX86: GRUB) needs to learn its network configuration. Some firmwares can use BOOTP and hence the same BOOTP service as the final system. Other firmwares (e.g., a vxworks bootrom with no BOOTP client functionality) require manual intervention.
  2. The target firmware contacts the TFTP server, loads the GeSys image into memory and transfers control to GeSys. At this point the network configuration 'learned' in step 1. is 'forgotten'.
  3. RTEMS/GeSys initializes and contacts the BOOTP server (again) to figure out the networking configuration.
  4. GeSys retrieves the boot-file name and substitutes the file name extension by '.sym'. It then loads the system symbol table file and initializes Cexp.
    NOTE: If GeSys was compiled with a built-in symbol table, this step is omitted.
  5. GeSys retrieves the boot-file's directory path (which maps to some remote file either on TFTPfs or NFS) and makes it the current directory ('chdir()' call).
  6. GeSys executes Cexp to evaluate a 'system script', st.sys, (if found). This script can be used to perform generic initialization/setup that is common to all target instances.
  7. GeSys evaluates the BOOTP option 129 (RTEMS extension: 'command line') and copies all 'KEY=value' pairs into the environment where they can be retrieved by applications by ordinary 'getenv()' calls.
  8. GeSys tries to find an environment variable 'INIT' (which can be set via BOOTP option 129) by calling 'getenv("INIT")'. If this environment variable is defined, it should define the (absolute) path to a further (target machine specific) initialization script. If the script is found, GeSys changes directory to the script location and executes it.
  9. Gesys enters the Cexp shell in interactive mode.
Back to Main Page