diff options
author | Martin Roth <martin@se-eng.com> | 2013-01-08 13:36:14 -0700 |
---|---|---|
committer | Stefan Reinauer <stefan.reinauer@coreboot.org> | 2013-01-10 02:04:18 +0100 |
commit | 92dd172a573a7eff4774030fdfe5eb9625d59aa0 (patch) | |
tree | f95c626e494c74423eada71a5dd850d151cda585 /src | |
parent | 238780c8da866c0f8a80a4c0004bc81d2a060a8d (diff) | |
download | coreboot-92dd172a573a7eff4774030fdfe5eb9625d59aa0.tar.xz |
Fix 2 infinite loops if IMC doesn't respond
ACPI code:
The ACPI code is not currently being compiled in by default, but
assuming that it will be at some point, I'm fixing the loop that
waits for the IMC to respond after sending it a command. The
loop now exits after 500ms, similar to the function in agesa.
Agesa Code:
a 16 bit variable will always be less than 100000. Change to
be a 32 bit variable.
Change-Id: I9430ef900a22d056871b744f3b1511abdfea516e
Signed-off-by: Martin Roth <martin@se-eng.com>
Reviewed-on: http://review.coreboot.org/2119
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/mainboard/amd/parmer/acpi/AmdImc.asl | 4 | ||||
-rw-r--r-- | src/mainboard/amd/thatcher/acpi/AmdImc.asl | 4 | ||||
-rw-r--r-- | src/vendorcode/amd/agesa/f15tn/Proc/Fch/Imc/ImcLib.c | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/src/mainboard/amd/parmer/acpi/AmdImc.asl b/src/mainboard/amd/parmer/acpi/AmdImc.asl index 937c10acc2..f55a12ad18 100644 --- a/src/mainboard/amd/parmer/acpi/AmdImc.asl +++ b/src/mainboard/amd/parmer/acpi/AmdImc.asl @@ -18,9 +18,11 @@ IndexField(IMCX, IMCA, ByteAcc, NoLock, Preserve) { Method(WACK, 0) { Store(0, Local0) - While (LNotEqual(Local0, 0xFA)) { + Store(50, Local1) + While (LAnd (LNotEqual(Local0, 0xFA), LGreater(Local1,0))) { Store(MRG0, Local0) Sleep(10) + Decrement(Local1) } } diff --git a/src/mainboard/amd/thatcher/acpi/AmdImc.asl b/src/mainboard/amd/thatcher/acpi/AmdImc.asl index 937c10acc2..f55a12ad18 100644 --- a/src/mainboard/amd/thatcher/acpi/AmdImc.asl +++ b/src/mainboard/amd/thatcher/acpi/AmdImc.asl @@ -18,9 +18,11 @@ IndexField(IMCX, IMCA, ByteAcc, NoLock, Preserve) { Method(WACK, 0) { Store(0, Local0) - While (LNotEqual(Local0, 0xFA)) { + Store(50, Local1) + While (LAnd (LNotEqual(Local0, 0xFA), LGreater(Local1,0))) { Store(MRG0, Local0) Sleep(10) + Decrement(Local1) } } diff --git a/src/vendorcode/amd/agesa/f15tn/Proc/Fch/Imc/ImcLib.c b/src/vendorcode/amd/agesa/f15tn/Proc/Fch/Imc/ImcLib.c index 6f8903c487..d8df41a26d 100644 --- a/src/vendorcode/amd/agesa/f15tn/Proc/Fch/Imc/ImcLib.c +++ b/src/vendorcode/amd/agesa/f15tn/Proc/Fch/Imc/ImcLib.c @@ -126,7 +126,7 @@ WaitForEcLDN9MailboxCmdAck ( ) { UINT8 Msgdata; - UINT16 Delaytime; + UINT32 Delaytime; Msgdata = 0; |