summaryrefslogtreecommitdiff
path: root/src/mainboard
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard')
-rw-r--r--src/mainboard/lippert/frontrunner-af/romstage.c4
-rw-r--r--src/mainboard/lippert/toucan-af/romstage.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/src/mainboard/lippert/frontrunner-af/romstage.c b/src/mainboard/lippert/frontrunner-af/romstage.c
index e5b3aeb311..14a003af4f 100644
--- a/src/mainboard/lippert/frontrunner-af/romstage.c
+++ b/src/mainboard/lippert/frontrunner-af/romstage.c
@@ -113,6 +113,10 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
post_code(0x40);
printk(BIOS_DEBUG, "agesawrapper_amdinitpost ");
val = agesawrapper_amdinitpost ();
+ /* Reboots with outb(3,0x92), outb(4,0xcf9) or triple-fault all
+ * hang, looks like DRAM re-init goes wrong, don't know why. */
+ if (val == 7) /* fatal, amdinitenv below is going to hang */
+ outb(0x06, 0x0cf9); /* reset system harder instead */
if (val)
printk(BIOS_DEBUG, "error level: %x \n", val);
else
diff --git a/src/mainboard/lippert/toucan-af/romstage.c b/src/mainboard/lippert/toucan-af/romstage.c
index 7d1181383a..fcec303c8d 100644
--- a/src/mainboard/lippert/toucan-af/romstage.c
+++ b/src/mainboard/lippert/toucan-af/romstage.c
@@ -113,6 +113,10 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
post_code(0x40);
printk(BIOS_DEBUG, "agesawrapper_amdinitpost ");
val = agesawrapper_amdinitpost ();
+ /* Reboots with outb(3,0x92), outb(4,0xcf9) or triple-fault all
+ * hang, looks like DRAM re-init goes wrong, don't know why. */
+ if (val == 7) /* fatal, amdinitenv below is going to hang */
+ outb(0x06, 0x0cf9); /* reset system harder instead */
if (val)
printk(BIOS_DEBUG, "error level: %x \n", val);
else