[coreboot-gerrit] Patch set updated for coreboot: eafd40b southbridge/amd/cs5536: Make cs5536_enable_smbus() a weak symbol

Edward O'Callaghan (eocallaghan@alterapraxis.com) gerrit at coreboot.org
Sat Aug 9 17:07:10 CEST 2014


Edward O'Callaghan (eocallaghan at alterapraxis.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6554

-gerrit

commit eafd40b04690e4313b985044c72a3309137dc1dc
Author: Edward O'Callaghan <eocallaghan at alterapraxis.com>
Date:   Sun Aug 10 00:12:30 2014 +1000

    southbridge/amd/cs5536: Make cs5536_enable_smbus() a weak symbol
    
    On some boards the SMBus is hardwired and so we need to override
    cs5536_enable_smbus() with a dummy function in the board support. Thus
    we make cs5536_enable_smbus() a weak symbol.
    
    Fix boards to match by removing the .c include.
    
    Change-Id: Iada97edf0591556b64eb8b63752379fdf0366ece
    Signed-off-by: Edward O'Callaghan <eocallaghan at alterapraxis.com>
---
 src/mainboard/aaeon/pfm-540i_revb/romstage.c    |  2 +-
 src/mainboard/amd/db800/romstage.c              |  2 +-
 src/mainboard/amd/norwich/romstage.c            |  2 +-
 src/mainboard/amd/rumba/romstage.c              |  2 +-
 src/mainboard/artecgroup/dbe61/romstage.c       |  2 +-
 src/mainboard/bachmann/ot200/romstage.c         |  2 +-
 src/mainboard/digitallogic/msm800sev/romstage.c |  2 +-
 src/mainboard/iei/pcisa-lx-800-r10/romstage.c   |  2 +-
 src/mainboard/iei/pm-lx-800-r11/romstage.c      |  2 +-
 src/mainboard/iei/pm-lx2-800-r10/romstage.c     |  2 +-
 src/mainboard/lippert/hurricane-lx/romstage.c   |  2 +-
 src/mainboard/lippert/literunner-lx/romstage.c  |  2 +-
 src/mainboard/lippert/roadrunner-lx/romstage.c  |  2 +-
 src/mainboard/lippert/spacerunner-lx/romstage.c |  2 +-
 src/mainboard/pcengines/alix1c/romstage.c       |  2 +-
 src/mainboard/pcengines/alix2d/romstage.c       |  2 +-
 src/mainboard/traverse/geos/romstage.c          |  2 +-
 src/mainboard/winent/pl6064/romstage.c          |  2 +-
 src/mainboard/wyse/s50/romstage.c               |  2 +-
 src/southbridge/amd/cs5536/cs5536.h             |  6 ++++
 src/southbridge/amd/cs5536/early_setup.c        | 10 +++++++
 src/southbridge/amd/cs5536/early_smbus.c        | 39 -------------------------
 src/southbridge/amd/cs5536/smbus.h              |  9 ++++++
 23 files changed, 44 insertions(+), 58 deletions(-)

diff --git a/src/mainboard/aaeon/pfm-540i_revb/romstage.c b/src/mainboard/aaeon/pfm-540i_revb/romstage.c
index f80ef95..47c411a 100644
--- a/src/mainboard/aaeon/pfm-540i_revb/romstage.c
+++ b/src/mainboard/aaeon/pfm-540i_revb/romstage.c
@@ -33,7 +33,7 @@
 #include <cpu/amd/lxdef.h>
 #include "southbridge/amd/cs5536/cs5536.h"
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include <superio/smsc/smscsuperio/smscsuperio.h>
 #include "northbridge/amd/lx/raminit.h"
diff --git a/src/mainboard/amd/db800/romstage.c b/src/mainboard/amd/db800/romstage.c
index 564380e..5db1d98 100644
--- a/src/mainboard/amd/db800/romstage.c
+++ b/src/mainboard/amd/db800/romstage.c
@@ -30,7 +30,7 @@
 #include <cpu/amd/lxdef.h>
 #include "southbridge/amd/cs5536/cs5536.h"
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include <superio/winbond/common/winbond.h>
 #include <superio/winbond/w83627hf/w83627hf.h>
diff --git a/src/mainboard/amd/norwich/romstage.c b/src/mainboard/amd/norwich/romstage.c
index 9322508..4f82db5 100644
--- a/src/mainboard/amd/norwich/romstage.c
+++ b/src/mainboard/amd/norwich/romstage.c
@@ -30,7 +30,7 @@
 #include <cpu/amd/lxdef.h>
 #include "southbridge/amd/cs5536/cs5536.h"
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include "northbridge/amd/lx/raminit.h"
 
diff --git a/src/mainboard/amd/rumba/romstage.c b/src/mainboard/amd/rumba/romstage.c
index c5a3fc3..5a0f8a4 100644
--- a/src/mainboard/amd/rumba/romstage.c
+++ b/src/mainboard/amd/rumba/romstage.c
@@ -10,7 +10,7 @@
 #include "cpu/x86/msr.h"
 #include <cpu/amd/gx2def.h>
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 
 #define SERIAL_DEV PNP_DEV(0x2e, W83627HF_SP1)
diff --git a/src/mainboard/artecgroup/dbe61/romstage.c b/src/mainboard/artecgroup/dbe61/romstage.c
index 7276b30..4631027 100644
--- a/src/mainboard/artecgroup/dbe61/romstage.c
+++ b/src/mainboard/artecgroup/dbe61/romstage.c
@@ -31,7 +31,7 @@
 #include "southbridge/amd/cs5536/cs5536.h"
 #include "spd_table.h"
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include "northbridge/amd/lx/raminit.h"
 
diff --git a/src/mainboard/bachmann/ot200/romstage.c b/src/mainboard/bachmann/ot200/romstage.c
index 39385c7..684e0f9 100644
--- a/src/mainboard/bachmann/ot200/romstage.c
+++ b/src/mainboard/bachmann/ot200/romstage.c
@@ -31,7 +31,7 @@
 #include "cpu/x86/msr.h"
 #include <cpu/amd/lxdef.h>
 #include "southbridge/amd/cs5536/cs5536.h"
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include "northbridge/amd/lx/raminit.h"
 
diff --git a/src/mainboard/digitallogic/msm800sev/romstage.c b/src/mainboard/digitallogic/msm800sev/romstage.c
index 986e918..932e0aa 100644
--- a/src/mainboard/digitallogic/msm800sev/romstage.c
+++ b/src/mainboard/digitallogic/msm800sev/romstage.c
@@ -11,7 +11,7 @@
 #include <cpu/amd/car.h>
 #include "southbridge/amd/cs5536/cs5536.h"
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include <superio/winbond/common/winbond.h>
 #include <superio/winbond/w83627hf/w83627hf.h>
diff --git a/src/mainboard/iei/pcisa-lx-800-r10/romstage.c b/src/mainboard/iei/pcisa-lx-800-r10/romstage.c
index a75691c..7de802c 100644
--- a/src/mainboard/iei/pcisa-lx-800-r10/romstage.c
+++ b/src/mainboard/iei/pcisa-lx-800-r10/romstage.c
@@ -30,7 +30,7 @@
 #include <cpu/amd/lxdef.h>
 #include "southbridge/amd/cs5536/cs5536.h"
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include <superio/winbond/common/winbond.h>
 #include <superio/winbond/w83627hf/w83627hf.h>
diff --git a/src/mainboard/iei/pm-lx-800-r11/romstage.c b/src/mainboard/iei/pm-lx-800-r11/romstage.c
index bf34e9a..b591f0d 100644
--- a/src/mainboard/iei/pm-lx-800-r11/romstage.c
+++ b/src/mainboard/iei/pm-lx-800-r11/romstage.c
@@ -30,7 +30,7 @@
 #include <cpu/x86/msr.h>
 #include <cpu/amd/lxdef.h>
 #include <southbridge/amd/cs5536/cs5536.h>
-#include <southbridge/amd/cs5536/early_smbus.c>
+#include <southbridge/amd/cs5536/smbus.h>
 #include <southbridge/amd/cs5536/early_setup.c>
 #include <superio/winbond/common/winbond.h>
 #include <superio/winbond/w83627ehg/w83627ehg.h>
diff --git a/src/mainboard/iei/pm-lx2-800-r10/romstage.c b/src/mainboard/iei/pm-lx2-800-r10/romstage.c
index b34bce4..ef62ce9 100644
--- a/src/mainboard/iei/pm-lx2-800-r10/romstage.c
+++ b/src/mainboard/iei/pm-lx2-800-r10/romstage.c
@@ -31,7 +31,7 @@
 #include <cpu/x86/msr.h>
 #include <cpu/amd/lxdef.h>
 #include <southbridge/amd/cs5536/cs5536.h>
-#include <southbridge/amd/cs5536/early_smbus.c>
+#include <southbridge/amd/cs5536/smbus.h>
 #include <southbridge/amd/cs5536/early_setup.c>
 #include <superio/smsc/smscsuperio/smscsuperio.h>
 #include <northbridge/amd/lx/raminit.h>
diff --git a/src/mainboard/lippert/hurricane-lx/romstage.c b/src/mainboard/lippert/hurricane-lx/romstage.c
index 063721b..71da941 100644
--- a/src/mainboard/lippert/hurricane-lx/romstage.c
+++ b/src/mainboard/lippert/hurricane-lx/romstage.c
@@ -33,7 +33,7 @@
 #include <cpu/amd/lxdef.h>
 #include "southbridge/amd/cs5536/cs5536.h"
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include <superio/ite/common/ite.h>
 #include <superio/ite/it8712f/it8712f.h>
diff --git a/src/mainboard/lippert/literunner-lx/romstage.c b/src/mainboard/lippert/literunner-lx/romstage.c
index 174620a..dc90053 100644
--- a/src/mainboard/lippert/literunner-lx/romstage.c
+++ b/src/mainboard/lippert/literunner-lx/romstage.c
@@ -33,7 +33,7 @@
 #include "cpu/x86/msr.h"
 #include <cpu/amd/lxdef.h>
 #include "southbridge/amd/cs5536/cs5536.h"
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include <superio/ite/common/ite.h>
 #include <superio/ite/it8712f/it8712f.h>
diff --git a/src/mainboard/lippert/roadrunner-lx/romstage.c b/src/mainboard/lippert/roadrunner-lx/romstage.c
index 2642373..9d970b7 100644
--- a/src/mainboard/lippert/roadrunner-lx/romstage.c
+++ b/src/mainboard/lippert/roadrunner-lx/romstage.c
@@ -33,7 +33,7 @@
 #include <cpu/amd/lxdef.h>
 #include "southbridge/amd/cs5536/cs5536.h"
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include <superio/ite/common/ite.h>
 #include <superio/ite/it8712f/it8712f.h>
diff --git a/src/mainboard/lippert/spacerunner-lx/romstage.c b/src/mainboard/lippert/spacerunner-lx/romstage.c
index 9d5539e..5964388 100644
--- a/src/mainboard/lippert/spacerunner-lx/romstage.c
+++ b/src/mainboard/lippert/spacerunner-lx/romstage.c
@@ -33,7 +33,7 @@
 #include "cpu/x86/msr.h"
 #include <cpu/amd/lxdef.h>
 #include "southbridge/amd/cs5536/cs5536.h"
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include <superio/ite/common/ite.h>
 #include <superio/ite/it8712f/it8712f.h>
diff --git a/src/mainboard/pcengines/alix1c/romstage.c b/src/mainboard/pcengines/alix1c/romstage.c
index 204f0bd..080553b 100644
--- a/src/mainboard/pcengines/alix1c/romstage.c
+++ b/src/mainboard/pcengines/alix1c/romstage.c
@@ -36,7 +36,7 @@
 #define SERIAL_DEV PNP_DEV(0x2e, W83627HF_SP1)
 
 /* The ALIX1.C has no SMBus; the setup is hard-wired. */
-static void cs5536_enable_smbus(void) { }
+void cs5536_enable_smbus(void) { }
 
 #include "southbridge/amd/cs5536/early_setup.c"
 #include <superio/winbond/common/winbond.h>
diff --git a/src/mainboard/pcengines/alix2d/romstage.c b/src/mainboard/pcengines/alix2d/romstage.c
index 18453ac..07bf77e 100644
--- a/src/mainboard/pcengines/alix2d/romstage.c
+++ b/src/mainboard/pcengines/alix2d/romstage.c
@@ -36,7 +36,7 @@
 #define SERIAL_DEV PNP_DEV(0x2e, W83627HF_SP1)
 
 /* The ALIX.2D has no SMBus; the setup is hard-wired. */
-static void cs5536_enable_smbus(void) { }
+void cs5536_enable_smbus(void) { }
 
 #include "southbridge/amd/cs5536/early_setup.c"
 
diff --git a/src/mainboard/traverse/geos/romstage.c b/src/mainboard/traverse/geos/romstage.c
index 36d55a7..95ceffa 100644
--- a/src/mainboard/traverse/geos/romstage.c
+++ b/src/mainboard/traverse/geos/romstage.c
@@ -31,7 +31,7 @@
 #include <cpu/amd/lxdef.h>
 #include "southbridge/amd/cs5536/cs5536.h"
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include "northbridge/amd/lx/raminit.h"
 
diff --git a/src/mainboard/winent/pl6064/romstage.c b/src/mainboard/winent/pl6064/romstage.c
index 6a38355..9d1f631 100644
--- a/src/mainboard/winent/pl6064/romstage.c
+++ b/src/mainboard/winent/pl6064/romstage.c
@@ -32,7 +32,7 @@
 #include <cpu/amd/lxdef.h>
 #include "southbridge/amd/cs5536/cs5536.h"
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 #include <superio/winbond/common/winbond.h>
 #include <superio/winbond/w83627hf/w83627hf.h>
diff --git a/src/mainboard/wyse/s50/romstage.c b/src/mainboard/wyse/s50/romstage.c
index 9e5dd53..deeeaf5 100644
--- a/src/mainboard/wyse/s50/romstage.c
+++ b/src/mainboard/wyse/s50/romstage.c
@@ -30,7 +30,7 @@
 #include "cpu/x86/msr.h"
 #include <cpu/amd/gx2def.h>
 #include <spd.h>
-#include "southbridge/amd/cs5536/early_smbus.c"
+#include <southbridge/amd/cs5536/smbus.h>
 #include "southbridge/amd/cs5536/early_setup.c"
 
 static inline int spd_read_byte(unsigned int device, unsigned int address)
diff --git a/src/southbridge/amd/cs5536/cs5536.h b/src/southbridge/amd/cs5536/cs5536.h
index b722560..530ab2e 100644
--- a/src/southbridge/amd/cs5536/cs5536.h
+++ b/src/southbridge/amd/cs5536/cs5536.h
@@ -451,4 +451,10 @@ void chipsetinit(void);
 #endif
 #endif
 
+/**
+ * Note: Some boards do not have SMBus and are hard-wired, so we leave this
+ * symbol weak as to be able to override it in 'romstage.c' of board support.
+ */
+void cs5536_enable_smbus(void) __attribute__((weak));
+
 #endif /* _CS5536_H */
diff --git a/src/southbridge/amd/cs5536/early_setup.c b/src/southbridge/amd/cs5536/early_setup.c
index cff6512..02af392 100644
--- a/src/southbridge/amd/cs5536/early_setup.c
+++ b/src/southbridge/amd/cs5536/early_setup.c
@@ -249,6 +249,16 @@ void cs5536_setup_onchipuart(int uart)
 	}
 }
 
+/* Initialization for SMBus Controller */
+void cs5536_enable_smbus(void)
+{
+	/* Set SCL freq and enable SMB controller */
+	/*outb((0x20 << 1) | SMB_CTRL2_ENABLE, smbus_io_base + SMB_CTRL2); */
+	outb((0x7F << 1) | SMB_CTRL2_ENABLE, SMBUS_IO_BASE + SMB_CTRL2);
+
+	/* Setup SMBus host controller address to 0xEF */
+	outb((0xEF | SMB_ADD_SAEN), SMBUS_IO_BASE + SMB_ADD);
+}
 
 /* note: you can't do prints in here in most cases,
  * and we don't want to hang on serial, so they are
diff --git a/src/southbridge/amd/cs5536/early_smbus.c b/src/southbridge/amd/cs5536/early_smbus.c
deleted file mode 100644
index d1483b1..0000000
--- a/src/southbridge/amd/cs5536/early_smbus.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * This file is part of the coreboot project.
- *
- * Copyright (C) 2007 Advanced Micro Devices, Inc.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * 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
- */
-
-#include "cs5536.h"
-#include "smbus.h"
-
-/* initialization for SMBus Controller */
-static void cs5536_enable_smbus(void)
-{
-
-	/* Set SCL freq and enable SMB controller */
-	/*outb((0x20 << 1) | SMB_CTRL2_ENABLE, smbus_io_base + SMB_CTRL2); */
-	outb((0x7F << 1) | SMB_CTRL2_ENABLE, SMBUS_IO_BASE + SMB_CTRL2);
-
-	/* Setup SMBus host controller address to 0xEF */
-	outb((0xEF | SMB_ADD_SAEN), SMBUS_IO_BASE + SMB_ADD);
-
-}
-
-static inline int smbus_read_byte(unsigned device, unsigned address)
-{
-	return do_smbus_read_byte(SMBUS_IO_BASE, device, address);
-}
diff --git a/src/southbridge/amd/cs5536/smbus.h b/src/southbridge/amd/cs5536/smbus.h
index 3e72dad..30238e3 100644
--- a/src/southbridge/amd/cs5536/smbus.h
+++ b/src/southbridge/amd/cs5536/smbus.h
@@ -21,6 +21,7 @@
 #define _CS5536_SMBUS_H
 
 #include <device/smbus_def.h>
+#include "cs5536.h"
 
 int smbus_start_condition(unsigned smbus_io_base);
 int smbus_stop_condition(unsigned smbus_io_base);
@@ -33,4 +34,12 @@ unsigned char do_smbus_read_byte(unsigned smbus_io_base,
 					unsigned char device,
 					unsigned char address);
 
+/* TODO: seems to be dead code?? */
+#if 0
+static inline int smbus_read_byte(unsigned device, unsigned address)
+{
+	return do_smbus_read_byte(SMBUS_IO_BASE, device, address);
+}
+#endif
+
 #endif /* _CS5536_SMBUS_H */



More information about the coreboot-gerrit mailing list