summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2019-11-12 18:11:03 +0100
committerPatrick Georgi <pgeorgi@google.com>2019-11-18 11:47:58 +0000
commit360d94745feea766de7ef19487ba9158221faca0 (patch)
tree757402cd145f8f791cfa9594570e4d2a5d5f026c /src
parent67d59d1756423a96aca5249b59c4e3759b2f3721 (diff)
nb/intel/sandybridge: Move to C_ENVIRONMENT_BOOTBLOCK
There is some overlap between romstage and bootblock. LPC setup and BAR initialization is now done twice. The rationale is that the romstage should not depend too much on the bootblock, since it can reside in a RO fmap region. Enabling the console will be done in a followup patch. Change-Id: I4d0ba29111a5df6f19033f5ce95adcc0d9adc1fd Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/36783 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'src')
-rw-r--r--src/cpu/intel/model_206ax/Kconfig6
-rw-r--r--src/cpu/intel/model_206ax/Makefile.inc6
-rw-r--r--src/cpu/intel/model_206ax/bootblock.c37
-rw-r--r--src/mainboard/apple/macbookair4_2/Makefile.inc1
-rw-r--r--src/mainboard/asrock/b75pro3-m/Makefile.inc1
-rw-r--r--src/mainboard/asus/h61m-cs/Makefile.inc1
-rw-r--r--src/mainboard/asus/maximus_iv_gene-z/Makefile.inc1
-rw-r--r--src/mainboard/asus/p8h61-m_lx/Makefile.inc1
-rw-r--r--src/mainboard/asus/p8h61-m_pro/Makefile.inc1
-rw-r--r--src/mainboard/asus/p8z77-m_pro/Makefile.inc1
-rw-r--r--src/mainboard/compulab/intense_pc/Makefile.inc1
-rw-r--r--src/mainboard/gigabyte/ga-b75m-d3h/Makefile.inc1
-rw-r--r--src/mainboard/gigabyte/ga-h61m-s2pv/Makefile.inc1
-rw-r--r--src/mainboard/google/butterfly/Makefile.inc1
-rw-r--r--src/mainboard/google/link/Makefile.inc1
-rw-r--r--src/mainboard/google/parrot/Makefile.inc1
-rw-r--r--src/mainboard/google/stout/Makefile.inc1
-rw-r--r--src/mainboard/hp/2570p/Makefile.inc1
-rw-r--r--src/mainboard/hp/2760p/Makefile.inc1
-rw-r--r--src/mainboard/hp/8460p/Makefile.inc1
-rw-r--r--src/mainboard/hp/8470p/Makefile.inc1
-rw-r--r--src/mainboard/hp/8770w/Makefile.inc1
-rw-r--r--src/mainboard/hp/compaq_8200_elite_sff/Makefile.inc1
-rw-r--r--src/mainboard/hp/folio_9470m/Makefile.inc1
-rw-r--r--src/mainboard/hp/revolve_810_g1/Makefile.inc1
-rw-r--r--src/mainboard/hp/z220_sff_workstation/Makefile.inc1
-rw-r--r--src/mainboard/intel/dcp847ske/Makefile.inc1
-rw-r--r--src/mainboard/intel/emeraldlake2/Makefile.inc1
-rw-r--r--src/mainboard/kontron/ktqm77/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/l520/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/s230u/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/t420/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/t420s/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/t430/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/t430s/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/t520/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/t530/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/x131e/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/x1_carbon_gen1/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/x220/Makefile.inc1
-rw-r--r--src/mainboard/lenovo/x230/Makefile.inc1
-rw-r--r--src/mainboard/msi/ms7707/Makefile.inc1
-rw-r--r--src/mainboard/roda/rv11/Makefile.inc1
-rw-r--r--src/mainboard/samsung/lumpy/Makefile.inc1
-rw-r--r--src/mainboard/samsung/stumpy/Makefile.inc1
-rw-r--r--src/mainboard/sapphire/pureplatinumh61/Makefile.inc1
-rw-r--r--src/northbridge/intel/sandybridge/Kconfig4
-rw-r--r--src/northbridge/intel/sandybridge/Makefile.inc3
-rw-r--r--src/northbridge/intel/sandybridge/bootblock.c7
-rw-r--r--src/southbridge/intel/bd82x6x/Kconfig4
-rw-r--r--src/southbridge/intel/bd82x6x/Makefile.inc3
-rw-r--r--src/southbridge/intel/bd82x6x/bootblock.c16
52 files changed, 65 insertions, 64 deletions
diff --git a/src/cpu/intel/model_206ax/Kconfig b/src/cpu/intel/model_206ax/Kconfig
index 8dae6ecc30..223703eb84 100644
--- a/src/cpu/intel/model_206ax/Kconfig
+++ b/src/cpu/intel/model_206ax/Kconfig
@@ -21,10 +21,8 @@ config CPU_SPECIFIC_OPTIONS
select CPU_INTEL_COMMON_TIMEBASE
select PARALLEL_MP
select NO_FIXED_XIP_ROM_SIZE
-
-config BOOTBLOCK_CPU_INIT
- string
- default "cpu/intel/model_206ax/bootblock.c"
+ select C_ENVIRONMENT_BOOTBLOCK
+ select NO_BOOTBLOCK_CONSOLE
config SMM_TSEG_SIZE
hex
diff --git a/src/cpu/intel/model_206ax/Makefile.inc b/src/cpu/intel/model_206ax/Makefile.inc
index 391d126e77..d824da141b 100644
--- a/src/cpu/intel/model_206ax/Makefile.inc
+++ b/src/cpu/intel/model_206ax/Makefile.inc
@@ -21,7 +21,11 @@ smm-y += finalize.c
cpu_microcode_bins += $(wildcard 3rdparty/intel-microcode/intel-ucode/06-2a-*)
cpu_microcode_bins += $(wildcard 3rdparty/intel-microcode/intel-ucode/06-3a-*)
-cpu_incs-y += $(src)/cpu/intel/car/non-evict/cache_as_ram.S
+bootblock-y += bootblock.c
+bootblock-y += ../car/non-evict/cache_as_ram.S
+bootblock-y += ../../x86/early_reset.S
+bootblock-y += ../car/bootblock.c
+
postcar-y += ../car/non-evict/exit_car.S
romstage-y += ../car/romstage.c
diff --git a/src/cpu/intel/model_206ax/bootblock.c b/src/cpu/intel/model_206ax/bootblock.c
index 72b4a672c2..da0333f4bc 100644
--- a/src/cpu/intel/model_206ax/bootblock.c
+++ b/src/cpu/intel/model_206ax/bootblock.c
@@ -13,13 +13,11 @@
#include <stdint.h>
#include <arch/cpu.h>
-#include <cpu/x86/cache.h>
#include <cpu/x86/msr.h>
-#include <cpu/x86/mtrr.h>
#include <arch/io.h>
#include <halt.h>
+#include <cpu/intel/car/bootblock.h>
-#include <cpu/intel/microcode/microcode.c>
#include "model_206ax.h"
#if CONFIG(SOUTHBRIDGE_INTEL_BD82X6X) || \
@@ -30,35 +28,6 @@
#error "CPU must be paired with Intel BD82X6X or C216 southbridge"
#endif
-static void set_var_mtrr(unsigned int reg, unsigned int base, unsigned int size,
- unsigned int type)
-
-{
- /* Bit Bit 32-35 of MTRRphysMask should be set to 1 */
- /* FIXME: It only support 4G less range */
- msr_t basem, maskm;
- basem.lo = base | type;
- basem.hi = 0;
- wrmsr(MTRR_PHYS_BASE(reg), basem);
- maskm.lo = ~(size - 1) | MTRR_PHYS_MASK_VALID;
- maskm.hi = (1 << (CONFIG_CPU_ADDR_BITS - 32)) - 1;
- wrmsr(MTRR_PHYS_MASK(reg), maskm);
-}
-
-static void enable_rom_caching(void)
-{
- msr_t msr;
-
- disable_cache();
- set_var_mtrr(1, CACHE_ROM_BASE, CACHE_ROM_SIZE, MTRR_TYPE_WRPROT);
- enable_cache();
-
- /* Enable Variable MTRRs */
- msr.hi = 0x00000000;
- msr.lo = 0x00000800;
- wrmsr(MTRR_DEF_TYPE_MSR, msr);
-}
-
static void set_flex_ratio_to_tdp_nominal(void)
{
msr_t flex_ratio, msr;
@@ -109,10 +78,8 @@ static void set_flex_ratio_to_tdp_nominal(void)
halt();
}
-static void bootblock_cpu_init(void)
+void bootblock_early_cpu_init(void)
{
/* Set flex ratio and reset if needed */
set_flex_ratio_to_tdp_nominal();
- enable_rom_caching();
- intel_update_microcode_from_cbfs();
}
diff --git a/src/mainboard/apple/macbookair4_2/Makefile.inc b/src/mainboard/apple/macbookair4_2/Makefile.inc
index a41ee25641..da821939cc 100644
--- a/src/mainboard/apple/macbookair4_2/Makefile.inc
+++ b/src/mainboard/apple/macbookair4_2/Makefile.inc
@@ -1,3 +1,4 @@
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-y += gnvs.c
diff --git a/src/mainboard/asrock/b75pro3-m/Makefile.inc b/src/mainboard/asrock/b75pro3-m/Makefile.inc
index 017967b614..df00e3749e 100644
--- a/src/mainboard/asrock/b75pro3-m/Makefile.inc
+++ b/src/mainboard/asrock/b75pro3-m/Makefile.inc
@@ -13,6 +13,7 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/asus/h61m-cs/Makefile.inc b/src/mainboard/asus/h61m-cs/Makefile.inc
index ebe01aea99..af2b6742f0 100644
--- a/src/mainboard/asus/h61m-cs/Makefile.inc
+++ b/src/mainboard/asus/h61m-cs/Makefile.inc
@@ -1,2 +1,3 @@
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/asus/maximus_iv_gene-z/Makefile.inc b/src/mainboard/asus/maximus_iv_gene-z/Makefile.inc
index f81e828632..0547b4d643 100644
--- a/src/mainboard/asus/maximus_iv_gene-z/Makefile.inc
+++ b/src/mainboard/asus/maximus_iv_gene-z/Makefile.inc
@@ -14,5 +14,6 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/asus/p8h61-m_lx/Makefile.inc b/src/mainboard/asus/p8h61-m_lx/Makefile.inc
index 7c1bf9ecd4..9ee5136945 100644
--- a/src/mainboard/asus/p8h61-m_lx/Makefile.inc
+++ b/src/mainboard/asus/p8h61-m_lx/Makefile.inc
@@ -14,5 +14,6 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/asus/p8h61-m_pro/Makefile.inc b/src/mainboard/asus/p8h61-m_pro/Makefile.inc
index ea035d3876..620a9c06a2 100644
--- a/src/mainboard/asus/p8h61-m_pro/Makefile.inc
+++ b/src/mainboard/asus/p8h61-m_pro/Makefile.inc
@@ -1,3 +1,4 @@
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/asus/p8z77-m_pro/Makefile.inc b/src/mainboard/asus/p8z77-m_pro/Makefile.inc
index 0cc398a5e7..8fc0eadbcc 100644
--- a/src/mainboard/asus/p8z77-m_pro/Makefile.inc
+++ b/src/mainboard/asus/p8z77-m_pro/Makefile.inc
@@ -14,6 +14,7 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/compulab/intense_pc/Makefile.inc b/src/mainboard/compulab/intense_pc/Makefile.inc
index ea035d3876..620a9c06a2 100644
--- a/src/mainboard/compulab/intense_pc/Makefile.inc
+++ b/src/mainboard/compulab/intense_pc/Makefile.inc
@@ -1,3 +1,4 @@
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/gigabyte/ga-b75m-d3h/Makefile.inc b/src/mainboard/gigabyte/ga-b75m-d3h/Makefile.inc
index 07fc277c28..f5b33bd644 100644
--- a/src/mainboard/gigabyte/ga-b75m-d3h/Makefile.inc
+++ b/src/mainboard/gigabyte/ga-b75m-d3h/Makefile.inc
@@ -13,6 +13,7 @@
## GNU General Public License for more details.
##
+bootblock-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += variants/$(VARIANT_DIR)/gma-mainboard.ads
diff --git a/src/mainboard/gigabyte/ga-h61m-s2pv/Makefile.inc b/src/mainboard/gigabyte/ga-h61m-s2pv/Makefile.inc
index fe7cc81bb9..5166ce06af 100644
--- a/src/mainboard/gigabyte/ga-h61m-s2pv/Makefile.inc
+++ b/src/mainboard/gigabyte/ga-h61m-s2pv/Makefile.inc
@@ -1,3 +1,4 @@
+bootblock-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/gpio.c
ramstage-y += variants/$(VARIANT_DIR)/hda_verb.c
diff --git a/src/mainboard/google/butterfly/Makefile.inc b/src/mainboard/google/butterfly/Makefile.inc
index b6654b8c0a..fa9a4a9068 100644
--- a/src/mainboard/google/butterfly/Makefile.inc
+++ b/src/mainboard/google/butterfly/Makefile.inc
@@ -17,6 +17,7 @@ ramstage-y += ec.c
romstage-y += chromeos.c
ramstage-y += chromeos.c
+bootblock-y += gpio.c
romstage-y += gpio.c
smm-y += mainboard_smi.c
diff --git a/src/mainboard/google/link/Makefile.inc b/src/mainboard/google/link/Makefile.inc
index e6c7be181c..724150c138 100644
--- a/src/mainboard/google/link/Makefile.inc
+++ b/src/mainboard/google/link/Makefile.inc
@@ -40,4 +40,5 @@ $(SPD_BIN): $(SPD_DEPS)
cbfs-files-y += spd.bin
spd.bin-file := $(SPD_BIN)
spd.bin-type := spd
+bootblock-y += gpio.c
romstage-y += gpio.c
diff --git a/src/mainboard/google/parrot/Makefile.inc b/src/mainboard/google/parrot/Makefile.inc
index 393d582995..67324bdff0 100644
--- a/src/mainboard/google/parrot/Makefile.inc
+++ b/src/mainboard/google/parrot/Makefile.inc
@@ -17,6 +17,7 @@ ramstage-y += ec.c
romstage-$(CONFIG_CHROMEOS) += chromeos.c
ramstage-$(CONFIG_CHROMEOS) += chromeos.c
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/google/stout/Makefile.inc b/src/mainboard/google/stout/Makefile.inc
index f4f2284de4..59ac22dbae 100644
--- a/src/mainboard/google/stout/Makefile.inc
+++ b/src/mainboard/google/stout/Makefile.inc
@@ -22,6 +22,7 @@ smm-y += mainboard_smi.c
smm-y += ec.c
SRC_ROOT = $(src)/mainboard/google/stout
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/hp/2570p/Makefile.inc b/src/mainboard/hp/2570p/Makefile.inc
index 7a00ccebd7..4fbf73bbd3 100644
--- a/src/mainboard/hp/2570p/Makefile.inc
+++ b/src/mainboard/hp/2570p/Makefile.inc
@@ -13,6 +13,7 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/hp/2760p/Makefile.inc b/src/mainboard/hp/2760p/Makefile.inc
index 7a00ccebd7..4fbf73bbd3 100644
--- a/src/mainboard/hp/2760p/Makefile.inc
+++ b/src/mainboard/hp/2760p/Makefile.inc
@@ -13,6 +13,7 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/hp/8460p/Makefile.inc b/src/mainboard/hp/8460p/Makefile.inc
index 7a00ccebd7..4fbf73bbd3 100644
--- a/src/mainboard/hp/8460p/Makefile.inc
+++ b/src/mainboard/hp/8460p/Makefile.inc
@@ -13,6 +13,7 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/hp/8470p/Makefile.inc b/src/mainboard/hp/8470p/Makefile.inc
index 7a00ccebd7..4fbf73bbd3 100644
--- a/src/mainboard/hp/8470p/Makefile.inc
+++ b/src/mainboard/hp/8470p/Makefile.inc
@@ -13,6 +13,7 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/hp/8770w/Makefile.inc b/src/mainboard/hp/8770w/Makefile.inc
index d57c9b5707..910d6a6191 100644
--- a/src/mainboard/hp/8770w/Makefile.inc
+++ b/src/mainboard/hp/8770w/Makefile.inc
@@ -13,4 +13,5 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
diff --git a/src/mainboard/hp/compaq_8200_elite_sff/Makefile.inc b/src/mainboard/hp/compaq_8200_elite_sff/Makefile.inc
index ebe01aea99..af2b6742f0 100644
--- a/src/mainboard/hp/compaq_8200_elite_sff/Makefile.inc
+++ b/src/mainboard/hp/compaq_8200_elite_sff/Makefile.inc
@@ -1,2 +1,3 @@
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/hp/folio_9470m/Makefile.inc b/src/mainboard/hp/folio_9470m/Makefile.inc
index 7a00ccebd7..4fbf73bbd3 100644
--- a/src/mainboard/hp/folio_9470m/Makefile.inc
+++ b/src/mainboard/hp/folio_9470m/Makefile.inc
@@ -13,6 +13,7 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/hp/revolve_810_g1/Makefile.inc b/src/mainboard/hp/revolve_810_g1/Makefile.inc
index 7a211f4aad..574f56e107 100644
--- a/src/mainboard/hp/revolve_810_g1/Makefile.inc
+++ b/src/mainboard/hp/revolve_810_g1/Makefile.inc
@@ -13,6 +13,7 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/hp/z220_sff_workstation/Makefile.inc b/src/mainboard/hp/z220_sff_workstation/Makefile.inc
index ebe01aea99..af2b6742f0 100644
--- a/src/mainboard/hp/z220_sff_workstation/Makefile.inc
+++ b/src/mainboard/hp/z220_sff_workstation/Makefile.inc
@@ -1,2 +1,3 @@
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/intel/dcp847ske/Makefile.inc b/src/mainboard/intel/dcp847ske/Makefile.inc
index 96bac06a0a..ec86d8455d 100644
--- a/src/mainboard/intel/dcp847ske/Makefile.inc
+++ b/src/mainboard/intel/dcp847ske/Makefile.inc
@@ -1,4 +1,5 @@
romstage-y += early_southbridge.c
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
smm-y += smihandler.c
diff --git a/src/mainboard/intel/emeraldlake2/Makefile.inc b/src/mainboard/intel/emeraldlake2/Makefile.inc
index b3bf53f028..974241dcc2 100644
--- a/src/mainboard/intel/emeraldlake2/Makefile.inc
+++ b/src/mainboard/intel/emeraldlake2/Makefile.inc
@@ -15,4 +15,5 @@
romstage-y += chromeos.c
ramstage-y += chromeos.c
+bootblock-y += gpio.c
romstage-y += gpio.c
diff --git a/src/mainboard/kontron/ktqm77/Makefile.inc b/src/mainboard/kontron/ktqm77/Makefile.inc
index ea035d3876..620a9c06a2 100644
--- a/src/mainboard/kontron/ktqm77/Makefile.inc
+++ b/src/mainboard/kontron/ktqm77/Makefile.inc
@@ -1,3 +1,4 @@
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/lenovo/l520/Makefile.inc b/src/mainboard/lenovo/l520/Makefile.inc
index 2ce116f90c..14cd059011 100644
--- a/src/mainboard/lenovo/l520/Makefile.inc
+++ b/src/mainboard/lenovo/l520/Makefile.inc
@@ -14,6 +14,7 @@
##
romstage-y += romstage.c
+bootblock-y += gpio.c
romstage-y += gpio.c
smm-y += smihandler.c
diff --git a/src/mainboard/lenovo/s230u/Makefile.inc b/src/mainboard/lenovo/s230u/Makefile.inc
index 88626a275a..aa4c4f879d 100644
--- a/src/mainboard/lenovo/s230u/Makefile.inc
+++ b/src/mainboard/lenovo/s230u/Makefile.inc
@@ -1,3 +1,4 @@
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-y += ec.c
smm-y += smihandler.c
diff --git a/src/mainboard/lenovo/t420/Makefile.inc b/src/mainboard/lenovo/t420/Makefile.inc
index 30cf715194..3914f51561 100644
--- a/src/mainboard/lenovo/t420/Makefile.inc
+++ b/src/mainboard/lenovo/t420/Makefile.inc
@@ -14,6 +14,7 @@
##
smm-y += smihandler.c
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/lenovo/t420s/Makefile.inc b/src/mainboard/lenovo/t420s/Makefile.inc
index 30cf715194..3914f51561 100644
--- a/src/mainboard/lenovo/t420s/Makefile.inc
+++ b/src/mainboard/lenovo/t420s/Makefile.inc
@@ -14,6 +14,7 @@
##
smm-y += smihandler.c
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/lenovo/t430/Makefile.inc b/src/mainboard/lenovo/t430/Makefile.inc
index 558ab0a966..409d4842a9 100644
--- a/src/mainboard/lenovo/t430/Makefile.inc
+++ b/src/mainboard/lenovo/t430/Makefile.inc
@@ -1,4 +1,5 @@
romstage-y += romstage.c
+bootblock-y += gpio.c
romstage-y += gpio.c
smm-y += smihandler.c
diff --git a/src/mainboard/lenovo/t430s/Makefile.inc b/src/mainboard/lenovo/t430s/Makefile.inc
index 4008f5ab07..425047fe44 100644
--- a/src/mainboard/lenovo/t430s/Makefile.inc
+++ b/src/mainboard/lenovo/t430s/Makefile.inc
@@ -14,6 +14,7 @@
##
smm-y += smihandler.c
+bootblock-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/romstage.c
ramstage-y += variants/$(VARIANT_DIR)/hda_verb.c
diff --git a/src/mainboard/lenovo/t520/Makefile.inc b/src/mainboard/lenovo/t520/Makefile.inc
index ee4669c055..5310bbf530 100644
--- a/src/mainboard/lenovo/t520/Makefile.inc
+++ b/src/mainboard/lenovo/t520/Makefile.inc
@@ -14,6 +14,7 @@
##
smm-y += smihandler.c
+bootblock-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/romstage.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/lenovo/t530/Makefile.inc b/src/mainboard/lenovo/t530/Makefile.inc
index ee4669c055..5310bbf530 100644
--- a/src/mainboard/lenovo/t530/Makefile.inc
+++ b/src/mainboard/lenovo/t530/Makefile.inc
@@ -14,6 +14,7 @@
##
smm-y += smihandler.c
+bootblock-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/romstage.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/lenovo/x131e/Makefile.inc b/src/mainboard/lenovo/x131e/Makefile.inc
index 7a00ccebd7..4fbf73bbd3 100644
--- a/src/mainboard/lenovo/x131e/Makefile.inc
+++ b/src/mainboard/lenovo/x131e/Makefile.inc
@@ -13,6 +13,7 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/lenovo/x1_carbon_gen1/Makefile.inc b/src/mainboard/lenovo/x1_carbon_gen1/Makefile.inc
index 63b41a49a2..8ce77fc77d 100644
--- a/src/mainboard/lenovo/x1_carbon_gen1/Makefile.inc
+++ b/src/mainboard/lenovo/x1_carbon_gen1/Makefile.inc
@@ -16,6 +16,7 @@
subdirs-y += spd
smm-y += smihandler.c
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/lenovo/x220/Makefile.inc b/src/mainboard/lenovo/x220/Makefile.inc
index a1cbc4cea5..c0ba457c57 100644
--- a/src/mainboard/lenovo/x220/Makefile.inc
+++ b/src/mainboard/lenovo/x220/Makefile.inc
@@ -14,6 +14,7 @@
##
smm-y += smihandler.c
+bootblock-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/gpio.c
romstage-y += variants/$(VARIANT_DIR)/romstage.c
diff --git a/src/mainboard/lenovo/x230/Makefile.inc b/src/mainboard/lenovo/x230/Makefile.inc
index 30cf715194..3914f51561 100644
--- a/src/mainboard/lenovo/x230/Makefile.inc
+++ b/src/mainboard/lenovo/x230/Makefile.inc
@@ -14,6 +14,7 @@
##
smm-y += smihandler.c
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/msi/ms7707/Makefile.inc b/src/mainboard/msi/ms7707/Makefile.inc
index 3dae61e8a8..0ec849f5b5 100644
--- a/src/mainboard/msi/ms7707/Makefile.inc
+++ b/src/mainboard/msi/ms7707/Makefile.inc
@@ -1 +1,2 @@
+bootblock-y += gpio.c
romstage-y += gpio.c
diff --git a/src/mainboard/roda/rv11/Makefile.inc b/src/mainboard/roda/rv11/Makefile.inc
index 5b5ca65a52..422b448e24 100644
--- a/src/mainboard/roda/rv11/Makefile.inc
+++ b/src/mainboard/roda/rv11/Makefile.inc
@@ -13,6 +13,7 @@
## GNU General Public License for more details.
##
+bootblock-y += gpio.c
romstage-y += gpio.c
romstage-y += variants/$(VARIANT_DIR)/romstage.c
diff --git a/src/mainboard/samsung/lumpy/Makefile.inc b/src/mainboard/samsung/lumpy/Makefile.inc
index 7f8f9663d7..3e28bd4878 100644
--- a/src/mainboard/samsung/lumpy/Makefile.inc
+++ b/src/mainboard/samsung/lumpy/Makefile.inc
@@ -27,6 +27,7 @@ $(SPD_BIN):
cbfs-files-y += spd.bin
spd.bin-file := $(SPD_BIN)
spd.bin-type := spd
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/samsung/stumpy/Makefile.inc b/src/mainboard/samsung/stumpy/Makefile.inc
index a91a06193a..497accadb9 100644
--- a/src/mainboard/samsung/stumpy/Makefile.inc
+++ b/src/mainboard/samsung/stumpy/Makefile.inc
@@ -15,6 +15,7 @@
romstage-y += chromeos.c
ramstage-y += chromeos.c
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/mainboard/sapphire/pureplatinumh61/Makefile.inc b/src/mainboard/sapphire/pureplatinumh61/Makefile.inc
index 7c555f9c32..4cf022a474 100644
--- a/src/mainboard/sapphire/pureplatinumh61/Makefile.inc
+++ b/src/mainboard/sapphire/pureplatinumh61/Makefile.inc
@@ -14,6 +14,7 @@
# GNU General Public License for more details.
#
+bootblock-y += gpio.c
romstage-y += gpio.c
ramstage-$(CONFIG_MAINBOARD_USE_LIBGFXINIT) += gma-mainboard.ads
diff --git a/src/northbridge/intel/sandybridge/Kconfig b/src/northbridge/intel/sandybridge/Kconfig
index 288dd093bf..0502b50014 100644
--- a/src/northbridge/intel/sandybridge/Kconfig
+++ b/src/northbridge/intel/sandybridge/Kconfig
@@ -62,10 +62,6 @@ config VGA_BIOS_ID
string
default "8086,0106"
-config BOOTBLOCK_NORTHBRIDGE_INIT
- string
- default "northbridge/intel/sandybridge/bootblock.c"
-
config MMCONF_BASE_ADDRESS
hex
default 0xf0000000
diff --git a/src/northbridge/intel/sandybridge/Makefile.inc b/src/northbridge/intel/sandybridge/Makefile.inc
index 77d1fdbb84..7390d2b40b 100644
--- a/src/northbridge/intel/sandybridge/Makefile.inc
+++ b/src/northbridge/intel/sandybridge/Makefile.inc
@@ -15,6 +15,8 @@
ifeq ($(CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE),y)
+bootblock-y += bootblock.c
+
ramstage-y += memmap.c
ramstage-y += northbridge.c
ramstage-y += pcie.c
@@ -44,7 +46,6 @@ mrc.bin-type := mrc
endif
romstage-y += romstage.c
romstage-y += early_init.c
-romstage-y += ../../../arch/x86/walkcbfs.S
smm-y += finalize.c
diff --git a/src/northbridge/intel/sandybridge/bootblock.c b/src/northbridge/intel/sandybridge/bootblock.c
index 15e2de1bcc..40819bf7eb 100644
--- a/src/northbridge/intel/sandybridge/bootblock.c
+++ b/src/northbridge/intel/sandybridge/bootblock.c
@@ -12,11 +12,10 @@
*/
#include <device/pci_ops.h>
+#include <cpu/intel/car/bootblock.h>
+#include "sandybridge.h"
-/* Just re-define this instead of including sandybridge.h. It blows up romcc. */
-#define PCIEXBAR 0x60
-
-static void bootblock_northbridge_init(void)
+void bootblock_early_northbridge_init(void)
{
uint32_t reg;
diff --git a/src/southbridge/intel/bd82x6x/Kconfig b/src/southbridge/intel/bd82x6x/Kconfig
index c01e2b9eed..1c7e9b7da6 100644
--- a/src/southbridge/intel/bd82x6x/Kconfig
+++ b/src/southbridge/intel/bd82x6x/Kconfig
@@ -57,10 +57,6 @@ config DRAM_RESET_GATE_GPIO
int
default 60
-config BOOTBLOCK_SOUTHBRIDGE_INIT
- string
- default "southbridge/intel/bd82x6x/bootblock.c"
-
config SERIRQ_CONTINUOUS_MODE
bool
default n
diff --git a/src/southbridge/intel/bd82x6x/Makefile.inc b/src/southbridge/intel/bd82x6x/Makefile.inc
index b23fa7a327..5140d23388 100644
--- a/src/southbridge/intel/bd82x6x/Makefile.inc
+++ b/src/southbridge/intel/bd82x6x/Makefile.inc
@@ -15,6 +15,9 @@
ifeq ($(CONFIG_SOUTHBRIDGE_INTEL_C216)$(CONFIG_SOUTHBRIDGE_INTEL_BD82X6X),y)
+bootblock-y += bootblock.c
+bootblock-y += early_pch.c
+
ramstage-y += pch.c
ramstage-y += azalia.c
ramstage-y += lpc.c
diff --git a/src/southbridge/intel/bd82x6x/bootblock.c b/src/southbridge/intel/bd82x6x/bootblock.c
index 0086fe3281..1a8242f8d4 100644
--- a/src/southbridge/intel/bd82x6x/bootblock.c
+++ b/src/southbridge/intel/bd82x6x/bootblock.c
@@ -13,6 +13,7 @@
* GNU General Public License for more details.
*/
+#include <cpu/intel/car/bootblock.h>
#include <device/pci_ops.h>
#include "pch.h"
@@ -32,18 +33,8 @@ static void enable_spi_prefetch(void)
static void enable_port80_on_lpc(void)
{
- pci_devfn_t dev = PCH_LPC_DEV;
-
/* Enable port 80 POST on LPC */
- pci_write_config32(dev, RCBA, (uintptr_t)DEFAULT_RCBA | 1);
-#if 0
RCBA32(GCS) &= (~0x04);
-#else
- volatile u32 *gcs = (volatile u32 *)(DEFAULT_RCBA + GCS);
- u32 reg32 = *gcs;
- reg32 = reg32 & ~0x04;
- *gcs = reg32;
-#endif
}
static void set_spi_speed(void)
@@ -66,9 +57,12 @@ static void set_spi_speed(void)
RCBA8(0x3893) = ssfc;
}
-static void bootblock_southbridge_init(void)
+void bootblock_early_southbridge_init(void)
{
enable_spi_prefetch();
+
+ early_pch_init();
+
enable_port80_on_lpc();
set_spi_speed();