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>
This commit is contained in:
Lubomir Rintel
2017-04-03 15:35:09 +02:00
committed by Martin Roth
parent 38d1eb4403
commit b0161fd2d8
14 changed files with 23 additions and 20 deletions

View File

@@ -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 */

View File

@@ -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

View File

@@ -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(".");

View File

@@ -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);