[coreboot] r830 - in coreboot-v3: mainboard/adl/msm800sev mainboard/amd/db800 mainboard/amd/norwich southbridge/amd/cs5536
svn at coreboot.org
svn at coreboot.org
Thu Aug 28 00:58:04 CEST 2008
Author: hailfinger
Date: 2008-08-28 00:58:04 +0200 (Thu, 28 Aug 2008)
New Revision: 830
Modified:
coreboot-v3/mainboard/adl/msm800sev/initram.c
coreboot-v3/mainboard/amd/db800/initram.c
coreboot-v3/mainboard/amd/norwich/initram.c
coreboot-v3/southbridge/amd/cs5536/smbus_initram.c
Log:
Every GeodeLX target already has spd_read_byte in
mainboard/$VENDOR/$BOARD/initram.c. It's pointless to have it in the
southbridge code as well.
Kill it in the southbridge code and use mainboard code only.
Thanks to Segher for rediscovering this bug.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Acked-by: Ronald G. Minnich <rminnich at gmail.com>
Modified: coreboot-v3/mainboard/adl/msm800sev/initram.c
===================================================================
--- coreboot-v3/mainboard/adl/msm800sev/initram.c 2008-08-27 22:45:18 UTC (rev 829)
+++ coreboot-v3/mainboard/adl/msm800sev/initram.c 2008-08-27 22:58:04 UTC (rev 830)
@@ -34,6 +34,8 @@
#include <southbridge/amd/cs5536/cs5536.h>
#include <northbridge/amd/geodelx/raminit.h>
+extern int smbus_read_byte(u16 device, u8 address);
+
#define MANUALCONF 0 /* Do automatic strapped PLL config. */
#define PLLMSRHI 0x00001490 /* Manual settings for the PLL */
@@ -42,6 +44,31 @@
#define DIMM0 ((u8) 0xA0)
#define DIMM1 ((u8) 0xA2)
+/**
+ * Read a byte from the SPD.
+ *
+ * For this board, that is really just saying 'read a byte from SMBus'.
+ * So we use smbus_read_byte(). Nota Bene: leave this here as a function
+ * rather than a #define in an obscure location. This function is called
+ * only a few dozen times, and it's not performance critical.
+ *
+ * @param device The device.
+ * @param address The address.
+ * @return The data from the SMBus packet area or an error of 0xff (i.e. -1).
+ */
+u8 spd_read_byte(u16 device, u8 address)
+{
+ u8 spdbyte;
+
+ printk(BIOS_DEBUG, "spd_read_byte dev %04x\n", device);
+
+ spdbyte = smbus_read_byte(device, address);
+
+ printk(BIOS_DEBUG, " addr %02x returns %02x\n", address, spdbyte);
+
+ return spdbyte;
+}
+
int main(void)
{
void done_cache_as_ram_main(void);
Modified: coreboot-v3/mainboard/amd/db800/initram.c
===================================================================
--- coreboot-v3/mainboard/amd/db800/initram.c 2008-08-27 22:45:18 UTC (rev 829)
+++ coreboot-v3/mainboard/amd/db800/initram.c 2008-08-27 22:58:04 UTC (rev 830)
@@ -42,6 +42,18 @@
#define DIMM0 ((u8) 0xA0)
#define DIMM1 ((u8) 0xA2)
+/**
+ * Read a byte from the SPD.
+ *
+ * For this board, that is really just saying 'read a byte from SMBus'.
+ * So we use smbus_read_byte(). Nota Bene: leave this here as a function
+ * rather than a #define in an obscure location. This function is called
+ * only a few dozen times, and it's not performance critical.
+ *
+ * @param device The device.
+ * @param address The address.
+ * @return The data from the SMBus packet area or an error of 0xff (i.e. -1).
+ */
u8 spd_read_byte(u16 device, u8 address)
{
u8 spdbyte;
Modified: coreboot-v3/mainboard/amd/norwich/initram.c
===================================================================
--- coreboot-v3/mainboard/amd/norwich/initram.c 2008-08-27 22:45:18 UTC (rev 829)
+++ coreboot-v3/mainboard/amd/norwich/initram.c 2008-08-27 22:58:04 UTC (rev 830)
@@ -42,6 +42,18 @@
#define DIMM0 ((u8) 0xA0)
#define DIMM1 ((u8) 0xA2)
+/**
+ * Read a byte from the SPD.
+ *
+ * For this board, that is really just saying 'read a byte from SMBus'.
+ * So we use smbus_read_byte(). Nota Bene: leave this here as a function
+ * rather than a #define in an obscure location. This function is called
+ * only a few dozen times, and it's not performance critical.
+ *
+ * @param device The device.
+ * @param address The address.
+ * @return The data from the SMBus packet area or an error of 0xff (i.e. -1).
+ */
u8 spd_read_byte(u16 device, u8 address)
{
u8 spdbyte;
Modified: coreboot-v3/southbridge/amd/cs5536/smbus_initram.c
===================================================================
--- coreboot-v3/southbridge/amd/cs5536/smbus_initram.c 2008-08-27 22:45:18 UTC (rev 829)
+++ coreboot-v3/southbridge/amd/cs5536/smbus_initram.c 2008-08-27 22:58:04 UTC (rev 830)
@@ -330,20 +330,3 @@
return do_smbus_read_byte(SMBUS_IO_BASE, device, address);
}
-
-/**
- * Read a byte from the SPD.
- *
- * For this chip, that is really just saying 'read a byte from SMBus'.
- * So we use smbus_read_byte(). Nota Bene: leave this here as a function
- * rather than a #define in an obscure location. This function is called
- * only a few dozen times, and it's not performance critical.
- *
- * @param device The device.
- * @param address The address.
- * @return The data from the SMBus packet area or an error of 0xff (i.e. -1).
- */
-u8 spd_read_byte(u16 device, u8 address)
-{
- return smbus_read_byte(device, address);
-}
More information about the coreboot
mailing list