The system image folder contains three sub-folders:
Files
Auto-generated files
Misc
The files folder contains the definition of a BSP_files object, which is a list of references to File objects specifying the files that must be included in the system image.
A board-specific configuration must define a BSP_files object.
Example 5-8 is an extract of the SBC8260 board-specific configuration file, and contains the BSP_files definition.
<definition name='BSP_files'> <description>system image BSP files</description> <type name='FileList' /> <value index='size'><ref name='debug_driver' /></value> <value index='size'><ref name='debug_agent' /></value> <value index='size'><ref name='bootstrap' /></value> <value index='size'><ref name='reboot' /></value> <value index='size'><ref name='microkernel' /></value> <value index='size'><ref name='tbdec' /></value> <value index='size'><ref name='quicc8260' /></value> <value index='size'><ref name='fccEther' /></value> </definition> <setting name='BSP_files'> <condition> <equal><var name='BOOT_MODE' /><const>ROM</const></equal> </condition> <value index='size'><ref name='powerup' /></value> </setting>
The mkimage tool generates three files:
The bootconf program, ${IMAGE_DIR}/bconf/${SYSTEM}_bconf.r
A program that stores the kdb symbol tables, ${IMAGE_DIR}/symb/${SYSTEM}_symb.r
A data file that stores the initial state of the system environment, ${IMAGE_DIR}/environ
The Auto-generated files folder contains definitions of File objects corresponding to these three files. The File objects must be named bootconf, symb, and env_file, respectively.
Example 5-9 is an extract of the SBC8260 board-specific configuration file, and contains the Auto-generated files definition.
<folder name='Auto-generated files'> <description>system image files automatically \ generated by 'mkimage' tool</description> <definition name='env_file'> <description>initial state of system environment \ variables</description> <type name='File' /> <value field='path'> <vstring>${IMAGE_DIR}/environ</vstring> </value> <value field='bank'><ref name='sys_bank' /></value> </definition> <definition name='symb'> <description>kernel debuger (kdb) symbols</description> <type name='File' /> <value field='path'> <vstring>${IMAGE_DIR}/symb/${SYSTEM}_symb.r</vstring> </value> <value field='bank'><ref name='sys_bank' /></value> <value field='binary'><ref name='debug_agent_model' /></value> </definition> <definition name='bootconf'> <description>bootconf program</description> <type name='File' /> <value field='path'> <vstring>${IMAGE_DIR}/bconf/${SYSTEM}_bconf.r</vstring> </value> <value field='bank'><ref name='sys_bank' /></value> <value field='binary'><ref name='bootconf_model' /></value> </definition> </folder>
The misc folder contains the following:
banks is a list of references to all Bank objects that the system image will contain.
heap_size is an integer specifying the size of the bootconf program heap.
space_barrier is an integer specifying, if required, the highest address of the supervisor address space and the lowest address of the user address space.
Example 5-10 is an extract of the SBC8260 board-specific configuration file, and contains the Misc definition.
<folder name='Misc'> <description>Misc configuration variables</description> <definition name='banks'> <description>list of system image banks</description> <type name='BankList'/> </definition> <definition name='heap_size'> <description>bootconf heap size</description> <int/> <const>0x00002000</const> </definition> <setting name='banks'> <condition> <equal><var name='BOOT_MODE' /><const>ROM</const></equal> </condition> <value index='size'><ref name='trampoline_bank' /></value> </setting> <setting name='banks'> <value index='size'><ref name='sys_bank' /></value> </setting> </folder>