switch-coreboot/arch/x86/Kconfig
Ronald G. Minnich 5f27d204bc This patch extends core2 smp support to v3. It is an
adaption of the v2 code, with significant cleanup and 
simplification. It also works in CAR mode, and has no .bss or .data
usage. It provides for a way to provide AP POST codes to the BSP. 

Since one common file with amd changed (lapic.h) I have build-tested this
against serengeti and it is fine.


It builds and I'll be testing it as soon as I can find the power supply for 
the kontron (it got "borrowed"). 
Index: arch/x86/intel/core2/init_cpus.c

new file. Basically an adaptation of the v2 code to v3. All global variables
removed. One big change to note: there is a stack struct, and the 
parameters to the secondary_start are struct members. Thus the BSP 
can watch the AP, and, neater, the AP can POST to a shared variable
and the BSP can see how far it got. 

Index: arch/x86/secondary.S
.S startup for AP. 
Index: arch/x86/Kconfig
Delete a dependency. 
Index: northbridge/intel/i945/reset_test.c
Add real cold boot detection. 

Index: mainboard/kontron/986lcd-m/Makefile
Add some new build files. 

Index: mainboard/kontron/986lcd-m/stage1.c

Get rid of ' in #warning that confused some tool. 

Index: mainboard/kontron/986lcd-m/initram.c
Call init_cpus. 

Index: mainboard/kontron/Kconfig
Turn off SMM for now. 

Index: include/arch/x86/lapic.h
Correct a static inline declaration. 

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Acked-by: Stefan Reinauer <stepan@coresystems.de>




git-svn-id: svn://coreboot.org/repository/coreboot-v3@1136 f3766cd6-281f-0410-b1cd-43a5c92072e9
2009-02-21 00:05:20 +00:00

258 lines
6.5 KiB
Text

##
## This file is part of the coreboot project.
##
## Copyright (C) 2006-2007 coresystems GmbH
## (Written by Stefan Reinauer <stepan@coresystems.de> for coresystems GmbH)
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
config ARCH_X86
boolean
help
This option is used to set the architecture of a mainboard.
It is usually set in mainboard/*/Kconfig.
config ARCH
string
default x86
depends ARCH_X86
help
This is the name of the respective subdirectory in arch/.
config CPU_I586
boolean
help
CPU type. At the moment this option selects the reset vector and
Cache-as-RAM (CAR) implementation for a mainboard. See
arch/x86/Makefile for more hints on possible values.
It is usually set in mainboard/*/Kconfig.
config CPU_AMD_GEODELX
boolean
help
CPU type. At the moment this option selects the reset vector and
Cache-as-RAM (CAR) implementation for a mainboard. See
arch/x86/Makefile for more hints on possible values.
It is usually set in mainboard/*/Kconfig.
config CPU_AMD_K8
boolean
help
CPU type. At the moment this option selects the reset vector and
Cache-as-RAM (CAR) implementation for a mainboard. See
arch/x86/Makefile for more hints on possible values.
It is usually set in mainboard/*/Kconfig.
config CPU_INTEL_CORE2
boolean
help
CPU type. At the moment this option selects the reset vector and
Cache-as-RAM (CAR) implementation for a mainboard. See
arch/x86/Makefile for more hints on possible values.
It is usually set in mainboard/*/Kconfig.
config CPU_VIA_C7
boolean
help
CPU type. At the moment this option selects the reset vector and
Cache-as-RAM (CAR) implementation for a mainboard. See
arch/x86/Makefile for more hints on possible values.
It is usually set in mainboard/*/Kconfig.
config HPET
boolean
depends CPU_AMD_K8
help
Whether to configure a High Precision Event Timer (HPET). Note that
HPETs are known to be bug-prone.
config SMM
boolean
help
Whether to configure System Management Mode support.
This is mainboard-enabled. This is a tricky option that
should not be enabled/disabled casually, as some chipsets
will not work without some form of SMM enabled.
config K8_REV_F_SUPPORT
hex
default 0 if CPU_AMD_K8
help
Whether to include rev F support.
config K8_SCAN_PCI_BUS
hex
default 0 if CPU_AMD_K8
help
Whether to scan the PCI bus in stage1.
config K8_ALLOCATE_IO_RANGE
hex
default 0 if CPU_AMD_K8
help
Whether to allocate I/O space in stage1.
config K8_ALLOCATE_MMIO_RANGE
hex
default 0 if CPU_AMD_K8
help
Whether to allocate MMIO space in stage1.
Comment from code: Do we need allocate MMIO? Currently we direct
last 64M to southbridge link (sblink) only. We can not lose access
to last 4M range to ROM.
config LOGICAL_CPUS
hex
default 1
help
How many logical CPUs there are. FIXME.
config MAX_PHYSICAL_CPUS
hex
default 1
help
Maximum number of physical CPUs (sockets).
config MAX_PHYSICAL_CPUS_4_BUT_MORE_INSTALLED
hex
default 0 if CPU_AMD_K8
help
Config with 4 CPUs even if more are installed.
config CROSS_BAR_47_56
hex
default 0 if CPU_AMD_K8
help
Configure for the type of crossbar on the mainboard.
config PIRQ_TABLE
boolean
help
This option is used to determine whether the mainboard has
a PIRQ table, which is the old way to set up interrupt routing.
It is usually set in mainboard/*/Kconfig.
config ACPI_TABLE
boolean
help
This option is used to determine whether the mainboard has
an ACPI table.
It is usually set in mainboard/*/Kconfig.
config SMP
boolean
depends CPU_I586 || CPU_AMD_K8
default 0
help
This option is used to enable certain functions to make coreboot
work correctly on symmetric multi processor systems.
It is usually set in mainboard/*/Kconfig.
config IOAPIC
boolean
depends ARCH_X86 && CPU_AMD_K8 || CPU_INTEL_CORE2
default 0
help
If you want to configure an IOAPIC, set this.
config CARBASE
hex
default 0x8f000 if CPU_I586
default 0x80000 if CPU_AMD_GEODELX
default 0xc8000 if CPU_AMD_K8
default 0xffef0000 if CPU_VIA_C7
default 0xffdf8000 if CPU_INTEL_CORE2
help
This option sets the base address of the area used for CAR.
config CARSIZE
hex
default 0x1000 if CPU_I586
default 0x8000 if CPU_AMD_GEODELX
default 0x8000 if CPU_AMD_K8
default 0x8000 if CPU_VIA_C7
default 0x8000 if CPU_INTEL_CORE2
help
This option sets the size of the area used for CAR.
config MTRR
bool
default n if CPU_AMD_GEODELX
default y if CPU_AMD_K8
default y if CPU_VIA_C7
default y if CPU_INTEL_CORE2
help
This option indicates if a cpu has MTRR support.
config CBMEMK
hex
default 0x1000 if CPU_I586
default 0x1000 if CPU_AMD_GEODELX
default 0x2000 if CPU_AMD_K8
default 0x1000 if CPU_VIA_C7
default 0x1000 if CPU_INTEL_CORE2
help
This option sets the top of the memory area, in KiB,
used for coreboot.
config K8_HT_FREQ_1G_SUPPORT
hex
default 1 if CPU_AMD_K8
help
1 GHz support. Opteron E0 or later can support 1G HT,
but still depends on the mainboard.
config HT_FREQ_800MHZ
hex
default 1 if CPU_AMD_K8
help
Can we run HT at 800 MHz.
config USBDEBUG_DIRECT
boolean
depends SOUTHBRIDGE_NVIDIA_MCP55
default 0
help
Determines if we enable USB Direct debugging. If you don't have
a dongle, this is probably of no value to you.
config APIC_ID_OFFSET
hex "APIC ID offset"
default 0x10
depends IOAPIC
help
This is entirely mainboard dependent. 0x10 is a *typical* setting
but not always a good setting.
menu "Debugging"
config CARTEST
bool "Test CAR area"
default n
help
Test the CAR area after it has been set up.
config CHECK_STACK_USAGE
bool "Check stack usage"
default n
help
Continuously monitor stack usage and keep statistics.
The monitoring code is invoked from printk because printk is
a leaf function and consumes quite a bit of stack for itself.
This slows down booting a LOT.
endmenu