[coreboot] memset called to somewhere high on the stack (uncached)

Myles Watson mylesgw at gmail.com
Wed Apr 7 17:25:22 CEST 2010


> On Tue, Apr 06, 2010 at 04:21:57PM -0600, Myles Watson wrote:
> > I'm seeing code reads to memset() in coreboot_ram interleaved with byte
> > writes to somewhere high on the stack (_estack -0x1fC).  This is a k8.
> >
> > I can't find the place during the RAM stage when we are calling memset
> with
> > caches disabled.  Does this ring a bell for anyone?
> 
> Probably not related, but I found the code at
> src/arch/i386/init/crt0.S.lb:
>         movl    %ebp, %esi
>         /* FIXME: look for a proper place for the stack */
>         movl    $0x4000000, %esp
>         movl    %esp, %ebp
>         pushl %esi
>         pushl $str_coreboot_ram_name
>         call cbfs_and_run_core
> 
> to be problematic on my epia-cn back when I was running timing tests.
> The stack was set to 0x4000000, but that memory wasn't cached.  It
> caused a really long delay - doubly so when lzma compression was used.

It isn't the same address range, but thanks for reminding us.

All:

Does this interfere with suspend/resume?  Is there a ticket already created
for this?  It looks like something that would be hard to debug in system.

Thanks,
Myles





More information about the coreboot mailing list