mirror of
https://github.com/fail0verflow/switch-coreboot.git
synced 2025-05-04 01:39:18 -04:00
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
258 lines
6.5 KiB
Text
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
|