[coreboot] r3801 - trunk/coreboot-v2/src/mainboard/amd/dbm690t

svn at coreboot.org svn at coreboot.org
Fri Dec 5 19:38:57 CET 2008


Author: mjones
Date: 2008-12-05 19:38:57 +0100 (Fri, 05 Dec 2008)
New Revision: 3801

Modified:
   trunk/coreboot-v2/src/mainboard/amd/dbm690t/mainboard.c
Log:
The TALERT of ADT7461 should be pull back high if the temperature is within the limit. It is done by reading the register whose device address is 0xC. It is not trivial as it looks.



Signed-off-by:  Maggie Li <maggie.li at amd.com>
Reviewed-by:    Joe Bao <zheng.bao at amd.com>
Acked-by: Ronald G. Minnich <rminnich at gmail.com>


Modified: trunk/coreboot-v2/src/mainboard/amd/dbm690t/mainboard.c
===================================================================
--- trunk/coreboot-v2/src/mainboard/amd/dbm690t/mainboard.c	2008-12-05 14:15:17 UTC (rev 3800)
+++ trunk/coreboot-v2/src/mainboard/amd/dbm690t/mainboard.c	2008-12-05 18:38:57 UTC (rev 3801)
@@ -28,6 +28,7 @@
 #include "chip.h"
 
 #define ADT7461_ADDRESS 0x4C
+#define ARA_ADDRESS     0x0C /* Alert Response Address */
 #define SMBUS_IO_BASE 0x1000
 
 extern int do_smbus_read_byte(u32 smbus_io_base, u32 device, u32 address);
@@ -35,6 +36,8 @@
 			       u8 val);
 #define ADT7461_read_byte(address) \
 	do_smbus_read_byte(SMBUS_IO_BASE, ADT7461_ADDRESS, address)
+#define ARA_read_byte(address) \
+	do_smbus_read_byte(SMBUS_IO_BASE, ARA_ADDRESS, address)
 #define ADT7461_write_byte(address, val) \
 	do_smbus_write_byte(SMBUS_IO_BASE, ADT7461_ADDRESS, address, val)
 
@@ -132,6 +135,7 @@
 	ADT7461_write_byte(0x20, 0x55);	/* Local THERM limit */
 
 	byte = ADT7461_read_byte(0x02);	/* read status register to clear it */
+	ARA_read_byte(0x05); /* A hardware alert can only be cleared by the master sending an ARA as a read command */
 	printk_info("Init adt7461 end , status 0x02 %02x\n", byte);
 
 	/* sb600 settings for thermal config */





More information about the coreboot mailing list