summaryrefslogtreecommitdiff
path: root/src/northbridge
diff options
context:
space:
mode:
authorStefan Reinauer <stepan@coresystems.de>2010-03-05 18:25:19 +0000
committerStefan Reinauer <stepan@openbios.org>2010-03-05 18:25:19 +0000
commitf98ad3ace0852159c6e716a5563a9c3df8cf76f3 (patch)
tree0fe25602c3ac99c52ce10b45af3635a9a0e06d56 /src/northbridge
parent1b4f435281e20c6c71077c2985717d96ca43c8d4 (diff)
i945 mini patch:
- don't skip the reset on S4 violations. Specs ask us to do this so we do it - hlt on waiting for reset instead of hot looping. Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5190 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/northbridge')
-rw-r--r--src/northbridge/intel/i945/raminit.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/northbridge/intel/i945/raminit.c b/src/northbridge/intel/i945/raminit.c
index 235375673d..f65ccfaf42 100644
--- a/src/northbridge/intel/i945/raminit.c
+++ b/src/northbridge/intel/i945/raminit.c
@@ -236,8 +236,9 @@ static void sdram_detect_errors(void)
if (reg8 & ((1<<7)|(1<<2))) {
if (reg8 & (1<<2)) {
printk_debug("SLP S4# Assertion Width Violation.\n");
-
+ /* Write back clears bit 2 */
pci_write_config8(PCI_DEV(0, 0x1f, 0), 0xa2, reg8);
+ do_reset = 1;
}
@@ -257,7 +258,7 @@ static void sdram_detect_errors(void)
printk_debug("Reset required.\n");
outb(0x00, 0xcf9);
outb(0x0e, 0xcf9);
- for (;;) ; /* Wait for reset! */
+ for (;;) asm("hlt"); /* Wait for reset! */
}
}