[coreboot] F2A85-M coreboot not working

Rostislav Lisovy lisovy at gmail.com
Sun Mar 2 16:23:33 CET 2014


On Sun, 2014-03-02 at 00:00 -0600, Scott Duplichan wrote:
> This looks like a divide exception. Finding the source code
> for the failing divide might help narrow down the problem. I
> can't recreate your binary exactly so I can't find the failing
> instruction from the eip value. But based on register values,
> it looks like it is somewhere around line 334 of file
> amd/agesa/f15tn/Proc/GNB/Modules/GnbInitTN/GfxGmcInitTN.c
> You might be able to use the link map, disassembly, or debug
> prints to figure out the exact source line that is failing.

I compiled the GDB support and connected to it from the other computer.
The outcome of the debugging:

_text () at src/arch/x86/lib/c_start.S:89
warning: Source file is more recent than executable.
89		call	main
(gdb) c
Continuing.

Program received signal SIGFPE, Arithmetic exception.
0x0022fabf in GfxGmcInitializeSequencerTN (Gfx=0x10000660) at src/vendorcode/amd/agesa/f15tn/Proc/GNB/Modules/GnbInitTN/GfxGmcInitTN.c:334
warning: Source file is more recent than executable.
334	  scale_mp0 = (GfxLibGetMaxSclk (GnbLibGetHeader (Gfx)) * 100) / memps0_freq;

(gdb) p memps0_freq
$1 = 0

(gdb) p Gfx
$2 = (GFX_PLATFORM_CONFIG *) 0x10000660

(gdb) l
329	  }
330	
331	  //scale_mp0 = sclk_max_freq / memps0_freq
332	  //scale_mp1 = sclk_max_freq / memps1_freq
333	  //Multiply it by 100 to avoid dealing with floating point values
334	  scale_mp0 = (GfxLibGetMaxSclk (GnbLibGetHeader (Gfx)) * 100) / memps0_freq;
335	  scale_mp1 = (GfxLibGetMaxSclk (GnbLibGetHeader (Gfx)) * 100) / memps1_freq;
336	
337	  GnbRegisterReadTN (TYPE_GMM , 0x2774 , &ex1047.Value, 0, GnbLibGetHeader (Gfx));
338	  GnbRegisterReadTN (TYPE_GMM , 0x2778 , &ex1048.Value, 0, GnbLibGetHeader (Gfx));

(gdb) p memps1_freq
$5 = 333

Regards;
Rostislav Lisovy





More information about the coreboot mailing list