Dear coreboot folks,
I am adding Fam14 to the subject line as, for the ASRock E350M1 and the issue below, AGESA is used for the processor/northbridge Family 14 and CIMx for the southbridge SB800.
Am Sonntag, den 07.04.2013, 02:48 +0200 schrieb Paul Menzel:
using an ASRock E350M1 with coreboot built from
commit 120d4bd8e644fc26f367022f3338264150a7ac4a Author: Paul Menzel <paulepanter@users.sourceforge.net> Date: Sat Apr 6 21:03:22 2013 +0200 Revert "cbfstool: Replace C++ code with C code" This reverts commit aa3f7ba36ebe3a933aa664f826382f60b31e86f1. commit 161ccc76ea0f8941a34c5bed323cc9ba1fe0221d Author: Ronald G. Minnich <rminnich@gmail.com> Date: Fri Apr 5 13:35:29 2013 -0700 exynos5250: add a chip.h file for the display register settings Reviewed-on: http://review.coreboot.org/3031
and a GRUB payload
$ build/cbfstool build/coreboot.rom print coreboot.rom: 4096 kB, bootblocksize 1008, romsize 4194304, offset 0x0 alignment: 64 bytes Name Offset Type Size cmos_layout.bin 0x0 cmos_layout 1776 pci1002,9802.rom 0x740 optionrom 65536 fallback/romstage 0x10780 stage 347052 fallback/coreboot_ram 0x65380 stage 205910 fallback/payload 0x97840 payload 197874 (empty) 0xc7d80 null 3374616
it worked the first time after restarting the system (serial cable *not* connected) and therefore testing the newly written image. Then shutting it down and turning it on again it reset in several boot attempts after loading the GRUB payload(?) *with* the serial cable connected (PSU turned off each time for one or two seconds) until it finally successfully started again.
[…] Loading Linux 3.7.5+ ... error: disk `mduuid/fb7f3dc5d183cab6121231201a2207b9' not found. Loading initial ramdisk ...
This is right before GRUB calls `initrd /initrd.img-3.7.5+`. Note that the drive is currently not available. No idea if that is causing the reset.
coreboot-4.0-3984-g120d4bd Sat Apr 6 21:20:24 CEST 2013 starting... BSP Family_Model: 00500f10 cpu_init_detectedx = 00000000 agesawrapper_amdinitmmio passed. agesawrapper_amdinitreset passed. agesawrapper_amdinitearly passed. agesawrapper_amdinitpost EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0. EventLog: EventClass = 2, EventInfo = 8040100. Param1 = a00a, Param2 = 0. Param3 = 0, Param4 = 0.
It is nice when we can just search for error codes. (I wish this would have been the first thing I tried.)
$ git grep 8040100 src/vendorcode/amd/agesa/f10/AGESA.h:#define CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT 0x08040100 src/vendorcode/amd/agesa/f10/Legacy/agesa.inc:CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT EQU 008040100h src/vendorcode/amd/agesa/f12/AGESA.h:#define CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT 0x08040100 src/vendorcode/amd/agesa/f12/Legacy/agesa.inc:CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT EQU 008040100h src/vendorcode/amd/agesa/f14/AGESA.h:#define CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT 0x08040100 src/vendorcode/amd/agesa/f14/Legacy/agesa.inc:CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT EQU 008040100h src/vendorcode/amd/agesa/f15/AGESA.h:#define CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT 0x08040100 src/vendorcode/amd/agesa/f15/Legacy/agesa.inc:CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT EQU 008040100h src/vendorcode/amd/agesa/f15tn/AGESA.h:#define CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT 0x08040100ul src/vendorcode/amd/agesa/f15tn/Legacy/agesa.inc:CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT EQU 008040100h $ nl src/vendorcode/amd/agesa/f14/AGESA.h | grep -B 20 -A 14 CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT 1615 /*---------------------------------------------------------------------------- 1616 * 1617 * CPU RELATED DEFINITIONS 1618 * 1619 *---------------------------------------------------------------------------- 1620 */
1621 // CPU Event definitions.
1622 // Defines used to filter CPU events based on functional blocks 1623 #define CPU_EVENT_PM_EVENT_MASK 0xFF00FF00 1624 #define CPU_EVENT_PM_EVENT_CLASS 0x08000400
1625 //================================================================ 1626 // CPU General events 1627 // Heap allocation (AppFunction = 01h) 1628 #define CPU_ERROR_HEAP_BUFFER_IS_NOT_PRESENT 0x08000100 1629 #define CPU_ERROR_HEAP_IS_ALREADY_INITIALIZED 0x08010100 1630 #define CPU_ERROR_HEAP_IS_FULL 0x08020100 1631 #define CPU_ERROR_HEAP_BUFFER_HANDLE_IS_ALREADY_USED 0x08030100 1632 #define CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT 0x08040100 1633 // BrandId (AppFunction = 02h) 1634 #define CPU_ERROR_BRANDID_HEAP_NOT_AVAILABLE 0x08000200 1635 // Micro code patch (AppFunction = 03h) 1636 #define CPU_ERROR_MICRO_CODE_PATCH_IS_NOT_LOADED 0x08000300 1637 // Power management (AppFunction = 04h) 1638 #define CPU_EVENT_PM_PSTATE_OVERCURRENT 0x08000400 1639 #define CPU_EVENT_PM_ALL_PSTATE_OVERCURRENT 0x08010400 1640 #define CPU_ERROR_PSTATE_HEAP_NOT_AVAILABLE 0x08020400 1641 #define CPU_ERROR_PM_NB_PSTATE_MISMATCH 0x08030400 1642 // BIST (AppFunction = 05h) 1643 #define CPU_EVENT_BIST_ERROR 0x08000500
1644 //================================================================= 1645 // CPU Feature events
So in this case, we have `CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT`.
$ git grep CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT src/vendorcode/amd/agesa/f14/ src/vendorcode/amd/agesa/f14/AGESA.h:#define CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT 0x08040100 src/vendorcode/amd/agesa/f14/Legacy/agesa.inc:CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT EQU 008040100h src/vendorcode/amd/agesa/f14/Proc/CPU/heapManager.c: CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT, src/vendorcode/amd/agesa/f14/Proc/CPU/heapManager.c: CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT,
Looking at
/*---------------------------------------------------------------------------------------*/ /** * Deallocates a previously allocated buffer in the heap […] */ AGESA_STATUS HeapDeallocateBuffer ( IN UINT32 BufferHandle, IN AMD_CONFIG_PARAMS *StdHeader ) { […] // If we are still unable to locate the buffer handle, return AGESA_BOUNDS_CHK if ((BaseAddress != NULL) && (HeapManager->Signature == HEAP_SIGNATURE_VALID)) { PutEventLog (AGESA_BOUNDS_CHK, CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT, BufferHandle, 0, 0, 0, StdHeader); } else { ASSERT (FALSE); } return AGESA_BOUNDS_CHK; } }
/*---------------------------------------------------------------------------------------*/ /** * Locates a previously allocated buffer on the heap. […] */ AGESA_STATUS HeapLocateBuffer ( IN OUT LOCATE_HEAP_PTR *LocateHeap, IN AMD_CONFIG_PARAMS *StdHeader ) { […] // If we are still unable to deallocate the buffer handle, return AGESA_BOUNDS_CHK LocateHeap->BufferPtr = NULL; LocateHeap->BufferSize = 0; if ((BaseAddress != NULL) && (HeapManager->Signature == HEAP_SIGNATURE_VALID)) { PutEventLog (AGESA_BOUNDS_CHK, CPU_ERROR_HEAP_BUFFER_HANDLE_IS_NOT_PRESENT, LocateHeap->BufferHandle, 0, 0, 0, StdHeader); } else { ASSERT (FALSE); } return AGESA_BOUNDS_CHK; } }
So this seems not the cause for the hang. Another indication is that it is not the last event log.
EventLog: EventClass = 7, EventInfo = 4011c00. Param1 = 0, Param2 = 0. Param3 = 0, Param4 = 0. error level: 7
Here I am stuck now. Searching for 4011c00, did not return anything. Could you somebody please give me a hint.
agesawrapper_amdinitenv
I think I had already seen this some weeks ago, but did not have time yet to report this issue.
I am getting this quite often now. Turning power off and back on to restart the machine sometimes works and sometimes does not. Repeating that several times I am often lucky and the system is able to start normally.
Thanks,
Paul