VxWorks Reference Manual : Libraries

bootInit

NAME

bootInit - ROM initialization module

ROUTINES

romStart( ) - generic ROM initialization

DESCRIPTION

This module provides a generic boot ROM facility. The target-specific romInit.s module performs the minimal preliminary board initialization and then jumps to the C routine romStart( ). This routine, still executing out of ROM, copies the first stage of the startup code to a RAM address and jumps to it. The next stage clears memory and then uncompresses the remainder of ROM into the final VxWorks ROM image in RAM.

A modified version of the Public Domain zlib library is used to uncompress the VxWorks boot ROM executable linked with it. Compressing object code typically achieves over 55% compression, permitting much larger systems to be burned into ROM. The only expense is the added few seconds delay while the first two stages complete.

ROM AND RAM MEMORY LAYOUT

Example memory layout for a 1-megabyte board:

    --------------  0x00100000 = LOCAL_MEM_SIZE = sysMemTop()
    |            |
    |    RAM     |
    |  0 filled  |
    |            |
    |------------| = (romInit+ROM_COPY_SIZE) or binArrayStart
    | ROM image  |
    |----------- |  0x00090000  = RAM_HIGH_ADRS
    | STACK_SAVE |
    |------------|
    |            |  0x00080000  = 0.5 Megabytes
    |            |
    |            |
    | 0 filled   |
    |            |
    |            |  0x00001000  = RAM_ADRS & RAM_LOW_ADRS
    |            |
    |            |  exc vectors, bp anchor, exc msg, bootline
    |            |
    |            |
    --------------  0x00000000  = LOCAL_MEM_LOCAL_ADRS
    --------------
    |    ROM     |
    |            |  0xff8xxxxx  = binArrayStart
    |            |
    |            |  0xff800008  = ROM_TEXT_ADRS
    --------------  0xff800000  = ROM_BASE_ADRS

SEE ALSO

bootInit, inflate( ), romInit( ), and deflate

AUTHOR

The original compression software for zlib was written by Jean-loup Gailly and Mark Adler. See the manual pages of inflate and deflate for more information on their freely available compression software.


Libraries : Routines

romStart( )

NAME

romStart( ) - generic ROM initialization

SYNOPSIS

void romStart
    (
    int startType /* start type */
    )

DESCRIPTION

This is the first C code executed after reset.

This routine is called by the assembly start-up code in romInit( ). It clears memory, copies ROM to RAM, and possibly invokes the uncompressor. It then jumps to the entry point of the uncompressed object code.

RETURNS

N/A

SEE ALSO

bootInit