I am pretty sure that you meet the same the same problem.

It seems to be ridiculous. Please check the maillist about this issue.

http://www.coreboot.org/pipermail/coreboot/2010-February/055730.html

 

If everything goes as I expected, the following patch can fix your problem

at any revision.

 

 

Zheng

 

 

Index: src/arch/i386/coreboot_ram.ld

===================================================================

--- src/arch/i386/coreboot_ram.ld   (revision 5153)

+++ src/arch/i386/coreboot_ram.ld   (working copy)

@@ -1,7 +1,7 @@

 /*

  *   Memory map:

  *

- *   CONFIG_RAMBASE         

+ *   CONFIG_RAMBASE

  *                     : data segment

  *                     : bss segment

  *                     : heap

@@ -19,7 +19,7 @@

  */

 /*

  *   We use ELF as output format. So that we can

- *   debug the code in some form.

+ *   debug the code in some form.

  */

 INCLUDE ldoptions

 

@@ -62,7 +62,7 @@

             . = ALIGN(4);

 

            _erodata = .;

-     }    

+     }

      /*

       * After the code we place initialized data (typically initialized

       * global variables). This gets copied into ram by startup code.

@@ -101,11 +101,10 @@

      _end = .;

      . = ALIGN(CONFIG_STACK_SIZE);

      _stack = .;

-     .stack . : {

-           /* Reserve a stack for each possible cpu */

-           /* the stack for ap will be put after pgtbl in 1M to CONFIG_RAMTOP range when VGA and ROM_RUN and CONFIG_RAMTOP>1M*/

-           . = ((CONFIG_CONSOLE_VGA || CONFIG_PCI_ROM_RUN)&&(CONFIG_RAMBASE<0x100000)&&(CONFIG_RAMTOP>0x100000) ) ? CONFIG_STACK_SIZE : (CONFIG_MAX_CPUS*CONFIG_STACK_SIZE);

-     }

+     /* Reserve a stack for each possible cpu */

+     /* the stack for ap will be put after pgtbl in 1M to CONFIG_RAMTOP range when VGA and ROM_RUN and CONFIG_RAMTOP>1M*/

+     /* TODO: workaround for the bug of GNU linker. */

+     . += ((CONFIG_CONSOLE_VGA || CONFIG_PCI_ROM_RUN)&&(CONFIG_RAMBASE<0x100000)&&(CONFIG_RAMTOP>0x100000) ) ? CONFIG_STACK_SIZE : (CONFIG_MAX_CPUS*CONFIG_STACK_SIZE);

      _estack = .;

         _heap = .;

         .heap . : {

@@ -117,7 +116,7 @@

      /* The ram segment

       * This is all address of the memory resident copy of coreboot.

       */

-     _ram_seg = _text;

+     _ram_seg = _text;

      _eram_seg = _eheap;

 

      _bogus = ASSERT( ( _eram_seg < (CONFIG_RAMTOP)) , "please increase CONFIG_RAMTOP");

 

 

 


From: coreboot-bounces@coreboot.org [mailto:coreboot-bounces@coreboot.org] On Behalf Of Myles Watson
Sent: Thursday, February 25, 2010 6:48 AM
To: coreboot
Subject: Re: [coreboot] Fam10 breakage

 

 

On Wed, Feb 24, 2010 at 3:02 PM, Myles Watson <mylesgw@gmail.com> wrote:

 

On Wed, Feb 24, 2010 at 2:34 PM, Myles Watson <mylesgw@gmail.com> wrote:

 

On Wed, Feb 24, 2010 at 2:27 PM, Myles Watson <mylesgw@gmail.com> wrote:

Rev 5132 works for me on SimNOW with 1 fam10 processor.

Current head gets stuck in an infinite loop setting fixed MTRRs.

Any clues while I'm bisecting?

So far the only difference before the failure is the location of the CBFS header:
Check CBFS header at fffeffe0 (working)
Check CBFS header at ffffff68a (broken)


That's not it, because that changes later.

Rev 5135 works Rev 5139 is broken.

Rev 5136-5138 don't build.  Rev 5136 is pretty big, and I don't see anything that's obviously related to MTRRs.

Interestingly enough, 5150 fixes it.  Then 5152 breaks it a different way.

Since the commit message from 5152 is:

     Remove nonsensical wrapper for function in
     PS/2 keyboard API. 


I guess it's probably some kind of stack corruption.  Something makes it very fragile.

Suggestions welcome.

Thanks,
Myles