Note that in this description, time advances down along the page.

Bear in mind as well that this description applies to the Gen 1 design.

Items in square brackets ([]) are optional.

Initial instruction

dlEntry.s (download_entry())

This file is considered part of an RTEMS BSP and can be found in ${RTEMS_ROOT}/src/c/src/lib/libbsp/powerpc/virtex5/dlentry. What's written here is written for the PPC 440 found in Xilinx Virtex 5 parts. The Virtex 4 version is similar.

boot_card()

While the RTEMS structure provides for allowing this function to be supplied by the RTEMS BSP, we use the version that the distribution comes with. It is found in the ${RTEMS_ROOT}/src/c/src/lib/libbsp/shared directory called bootcard.c.

In the following, functions prefixed with bsp_ are supplied by the RTEMS BSP.

RTEMS BSP

This constitutes our contributions to RTEMS. The code here sets up the processor and board for generic use. Files related to it can be found in ${RTEMS_ROOT}/src/c/src/lib/libbsp/powerpc/virtex5/....

The functions prefixed with app_ are supplied by the RTEMS application, i.e., the RCE project, in our case.

  1. bsp_start()
  2. bsp_pretasking_hook()
  3. bsp_predriver_hook()
  4. bsp_postdriver_hook()
  5. bsp_cleanup()

RCE BSP

This is the portion of the BSP that is specific to the RCE project. It can be found in release/rce/init/src/Init.cc.

  1. app_bsp_start()
  2. app_bsp_pretasking_hook()
  3. app_bsp_predriver_hook()
  4. app_bsp_postdriver_hook()
  5. app_bsp_cleanup()
RceDebug
RcePic
RceEthernet
RceBsdnet

Init task

This task is automatically launched by the act of enabling multitasking in boot_card()

init_executive()

This function runs in its own RTEMS task that was launched by Init task. This forms the intent of the loaded executable. Other possibilities exist, but generally, this will be one of the core executables.