summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2017-04-03 15:35:09 +0200
committerMartin Roth <martinroth@google.com>2017-04-14 17:20:26 +0200
commitb0161fd2d8679882a50d1f3ce55cdf69278aa32f (patch)
tree4e1afe4ceae7eec8b832a61fa1de9da079b856ef
parent38d1eb44031eb023f00d52481fc77286d28e5157 (diff)
downloadcoreboot-b0161fd2d8679882a50d1f3ce55cdf69278aa32f.tar.xz
southbridge/via/vt8237r: Get rid of #include early_smbus.c
Use linker instead of '#include *.c'. The smbus_fixup() was changed not to use a structure that's defined by a northbridge since multiple different northbridges can be used. Instead the caller now directly passed the memory slot details. Change-Id: Ia369ece6365accbc531736fc463c713bbc134807 Signed-off-by: Lubomir Rintel <lkundrak@v3.sk> Reviewed-on: https://review.coreboot.org/19082 Tested-by: build bot (Jenkins) Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
-rw-r--r--src/mainboard/asus/a8v-e_deluxe/romstage.c2
-rw-r--r--src/mainboard/asus/a8v-e_se/romstage.c2
-rw-r--r--src/mainboard/asus/k8v-x/romstage.c2
-rw-r--r--src/mainboard/asus/m2v-mx_se/romstage.c2
-rw-r--r--src/mainboard/asus/m2v/romstage.c2
-rw-r--r--src/mainboard/bcom/winnetp680/romstage.c4
-rw-r--r--src/mainboard/jetway/j7f2/romstage.c4
-rw-r--r--src/mainboard/via/epia-cn/romstage.c4
-rw-r--r--src/mainboard/via/epia-m700/romstage.c2
-rw-r--r--src/mainboard/via/pc2500e/romstage.c4
-rw-r--r--src/southbridge/via/k8t890/early_car.c1
-rw-r--r--src/southbridge/via/vt8237r/Makefile.inc1
-rw-r--r--src/southbridge/via/vt8237r/early_smbus.c10
-rw-r--r--src/southbridge/via/vt8237r/vt8237r.h3
14 files changed, 23 insertions, 20 deletions
diff --git a/src/mainboard/asus/a8v-e_deluxe/romstage.c b/src/mainboard/asus/a8v-e_deluxe/romstage.c
index 4f942b5cc9..c6ea08da26 100644
--- a/src/mainboard/asus/a8v-e_deluxe/romstage.c
+++ b/src/mainboard/asus/a8v-e_deluxe/romstage.c
@@ -37,7 +37,7 @@ unsigned int get_sbdn(unsigned bus);
#include "northbridge/amd/amdk8/early_ht.c"
#include <superio/winbond/common/winbond.h>
#include <superio/winbond/w83627ehg/w83627ehg.h>
-#include "southbridge/via/vt8237r/early_smbus.c"
+#include <southbridge/via/vt8237r/vt8237r.h>
#include "northbridge/amd/amdk8/debug.c" /* After vt8237r/early_smbus.c! */
#include <cpu/x86/bist.h>
#include "northbridge/amd/amdk8/setup_resource_map.c"
diff --git a/src/mainboard/asus/a8v-e_se/romstage.c b/src/mainboard/asus/a8v-e_se/romstage.c
index 2530aee96e..f2465d03c8 100644
--- a/src/mainboard/asus/a8v-e_se/romstage.c
+++ b/src/mainboard/asus/a8v-e_se/romstage.c
@@ -37,7 +37,7 @@ unsigned int get_sbdn(unsigned bus);
#include "northbridge/amd/amdk8/early_ht.c"
#include <superio/winbond/common/winbond.h>
#include <superio/winbond/w83627ehg/w83627ehg.h>
-#include "southbridge/via/vt8237r/early_smbus.c"
+#include <southbridge/via/vt8237r/vt8237r.h>
#include "northbridge/amd/amdk8/debug.c" /* After vt8237r/early_smbus.c! */
#include <cpu/x86/bist.h>
#include "northbridge/amd/amdk8/setup_resource_map.c"
diff --git a/src/mainboard/asus/k8v-x/romstage.c b/src/mainboard/asus/k8v-x/romstage.c
index 2f7c3df310..a0565a9ce7 100644
--- a/src/mainboard/asus/k8v-x/romstage.c
+++ b/src/mainboard/asus/k8v-x/romstage.c
@@ -37,7 +37,7 @@ unsigned int get_sbdn(unsigned bus);
#include "northbridge/amd/amdk8/early_ht.c"
#include <superio/winbond/common/winbond.h>
#include <superio/winbond/w83697hf/w83697hf.h>
-#include "southbridge/via/vt8237r/early_smbus.c"
+#include <southbridge/via/vt8237r/vt8237r.h>
#include "northbridge/amd/amdk8/debug.c" /* After vt8237r/early_smbus.c! */
#include <cpu/x86/bist.h>
#include "northbridge/amd/amdk8/setup_resource_map.c"
diff --git a/src/mainboard/asus/m2v-mx_se/romstage.c b/src/mainboard/asus/m2v-mx_se/romstage.c
index 2efcb6c33a..8aea021081 100644
--- a/src/mainboard/asus/m2v-mx_se/romstage.c
+++ b/src/mainboard/asus/m2v-mx_se/romstage.c
@@ -37,7 +37,7 @@ unsigned int get_sbdn(unsigned bus);
#include "northbridge/amd/amdk8/debug.c"
#include <superio/ite/common/ite.h>
#include <superio/ite/it8712f/it8712f.h>
-#include "southbridge/via/vt8237r/early_smbus.c"
+#include <southbridge/via/vt8237r/vt8237r.h>
#include <cpu/x86/bist.h>
#include "northbridge/amd/amdk8/setup_resource_map.c"
#include <spd.h>
diff --git a/src/mainboard/asus/m2v/romstage.c b/src/mainboard/asus/m2v/romstage.c
index c61557b2dd..e8053424e3 100644
--- a/src/mainboard/asus/m2v/romstage.c
+++ b/src/mainboard/asus/m2v/romstage.c
@@ -37,7 +37,7 @@ unsigned int get_sbdn(unsigned bus);
#include "northbridge/amd/amdk8/debug.c"
#include <superio/ite/common/ite.h>
#include <superio/ite/it8712f/it8712f.h>
-#include "southbridge/via/vt8237r/early_smbus.c"
+#include <southbridge/via/vt8237r/vt8237r.h>
#include <cpu/x86/bist.h>
#include "northbridge/amd/amdk8/setup_resource_map.c"
#include <spd.h>
diff --git a/src/mainboard/bcom/winnetp680/romstage.c b/src/mainboard/bcom/winnetp680/romstage.c
index 0c56074398..9ac02d033e 100644
--- a/src/mainboard/bcom/winnetp680/romstage.c
+++ b/src/mainboard/bcom/winnetp680/romstage.c
@@ -27,7 +27,7 @@
#include <delay.h>
#include <lib.h>
#include <spd.h>
-#include "southbridge/via/vt8237r/early_smbus.c"
+#include <southbridge/via/vt8237r/vt8237r.h>
#include <superio/winbond/common/winbond.h>
#include <superio/winbond/w83697hf/w83697hf.h>
@@ -84,7 +84,7 @@ void main(unsigned long bist)
console_init();
enable_smbus();
- smbus_fixup(&ctrl);
+ smbus_fixup(ctrl.channel0, ARRAY_SIZE(ctrl.channel0));
/* Halt if there was a built-in self test failure. */
report_bist_failure(bist);
diff --git a/src/mainboard/jetway/j7f2/romstage.c b/src/mainboard/jetway/j7f2/romstage.c
index 393f5e6764..5aee95d7cd 100644
--- a/src/mainboard/jetway/j7f2/romstage.c
+++ b/src/mainboard/jetway/j7f2/romstage.c
@@ -25,7 +25,7 @@
#include <cpu/x86/bist.h>
#include <cpu/amd/car.h>
#include <delay.h>
-#include "southbridge/via/vt8237r/early_smbus.c"
+#include <southbridge/via/vt8237r/vt8237r.h>
#include <superio/fintek/common/fintek.h>
#include <superio/fintek/f71805f/f71805f.h>
#include <lib.h>
@@ -88,7 +88,7 @@ void main(unsigned long bist)
console_init();
enable_smbus();
- smbus_fixup(&ctrl);
+ smbus_fixup(ctrl.channel0, ARRAY_SIZE(ctrl.channel0));
/* Halt if there was a built-in self test failure. */
report_bist_failure(bist);
diff --git a/src/mainboard/via/epia-cn/romstage.c b/src/mainboard/via/epia-cn/romstage.c
index 5293aa6387..27c1a46c6c 100644
--- a/src/mainboard/via/epia-cn/romstage.c
+++ b/src/mainboard/via/epia-cn/romstage.c
@@ -26,7 +26,7 @@
#include <cpu/x86/bist.h>
#include <cpu/amd/car.h>
#include <delay.h>
-#include "southbridge/via/vt8237r/early_smbus.c"
+#include <southbridge/via/vt8237r/vt8237r.h>
#include "southbridge/via/vt8237r/early_serial.c"
#include <spd.h>
@@ -80,7 +80,7 @@ void main(unsigned long bist)
enable_vt8237r_serial();
console_init();
enable_smbus();
- smbus_fixup(&ctrl);
+ smbus_fixup(ctrl.channel0, ARRAY_SIZE(ctrl.channel0));
report_bist_failure(bist);
enable_mainboard_devices();
ddr_ram_setup(&ctrl);
diff --git a/src/mainboard/via/epia-m700/romstage.c b/src/mainboard/via/epia-m700/romstage.c
index 1c10115492..57b59495c0 100644
--- a/src/mainboard/via/epia-m700/romstage.c
+++ b/src/mainboard/via/epia-m700/romstage.c
@@ -439,7 +439,7 @@ void main(unsigned long bist)
enable_smbus();
/* This fix does help vx800!, but vx855 doesn't need this. */
- /* smbus_fixup(&ctrl); */
+ /* smbus_fixup(ctrl.channel0, ARRAY_SIZE(ctrl.channel0)); */
/* Halt if there was a built-in self test failure. */
report_bist_failure(bist);
diff --git a/src/mainboard/via/pc2500e/romstage.c b/src/mainboard/via/pc2500e/romstage.c
index 2f002be40e..7a2edbfd43 100644
--- a/src/mainboard/via/pc2500e/romstage.c
+++ b/src/mainboard/via/pc2500e/romstage.c
@@ -26,7 +26,7 @@
#include <cpu/x86/bist.h>
#include <cpu/amd/car.h>
#include <delay.h>
-#include "southbridge/via/vt8237r/early_smbus.c"
+#include <southbridge/via/vt8237r/vt8237r.h>
#include <superio/ite/common/ite.h>
#include <superio/ite/it8716f/it8716f.h>
#include <spd.h>
@@ -56,7 +56,7 @@ void main(unsigned long bist)
ite_enable_serial(SERIAL_DEV, CONFIG_TTYS0_BASE);
console_init();
enable_smbus();
- smbus_fixup(&ctrl);
+ smbus_fixup(ctrl.channel0, ARRAY_SIZE(ctrl.channel0));
report_bist_failure(bist);
ddr_ram_setup(&ctrl);
}
diff --git a/src/southbridge/via/k8t890/early_car.c b/src/southbridge/via/k8t890/early_car.c
index efb6860045..22a6a47ab4 100644
--- a/src/southbridge/via/k8t890/early_car.c
+++ b/src/southbridge/via/k8t890/early_car.c
@@ -22,6 +22,7 @@
#include <stdlib.h>
#include <cbmem.h>
#include <arch/io.h>
+#include <arch/acpi.h>
#include "k8x8xx.h"
/* The 256 bytes of NVRAM for S3 storage, 256B aligned */
diff --git a/src/southbridge/via/vt8237r/Makefile.inc b/src/southbridge/via/vt8237r/Makefile.inc
index 6c62dbc20c..e8946a5d61 100644
--- a/src/southbridge/via/vt8237r/Makefile.inc
+++ b/src/southbridge/via/vt8237r/Makefile.inc
@@ -24,6 +24,7 @@ ramstage-y += usb.c
ramstage-$(CONFIG_PIRQ_ROUTE) += pirq.c
ramstage-$(CONFIG_HAVE_ACPI_TABLES) += fadt.c
ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smi.c
+romstage-y += early_smbus.c
smm-$(CONFIG_HAVE_SMI_HANDLER) += smihandler.c
endif
diff --git a/src/southbridge/via/vt8237r/early_smbus.c b/src/southbridge/via/vt8237r/early_smbus.c
index 96a5c1b49d..3257cc241d 100644
--- a/src/southbridge/via/vt8237r/early_smbus.c
+++ b/src/southbridge/via/vt8237r/early_smbus.c
@@ -18,6 +18,9 @@
#if !defined(__ROMCC__)
#include <arch/acpi.h>
#endif
+#include <console/console.h>
+#include <arch/io.h>
+#include <device/pci_def.h>
#include <device/pci_ids.h>
#include <spd.h>
#include <stdlib.h>
@@ -218,12 +221,11 @@ void enable_smbus(void)
*
* @param ctrl The memory controller and SMBus addresses.
*/
-void smbus_fixup(const struct mem_controller *ctrl)
+void smbus_fixup(const u8 channel0[], int ram_slots)
{
- int i, ram_slots, current_slot = 0;
+ int i, current_slot = 0;
u8 result = 0;
- ram_slots = ARRAY_SIZE(ctrl->channel0);
if (!ram_slots) {
printk(BIOS_ERR, "smbus_fixup() thinks there are no RAM slots!\n");
return;
@@ -242,7 +244,7 @@ void smbus_fixup(const struct mem_controller *ctrl)
if (current_slot > ram_slots)
current_slot = 0;
- result = smbus_read_byte(ctrl->channel0[current_slot],
+ result = smbus_read_byte(channel0[current_slot],
SPD_MEMORY_TYPE);
current_slot++;
PRINT_DEBUG(".");
diff --git a/src/southbridge/via/vt8237r/vt8237r.h b/src/southbridge/via/vt8237r/vt8237r.h
index d745b49af2..95f9750a40 100644
--- a/src/southbridge/via/vt8237r/vt8237r.h
+++ b/src/southbridge/via/vt8237r/vt8237r.h
@@ -136,8 +136,7 @@ struct vt8237_network_rom {
u8 smbus_read_byte(u8 dimm, u8 offset);
void smbus_write_byte(u8 dimm, u8 offset, u8 data);
void enable_smbus(void);
-void smbus_fixup(const struct mem_controller *ctrl);
-// these are in vt8237_early_smbus.c - do they really belong there?
+void smbus_fixup(const u8 channel0[], int ram_slots);
void vt8237_sb_enable_fid_vid(void);
void enable_rom_decode(void);
void vt8237_early_spi_init(void);