#This file was created by <root> Tue Jun 19 09:13:32 2001
#LyX 1.0 (C) 1995-1999 Matthias Ettrich and the LyX Team
\lyxformat 2.15
\textclass article
\language default
\inputencoding latin1
\fontscheme default
\graphics default
\paperfontsize default
\spacing single 
\papersize Default
\paperpackage a4
\use_geometry 0
\use_amsmath 0
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\defskip medskip
\quotes_language english
\quotes_times 2
\papercolumns 1
\papersides 1
\paperpagestyle default

\layout Title

The LinuxBIOS Configuration Tool
\layout Author

Ron Minnich
\layout Section

All you need to know
\layout Standard

LinuxBIOS consists of two parts: a small bootstrap, which brings the hardware
 up; and a Linux kernel.
 The kernel is built in the usual manner.
 The bootstrap is built in a build directory, using source components that
 reside in a source tree.
 Unlike Linux, and very much like BSD, the bootstrap is intended to be built
 in a directory that is the 
\emph on 
outside
\emph default 
 the source tree.
 We structure it this way so that users can easily load the newest snapshot
 of LinuxBIOS from the sourceforge.net server, and then build a new LinuxBIOS.
 The directory in which LinuxBIOS is built is called the 
\emph on 
build
\emph default 
 directory; the source directory is called the 
\emph on 
source
\emph default 
 directory, and the Linux kernel directory is called (strangely enough)
 the 
\emph on 
kernel
\emph default 
 directory.
 
\layout Standard

The build directory is initially empty.
 Three files are needed to build a complete LInuxBIOS: a Makefile; a crt0.S
 (assembly startup) file; and ldscript.ld, a script for ld to link the objects
 into a bootstrap.
 Note that the bootstrap and the kernel are not linked via ld; they are
 totally seperated components.
 The Makefile contains the list of objects used to build the bootstrap;
 the location of the source tree; the location of the kernel; and any other
 commands needed to build a full LinuxBIOS romimage.
 The crt0.S file contains is just enough code to make the machine usable
 for the rest of the bootstrap, which is itself written in C.
 The ldscript.ld file defines address relocations for the bootstrap so it
 will run correctly from FLASH or Disk On Chip.
 
\layout Standard

The LinuxBIOS configuration tool is used to build these three critical files.
 The user writes a top-level configuration file and then runs the configuration
 tool.
 The tool uses other files in the source tree to set parameters for the
 generated files, and then writes the configuration files for a given build.
 
\layout Subsection

Configuration file Format
\layout Standard

We show an example of a configuration file in Figure 
\begin_inset LatexCommand \ref{sampleconfig}

\end_inset 

.
 
\layout Standard

We will describe this file line by line.
 First, we name the build directory, in this case matsonic.
 Next, we name the mainboard: matsonic/ms7308e.
 Next we set a few options, such as SERIAL_CONSOLE (enable serial console
 logging); UPDATE_MICROCODE (the bootstrap will load new microcode on the
 broken Coppermine PIIIs if needed); ENABLE_L2_CACHE (the bootstrap will
 correctly enable L2 cache if needed); and finally, enable the VGA frame
 buffer.
 The next command (
\family typewriter 
\size footnotesize 
linux /usr/src/linux
\family default 
\size default 
) defines the path to vmlinux.
 Finally, the 
\family typewriter 
\size footnotesize 
commandline
\family default 
\size default 
 command sets the command line for Linux.
 The minimum commandline currently required is the one which sets the root
 file system.
 
\layout Standard

\begin_float fig 
\layout Standard


\family typewriter 
\size footnotesize 
# Sample config file for Matsonic MS7308E with DoC Millennium (as root)
\layout Standard


\family typewriter 
\size footnotesize 

\protected_separator 

\layout Standard


\family typewriter 
\size footnotesize 
# This will make a target directory of ./matsonic
\layout Standard


\family typewriter 
\size footnotesize 
target matsonic 
\layout Standard


\family typewriter 
\size footnotesize 

\protected_separator 

\layout Standard


\family typewriter 
\size footnotesize 
# Matsonic MS7308E mainboard
\layout Standard


\family typewriter 
\size footnotesize 
mainboard matsonic/ms7308e
\layout Standard


\family typewriter 
\size footnotesize 

\protected_separator 

\layout Standard


\family typewriter 
\size footnotesize 
# Enable Serial Console for debugging
\layout Standard


\family typewriter 
\size footnotesize 
option SERIAL_CONSOLE
\layout Standard


\family typewriter 
\size footnotesize 

\protected_separator 

\layout Standard


\family typewriter 
\size footnotesize 
# Enable MicroCode update and L2 Cache init for PII and PIII 
\layout Standard


\family typewriter 
\size footnotesize 
option UPDATE_MICROCODE
\layout Standard


\family typewriter 
\size footnotesize 
option CONFIGURE_L2_CACHE
\layout Standard


\family typewriter 
\size footnotesize 

\protected_separator 

\layout Standard


\family typewriter 
\size footnotesize 
# Use the internal VGA frame buffer device
\layout Standard


\family typewriter 
\size footnotesize 
option HAVE_FRAMEBUFFER
\layout Standard


\family typewriter 
\size footnotesize 

\protected_separator 

\layout Standard


\family typewriter 
\size footnotesize 
# Path to your kernel (vmlinux)
\layout Standard


\family typewriter 
\size footnotesize 
linux /usr/src/linux
\layout Standard


\family typewriter 
\size footnotesize 

\protected_separator 

\layout Standard


\family typewriter 
\size footnotesize 
# Kernel command line parameters
\layout Standard


\family typewriter 
\size footnotesize 
commandline root=/dev/nftla1 single
\layout Standard


\family typewriter 
\size footnotesize 

\protected_separator 

\layout Caption


\begin_inset LatexCommand \label{sampleconfig}

\end_inset 

A Sample Configuration File for the Matsonic MS7308E
\end_float 
\layout Standard

This sample configuration file is all that you will usually need.
 In fact, all the configuration files we have written to date involve small
 variations on this file.
 
\layout Subsection

The commands you need to know
\layout Standard

There are only five commands used in the file above.
 We describe them in Table 
\begin_inset LatexCommand \ref{fivecommands}

\end_inset 

.
 
\layout Standard

\begin_float tab 
\layout Standard
\align center \LyXTable
multicol5
10 2 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
0 0 1 0
0 0 1 0
0 0 1 0
0 0 1 0
1 0 0 0
1 1 0 0
1 1 0 0
8 1 0 "" ""
2 1 1 "4in" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 2 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 2 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""

Command
\newline 
What it does
\newline 
target
\newline 
Name the build directory.
 (Should we remove this? seems pointless.)
\newline 
mainboard
\newline 
Name the mainboard to be used for this build.
 This command will 
\newline 

\newline 
cause the tool to look in the source tree for
\newline 

\newline 
src/<mainboard name>/Config
\newline 

\newline 
Commands in that Config file are processed.
 
\newline 

\newline 

\newline 
option
\newline 
Set an option in the Makefile
\newline 
linux
\newline 
Name the directory in which the kernel image (vmlinux) resides
\newline 
commandline
\newline 
Set the command line for Linux
\layout Standard


\begin_inset LatexCommand \label{fivecommands}

\end_inset 


\end_float 
\layout Comment

A question on the target command.
 Shouldn't it be part of the invocation of the command? We're not sure we
 like this command.
 
\layout Subsection

Running the configuration tool
\layout Standard

To run the configuration tool, you need to make a build directory, then
 run the tool.
 The standard BSD config tool will delete and re-create build directories
 as needed, but we are not that confident.
 If you want the build directory removed or created, it is up to you.
 
\layout Standard

We show a sample run in Figure 
\begin_inset LatexCommand \ref{samplerun}

\end_inset 

.
 We cd to /tmp, make a build directory (matsonic), make a build file (matsonic.co
nfig), and run the config tool using Python.
 The tool will show the additional config files it processes.
 Error handling right now is not very good, but there are some errors that
 it will show.
 
\layout Standard

\begin_float fig 
\layout Standard


\family typewriter 
\size scriptsize 
[root@maxroach /tmp]# cd /tmp
\layout Standard


\family typewriter 
\size scriptsize 
[root@maxroach /tmp]# mkdir matsonic
\layout Standard


\family typewriter 
\size scriptsize 
[root@maxroach /tmp]# cat > matsonic.config
\layout Standard


\family typewriter 
\size scriptsize 
target matsonic 
\layout Standard


\family typewriter 
\size scriptsize 

\protected_separator 

\layout Standard


\family typewriter 
\size scriptsize 
# Matsonic MS7308E mainboard
\layout Standard


\family typewriter 
\size scriptsize 
mainboard matsonic/ms7308e
\layout Standard


\family typewriter 
\size scriptsize 

\protected_separator 

\layout Standard


\family typewriter 
\size scriptsize 
# Enable Serial Console for debugging
\layout Standard


\family typewriter 
\size scriptsize 
option SERIAL_CONSOLE
\layout Standard


\family typewriter 
\size scriptsize 

\protected_separator 

\layout Standard


\family typewriter 
\size scriptsize 
# Enable MicroCode update and L2 Cache init for PII and PIII 
\layout Standard


\family typewriter 
\size scriptsize 
option UPDATE_MICROCODE
\layout Standard


\family typewriter 
\size scriptsize 
option CONFIGURE_L2_CACHE
\layout Standard


\family typewriter 
\size scriptsize 

\protected_separator 

\layout Standard


\family typewriter 
\size scriptsize 
# Use the internal VGA frame buffer device
\layout Standard


\family typewriter 
\size scriptsize 
option HAVE_FRAMEBUFFER
\layout Standard


\family typewriter 
\size scriptsize 

\protected_separator 

\layout Standard


\family typewriter 
\size scriptsize 
# Path to your kernel (vmlinux)
\layout Standard


\family typewriter 
\size scriptsize 
linux /usr/src/linux
\layout Standard


\family typewriter 
\size scriptsize 

\protected_separator 

\layout Standard


\family typewriter 
\size scriptsize 
# Kernel command line parameters
\layout Standard


\family typewriter 
\size scriptsize 
commandline root=/dev/hda1
\layout Standard


\family typewriter 
\size scriptsize 
[root@maxroach /tmp]# python ~/src/freebios/util/config/NLBConfig.py matsonic.conf
ig ~/src/freebios
\layout Standard


\family typewriter 
\size scriptsize 
Will place Makefile, crt0.S, ldscript.ld in
\protected_separator 
 matsonic
\layout Standard


\family typewriter 
\size scriptsize 
Process config file:
\protected_separator 
 /root/src/freebios/src/mainboard/matsonic/ms7308e/Config
\layout Standard


\family typewriter 
\size scriptsize 
Process config file:
\protected_separator 
 /root/src/freebios/src/northsouthbridge/sis/630/Config
\layout Standard


\family typewriter 
\size scriptsize 
Added ram init file:
\protected_separator 
 northsouthbridge/sis/630/raminit.inc
\layout Standard


\family typewriter 
\size scriptsize 
Process config file:
\protected_separator 
 /root/src/freebios/src/cpu/p5/Config
\layout Standard


\family typewriter 
\size scriptsize 
Process config file:
\protected_separator 
 /root/src/freebios/src/cpu/p6/Config
\layout Standard


\family typewriter 
\size scriptsize 
Process config file:
\protected_separator 
 /root/src/freebios/src/lib/Config
\layout Standard


\family typewriter 
\size scriptsize 
Now Process the base files
\layout Standard


\family typewriter 
\size scriptsize 
Makebase is : /root/src/freebios/util/config/make.base :
\layout Standard


\family typewriter 
\size scriptsize 
Trying to create
\protected_separator 
 matsonic/Makefile
\layout Standard


\family typewriter 
\size scriptsize 
Trying to create
\protected_separator 
 matsonic/ldscript.ld
\layout Standard


\family typewriter 
\size scriptsize 
Trying to create
\protected_separator 
 matsonic/crt0.S
\layout Standard


\family typewriter 
\size scriptsize 
Check for crt0.S param file: /root/src/freebios/src/include/northsouthbridge/sis/
630/param.h
\layout Standard


\family typewriter 
\size scriptsize 

\protected_separator 
Adding include to crt0.S for this parameter file:
\layout Standard


\family typewriter 
\size scriptsize 

\protected_separator 
 #include <northsouthbridge/sis/630/param.h>
\layout Standard


\family typewriter 
\size scriptsize 

\protected_separator 

\layout Standard


\family typewriter 
\size scriptsize 
[root@maxroach /tmp]# 
\layout Standard


\family typewriter 
\size scriptsize 

\protected_separator 

\layout Caption


\begin_inset LatexCommand \label{samplerun}

\end_inset 

Running the config tool.
 Your output may vary somewhat.
 
\end_float 
\layout Standard

That is about all you should need to know to build most Linux kernels.
 In the next section we will cover more detail, for those who need to know
 more.
 
\layout Section

More than you need to know
\layout Standard

The config tool is written in Python, and processes files written in a little
 language.
 Most of the commands in the little language set values of variables in
 the program, or add elements to lists.
 Some of the commands result in other files being read in and processed.
 In most cases these are other configuration files.
 Commands that name hardware (such as the 
\family typewriter 
mainboard
\family default 
 command) in most cases search for a configuration file in the path TOP/src/<nam
e>/Config, where TOP represents the top of the source tree.
 For an example, see Table 
\begin_inset LatexCommand \ref{fivecommands}

\end_inset 

.
 
\layout Subsection

Commands that name resource directories.
 
\layout Standard

Resource directories contain C source code for LinuxBIOS.
 The naming of resource directories in most cases is <vendor id>/<hardware>.
 We show the resource directory commands in Table 
\begin_inset LatexCommand \ref{resourcepaths}

\end_inset 

.
 
\layout Standard

\begin_float tab 
\layout Standard
\align center \LyXTable
multicol5
14 2 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
0 0 1 0
0 0 1 0
1 0 0 0
1 0 0 0
0 0 1 0
0 0 1 0
1 0 0 0
1 0 0 0
1 1 0 0
1 1 0 0
0 1 1 0
2 1 0 "1in" ""
2 1 1 "4in" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 2 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 2 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""

Resource Name
\newline 
Path
\newline 
inboard
\newline 
TOP/src/mainboard/<vendor>/<partname>
\newline 
cpu
\newline 
TOP/src/cpu/<partname>.
 
\newline 

\newline 
NOTE: no vendor in this path.
 We did this because so much of this 
\newline 

\newline 
code is generic.
 Was this right?
\newline 
northbridge
\newline 
TOP/src/northbridge/<vendor>/<partname>
\newline 
northsouthbridge
\newline 
TOP/src/northsouthbridge/<vendor>/<partname>
\newline 

\newline 
NOTE: sets path for northbridge and southbridge, 
\newline 

\newline 
since this command is for integrated chipsets (i.e.
 SiS 630)
\newline 
southbridge
\newline 
TOP/src/southbridge/<vendor>/<partname>
\newline 
superio
\newline 
TOP/src/superio/<vendor>/<partname>
\newline 
pcibridge
\newline 
TOP/src/pcibridge/<vendor>/<partname>
\newline 
arch
\newline 
Set the architecture.
 Current valid values are i386 and alpha.
\newline 

\newline 
This command should only appear in the mainboard file.
 
\layout Caption


\begin_inset LatexCommand \label{resourcepaths}

\end_inset 

How resources are named
\end_float 
\layout Standard

The commands and their resulting path are shown in Table 
\begin_inset LatexCommand \ref{resourcepaths}

\end_inset 

.
 Each of these commands (except for superio, currently) will check for a
 Config file in the directory and process that file.
 The Config file can contain any command.
 
\layout Comment

Was it a mistake to not have a Config file for superio? There's only one
 file, but it is inconsistent.
 
\layout Standard

The configuration tool keeps track of three directories: the resource directory
 that it is currently processing (think of this as the current working directory
); the TOP of the freebios source tree; and the directory that holds the
 build (i.e.
 the target directory).
 All of these variables come into use when resource directory Config files
 are processed.
 For example, if the Config directory for northbridge specifies the file
 northbridge.c, then an object rule for northbridge.o will be added to the
 Makefile, with source being found in the resource directory.
 All source names are made relative to TOP.
 
\layout Subsection

Commands that modify the Makefile
\layout Standard

There are several commands that add rules and options to the Makefile.
 They are shown below.
 
\layout Comment

Makefile flags for the LinuxBIOS are set in a variable called CPUFLAGS,
 not in CFLAGS.
 
\layout Standard

\begin_float tab 
\layout Standard
\align center \LyXTable
multicol5
19 2 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
0 0 1 0
0 0 1 0
1 0 0 0
0 0 1 0
1 0 0 0
1 0 0 0
1 0 0 0
0 0 1 0
0 0 1 0
1 0 0 0
1 0 0 0
1 0 0 0
0 0 1 0
1 0 0 0
0 0 1 0
0 0 1 0
1 1 0 0
2 1 0 "2in" ""
2 1 1 "4in" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 2 1 0 0 0 0 "" ""
0 2 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 2 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 2 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""

Rule Name
\newline 
Result
\newline 
object <name>.o
\newline 
Add the object <name>.o to the Makefile, depending on 
\newline 

\newline 
TOP/current-directory/<name>.c.
 Add a rule for building
\newline 

\newline 
the object using cc.
 
\newline 
makerule <name> : [<deps>] ; [<rule>]
\newline 
Add a rule for <name>, depending on <deps> (
\newline 

\newline 
optional), with actions <rule> (optional).
\newline 
addaction <rule> <action>
\newline 
Add an action to an existing rule
\newline 
adddepend <rule> <dependency>
\newline 
Add a dependency to an existing rule
\newline 
makedefine <variable>=<value>
\newline 
Add a makerule to the Makefile.
 Note: if you just want
\newline 

\newline 
 to add a -Doption or -Uoption to the Makefile, use the 
\newline 

\newline 
option and nooption commands instead.
 
\newline 
option <name>
\newline 
add -D<name> to the Makefile CPUFLAGS
\newline 
nooption
\newline 
add -U<name> to the Makefile CPUFLAGS
\newline 
commandline <linux-command-line>
\newline 
Set the commandline for Linux.
 This can include spaces, e.g.
\newline 

\newline 
commandline root=/dev/hda1 console=tty0 single
\newline 
docipl <path>
\newline 
Turn on Millenium Disk On Chip Makefile options.
 This changes
\newline 

\newline 
variables for ldscript.ld, sets option for crt0.S, and sets the USE_DOC 
\newline 

\newline 
option in CPUFLAGS.
 
\newline 
linux <path>
\newline 
Set the path for Linux, assumed to be in <path>/vmlinux.
 
\layout Caption

Commands that modify the Makefile
\end_float 
\layout Subsection

Commands that modify ldscript.ld
\layout Standard

There are four commands that modify ldscript.ld.
 These commands determine the base address of the data, bss, stack, and
 LinuxBIOS code segments (not x86 segment registers, but ELF-style segments).
 These commands are currently used primarily by the docipl command.
 
\layout Standard

\begin_float tab 
\layout Standard
\align center \LyXTable
multicol5
5 2 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
1 0 0 0
1 1 0 0
8 1 0 "" ""
2 1 1 "4in" ""
0 8 1 0 0 0 0 "" ""
0 2 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""

Command 
\newline 
Action
\newline 
setdata <value>
\newline 
Set the base of data.
 Default is 0x4000.
 
\newline 
setbss <value>
\newline 
Set the base of bss.
 Default is 0x5000.
 
\newline 
setstack <value>
\newline 
Set the base of the stack.
 Default is 0x90000.
 
\newline 
setlinuxbiosbase <value>
\newline 
Set the linuxbios code base.
 Default is 0xf0000.
 
\layout Caption

The ldscript.ld commands
\end_float 
\layout Subsection

Commands that affect crt0.S
\layout Standard

The only commands that affect crt0.S are option commands.
 These set options that affect how crt0.S operates when it starts.
 The options that affect crt0.S are shown below.
 Note that except for RAMTEST, these options affect other 
\layout Standard

\begin_float tab 
\layout Standard
\align center \LyXTable
multicol5
8 2 0 0 -1 -1 -1 -1
1 1 0 0
1 0 0 0
1 0 0 0
0 0 1 0
0 0 1 0
0 0 1 0
0 0 1 0
1 1 0 0
8 1 0 "" ""
2 1 1 "4in" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 2 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 1 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""
0 8 1 0 0 0 0 "" ""

Option
\newline 
Meaning
\newline 
RAMTEST
\newline 
Run a simple RAM diagnostic after initializing SDRAM
\newline 
USE_DOC_MIL
\newline 
This option is usually set by the docipl command, and has two main effects.
 
\newline 

\newline 
It turns off the SDRAM
\newline 

\newline 
init in crt0.S (since the docipl does it).
 It also modifies the range of memory
\newline 

\newline 
used by the SDRAM test code (since we don't want SDRAM test code overwriting
\newline 

\newline 
LinuxBIOS code in SDRAM)
\newline 
SERIAL_CONSOLE
\newline 
Enables serial console output in crt0.S
\layout Caption

Options that affect crt0.S
\end_float 
\the_end
