From b0161fd2d8679882a50d1f3ce55cdf69278aa32f Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Mon, 3 Apr 2017 15:35:09 +0200 Subject: [PATCH] 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 Reviewed-on: https://review.coreboot.org/19082 Tested-by: build bot (Jenkins) Reviewed-by: Arthur Heymans Reviewed-by: Paul Menzel --- src/mainboard/asus/a8v-e_deluxe/romstage.c | 2 +- src/mainboard/asus/a8v-e_se/romstage.c | 2 +- src/mainboard/asus/k8v-x/romstage.c | 2 +- src/mainboard/asus/m2v-mx_se/romstage.c | 2 +- src/mainboard/asus/m2v/romstage.c | 2 +- src/mainboard/bcom/winnetp680/romstage.c | 4 ++-- src/mainboard/jetway/j7f2/romstage.c | 4 ++-- src/mainboard/via/epia-cn/romstage.c | 4 ++-- src/mainboard/via/epia-m700/romstage.c | 2 +- src/mainboard/via/pc2500e/romstage.c | 4 ++-- src/southbridge/via/k8t890/early_car.c | 1 + src/southbridge/via/vt8237r/Makefile.inc | 1 + src/southbridge/via/vt8237r/early_smbus.c | 10 ++++++---- src/southbridge/via/vt8237r/vt8237r.h | 3 +-- 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 #include -#include "southbridge/via/vt8237r/early_smbus.c" +#include #include "northbridge/amd/amdk8/debug.c" /* After vt8237r/early_smbus.c! */ #include #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 #include -#include "southbridge/via/vt8237r/early_smbus.c" +#include #include "northbridge/amd/amdk8/debug.c" /* After vt8237r/early_smbus.c! */ #include #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 #include -#include "southbridge/via/vt8237r/early_smbus.c" +#include #include "northbridge/amd/amdk8/debug.c" /* After vt8237r/early_smbus.c! */ #include #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 #include -#include "southbridge/via/vt8237r/early_smbus.c" +#include #include #include "northbridge/amd/amdk8/setup_resource_map.c" #include 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 #include -#include "southbridge/via/vt8237r/early_smbus.c" +#include #include #include "northbridge/amd/amdk8/setup_resource_map.c" #include 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 #include #include -#include "southbridge/via/vt8237r/early_smbus.c" +#include #include #include @@ -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 #include #include -#include "southbridge/via/vt8237r/early_smbus.c" +#include #include #include #include @@ -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 #include #include -#include "southbridge/via/vt8237r/early_smbus.c" +#include #include "southbridge/via/vt8237r/early_serial.c" #include @@ -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 #include #include -#include "southbridge/via/vt8237r/early_smbus.c" +#include #include #include #include @@ -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 #include #include +#include #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 #endif +#include +#include +#include #include #include #include @@ -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);