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>