> >>      /* The memory is now setup, use it */
> >> +#if USE_DCACHE_RAM == 0
> >>      cache_lbmem(MTRR_TYPE_WRBACK);
> >> +#endif
> >>  }
> >
> > Could you explain why you had to add this?
> 
> This board uses CAR, like the kontron. When we initialize the memory,
> we are still in CAR, and cache_lbmem will setup MTRR its ways. From
> what I understand, this will break CAR and we'll get stuck here. So
> cache_lbmem is OK for boards using ROMCC (mtarvon, truxton...), but is
> bad with CAR.
OK.

> > I've refactored two of your patches so that they use svn cp from kontron
> and
> > model_6fx sources to show the differences.  If you based your work on
> > different sources, let me know.
> 
> I'm really I wanted to do that but I did not find the time (lot of
> work right now). I used a mix of 2 board : for the CAR skeleton I used
> the Kontron 986LCDM mainboard, for the 3100 stuff the mt arvon board.
Great.

> > My comments:
> > There is some #if 0 code in acpi_tables.  Will it ever be enabled?  If
> not,
> > remove it.
> 
> Yes indeed. As I said I started from the kontron mainboard but in my
> case I didn't fill the OEMB table so they can safely be removed. We
> can still fill table later if needed. I also found another #if 0 /
> #endif pair in auto.c. Its about the MSR_THERM2_CTL. I remember I add
> to disable it on a core 2 duo L7400 otherwise I was stuck. I'll check
> it today if we can re-enable this one.
Thanks.

 
> > I'm confused why we need eagleheights_fixups.  Can we remove it?
> 
> Yes indeed. I always add it in case but here I did not had to use it, so
> trash.
Will do.

> > Index: svn/src/cpu/intel/model_1067x/cache_as_ram_post.c
> > ===================================================================
> > --- svn.orig/src/cpu/intel/model_1067x/cache_as_ram_post.c
> > +++ svn/src/cpu/intel/model_1067x/cache_as_ram_post.c
> > @@ -50,9 +50,9 @@
> >      "wrmsr\n"
> >      "movl    $MTRRphysMask_MSR(1), %ecx\n"
> >      "wrmsr\n"
> > -#endif
> >
> >      "movb    $0x33, %al\noutb %al, $0x80\n"
> > +#endif
> >  #ifdef CLEAR_FIRST_1M_RAM
> >      "movb    $0x34, %al\noutb %al, $0x80\n"
> >      /* Enable Write Combining and Speculative Reads for the first 1MB
> */
> > @@ -120,7 +120,7 @@
> >      "movb    $0x3b, %al\noutb %al, $0x80\n"
> >
> >      /* Enable prefetchers */
> > -    "movl    $0x01a0, %eax\n"
> > +    "movl    $0x01a0, %ecx\n"
> >      "rdmsr\n"
> >      "andl    $~((1 << 9) | (1 << 19)), %eax\n"
> >      "andl    $~((1 << 5) | (1 << 7)), %edx\n"
> >
> > These changes were surprising.  Is there a bug in the original code?
> 
> In the code, we execute a block a instructions to setup stuffs, then
> output a post code. But if the instructions are disabled (ifdef
> CLEAR_FIRST_1M_RAM), it's useless to output the post code no ? For the
> last modifications (enable prefetchers : eax becomes ecx), there is
> indeed a bug. I already sent a patch for this one few months ago but
> it has been lost in the mailing list.
Sorry about that.

> The rdmsr instruction will read
> the msr specified by ecx into edx:eax (Intel Software Dev Manual,
> volume 2B, 4-322).

So I think we should fix the original code and not duplicate it.

Stefan:  What do you think about unifying
src/cpu/intel/model_*/cache_as_ram_post.c?

There are a couple of the files that are very similar.
 
> Thanks again for taking the time to review my patch.
No problem.  Could you send me the corrected Config.lb now that you removed
the disabled devices?

Thanks,
Myles


-- 
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to