Add constants for fast path resume copying
[coreboot.git] / documentation / Kconfig.tex
index cecf33dd36704b35b1e6be870184aea74add8eb5..e8e3f414e7289b874040e37a6ddb590269608554 100644 (file)
@@ -21,8 +21,8 @@ Kconfig files use the source command to include subdirectories. In most cases, s
 There is only one Makefile, at the top level. All other makefiles are included as Makefile.inc. All the next-level Makefile.inc files are selected in the top level Makefile. Directories that are platform-independent are in BUILD-y; platform-dependent (e.g. Makefile.inc's that depend on architecture) are included in PLATFORM-y.
 
 Make is not recursive. There is only one make process.
-\subsection{subdir usage}
-Further includes of Makefile.inc, if needed, are done via subdir-y commands. As in Linux, the subdir can be conditional or unconditional. Conditional includes are done via subdir-\$(CONFIG\_VARIABLE) usage; unconditional are done via subdir-y.
+\subsection{subdirs usage}
+Further includes of Makefile.inc, if needed, are done via subdirs-y commands. As in Linux, the subdirs can be conditional or unconditional. Conditional includes are done via subdirs-\$(CONFIG\_VARIABLE) usage; unconditional are done via subdirs-y.
 
 We define the common rules for which variation to use below.
 \subsection{object file specification}
@@ -95,15 +95,6 @@ ldscript-y += ../../../../src/cpu/x86/16bit/reset16.lds
 ldscript-y += ../../../../src/arch/i386/lib/id.lds
 ldscript-y += ../../../../src/arch/i386/lib/failover.lds
 
-\end{verbatim}
-\subsubsection{defines}
-There are variables that should never be definable by users, as changing them will break the build or the image. These are set
-in MAINBOARD\_OPTIONS.
-\begin{verbatim}
-MAINBOARD_OPTIONS=\
-  -DCONFIG_AP_IN_SIPI_WAIT=0 \
-  -DCONFIG_USE_PRINTK_IN_CAR=1 \
-  -DCONFIG_HAVE_HIGH_TABLES=1
 \end{verbatim}
 \subsubsection{POST\_EVALUATION}
 POST\_EVALUATION rules should be placed after this section:
@@ -129,7 +120,7 @@ $(obj)/ssdt3.c: $(src)/mainboard/$(MAINBOARDDIR)/dx/pci3.asl"
   iasl -p $(CURDIR)/pci3 -tc $(CONFIG_MAINBOARD)/
   perl -pi -e 's/AmlCode/AmlCode_ssdt3/g' pci3.hex
   mv pci3.hex ssdt3.c
-  
+
 $(obj)/ssdt4.c: $(src)/mainboard/$(MAINBOARDDIR)/dx/pci4.asl"
   iasl -p $(CURDIR)/pci4 -tc $(CONFIG_MAINBOARD)/dx/pci4.asl
   perl -pi -e 's/AmlCode/AmlCode_ssdt4/g' pci4.hex
@@ -429,10 +420,6 @@ config NORTHBRIDGE_AMD_AMDK8
 config AGP_APERTURE_SIZE
   hex
   default 0x4000000
-
-config HAVE_HIGH_TABLES
-  int
-  default 1
 \end{verbatim}
 \subsubsection{northbridge/$<$vendor$>$/$<$chip$>$/Makefile.inc}
 Typically very small set of rules, and very simple.
@@ -449,10 +436,50 @@ obj-y +=  get_sblk_pci1234.o
 obj-$(CONFIG_HAVE_ACPI_TABLES) +=  amdk8_acpi.o
 \end{verbatim}
 
-\subsubsection{northbridge/Kconfig}
-
-
+\subsection{southbridge}
+\subsubsection{southbridge/Kconfig}
+No variables. Source all vendor directory Kconfigs.
+\subsubsection{southbridge/Makefile.inc}
+No variables. {\em Unconditionally} include all vendor Makefile.inc
+\subsubsection{southbridge/$<$vendor$>$/Kconfig}
+No variables. Source all chip directory Kconfigs.
+\subsubsection{southbridge/$<$vendor$>$/Makefile.inc}
+No variables. {\em Conditionally} include all chipset Makefile.inc. The variable
+is the name of the part, e.g.
+\begin{verbatim}
+subdirs-$(CONFIG_SOUTHBRIDGE_AMD_AMD8111) += amd8111
+\end{verbatim}
+.
+\subsubsection{southbridge/$<$vendor$>$/$<$chip$>$/Kconfig}
+Typically a small number of variables. One defines the part name. Here is an example
+of the variables defined for the K8.
+\begin{verbatim}
+config SOUTHBRIDGE_AMD_AMD8111
+       bool
+       default n
 
+\end{verbatim}
+\subsubsection{southbridge/$<$vendor$>$/$<$chip$>$/Makefile.inc}
+Typically very small set of rules, and very simple.
+Since this file is already conditionally included,
+we don't need to test for the chipset CONFIG variable. We
+can therefore test other variables (which is part of the reason
+we set up conditional inclusion of this file, instead
+of unconditionally including it). Here is an example from AMD 8111.
+No conditionals in this one yet.
+\begin{verbatim}
+driver-y += amd8111.o
+driver-y += amd8111_usb.o
+driver-y += amd8111_lpc.o
+driver-y += amd8111_ide.o
+driver-y += amd8111_acpi.o
+driver-y += amd8111_usb2.o
+driver-y += amd8111_ac97.o
+driver-y += amd8111_nic.o
+driver-y += amd8111_pci.o
+driver-y += amd8111_smbus.o
+obj-y += amd8111_reset.o
+\end{verbatim}
 
 \subsubsection{vendor and part}
 \subsection{southbridge}