Documentation of the configuration and compiling process was updated to

our switch to the newer GCC.
This commit is contained in:
Jacek Galowicz 2012-09-16 10:58:37 +02:00
parent 459ceaa42d
commit e267fc31c6

View file

@ -16,11 +16,10 @@
*
* \verbatim$ git clone git://git.lfbs.rwth-aachen.de/metalsvm.git \endverbatim
*
* If you are asked for a password you are not authorized to clone the repository. In this case you will need to get your public SSH key authorized.
*
* @section compiling Compiling MetalSVM
*
* To compile MetalSVM, you will need a proper Makefile and configuration. To use the example files, just do the following:
* To compile MetalSVM, you will need a proper Makefile and configuration.
* To use the example files, just do the following:
*
* \verbatim
$ cd MetalSVM
@ -28,8 +27,10 @@ $ cp Makefile.example Makefile
$ (cd include/metalsvm; cp config.h.example config.h) \endverbatim
*
* The standard configuration works on usual PC hardware configurations as well as in emulators.
* There are also preconfigured example configs for the Intel SCC: `Makefile.scc` and `config.h.scc`.
*
* Compiler settings can be edited in the Makefile, while the kernel configuration can be found in the just copied configuration file.
* Compiler settings can be edited in the Makefile, while the kernel configuration can be
* found in the configuration header file.
*
* @section runqemu Running MetalSVM in Qemu
*
@ -41,19 +42,12 @@ $ (cd include/metalsvm; cp config.h.example config.h) \endverbatim
*
* @section runscc Running MetalSVM on the Intel SCC
*
* -# Intel recommends to use their cross-compiler for generating code which is guaranteed to be SCC-compatible. Just set the environment variables with the following command:
* \verbatim$ . /opt/compilerSetupFiles/crosscompile.sh \endverbatim
* -# The Makefile needs to be adapted to actually use the cross compiler.
* Just uncomment two lines like seen here:
* \code
# Set your own cross compiler tool chain prefix here
CROSSCOMPREFIX=
# Uncomment both lines if compiling for the SCC!
CROSSCOMPREFIX=i386-unknown-linux-gnu-
STACKPROT=\endcode
* -# Another important change in the Makefile is disabling the "-fno-stack-protector" option. It occurs several times.
* -# The SCC requires a special configuration for the MetalSVM kernel:
* -# Although Intel provides a special older GCC version for compiling code for the Intel SCC,
* the MetalSVM project switched to the current standard GCC. You don't need to source
* the cross compiler script which might be installed on your MCPC.
* -# An important change in the Makefile is disabling the "-fno-stack-protector" option. It occurs several times. This has already been done for you if you use `Makefile.scc`.
* -# The SCC requires a special configuration for the MetalSVM kernel (Already been done
* if you use `config.h.scc`):
* \code
//#define CONFIG_PCI
//#define CONFIG_VGA
@ -78,6 +72,7 @@ STACKPROT=\endcode
* \verbatim
$ cd tools
$ make SCC \endverbatim
*
* -# The \c obj directory was just created, containing the MetalSVM kernel image. It can be loaded into the SCC's memory using \verbatim$ sccBoot -g obj \endverbatim
* -# The default configuration lets MetalSVM run only on core 0. Its reset pin needs to be released:
* \verbatim$ sccReset -r 0x00 \endverbatim
@ -90,9 +85,10 @@ $ make SCC \endverbatim
* -# Build the kernel like described above (items 1-7) and change to the \c tools directory.
* -# Now the file \c metalsvm.mt can be edited, depending on how many cores you want MetalSVM running.
* Just remove the cores which shall be unaffected. Having a slim \c metalsvm.tm accelerates the build procedure.
* -# The final image must be generated then with \code$ make SCC\endcode
* -# The final image must be generated then with \code$ make SCC CORENUM=48\endcode
* where `CORENUM` is set to the actual number of cores which shall work together later.
* -# A directory \c obj was created, containing the final MetalSVM Image. This image can now be loaded with the following command: \code$ sccBoot -g obj\endcode
* -# Everything has been placed in the cores' memory. To release the reset pins of the corresponding cores, type \code$ sccReset -r 0x00 0x01\endcode
* -# Everything has been placed in the cores' memory. To release the reset pins of the corresponding cores, type \code$ sccReset -r 0 1 2 3 ...\endcode
*
* @section msvmuart Enabling UART support
*