[coreboot] [PATCH v2] CAR for C7, newest version
Uwe Hermann
uwe at hermann-uwe.de
Fri Oct 3 14:18:19 CEST 2008
On Fri, Oct 03, 2008 at 04:31:01AM +0200, Carl-Daniel Hailfinger wrote:
> Thanks to Jason Zhao we got a skeleton CAR code for VIA C7. I have tried
> to clean it up a bit and find justifications for every difference from
> x86 and AMD CAR code. I believe this is mostly merge-ready. Although I'd
> have preferred to do this for v3 first, we can fix v2 boards with this
> change and then move them to v3.
> Thanks to Bari Ari for getting the code to me for rewrite/review.
>
> CONFIG_CARTEST shall not be enabled (breaks the build).
>
> Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
> Signed-off-by: Jason Zhao <jasonzhao at viatech.com.cn>
Very nice, thanks!
Acked-by: Uwe Hermann <uwe at hermann-uwe.de>
Can't test here either, but see comments below:
> Index: LinuxBIOSv2-via_CAR/src/cpu/via/car/cache_as_ram.lds
> ===================================================================
> --- LinuxBIOSv2-via_CAR/src/cpu/via/car/cache_as_ram.lds (Revision 0)
> +++ LinuxBIOSv2-via_CAR/src/cpu/via/car/cache_as_ram.lds (Revision 0)
> @@ -0,0 +1,11 @@
> +SECTIONS {
> + .init . : {
> + _init = .;
> + *(.init.text);
> + *(.init.rodata);
> + *(.init.rodata.*);
> + . = ALIGN(16);
> + _einit = .;
> + }
> +
> +}
This is an exact copy of
cpu/x86/car/cache_as_ram.lds (no license header)
and
cpu/amd/car/cache_as_ram.lds (this one says
(C) Stefan Reinauer <stepan at openbios.org> but doesn't mention a license)
Can we use only one of the files for all CAR implementations (probably
requires a small fix in the build system, not sure)?
Or, at least, all of them should have a proper GPL header.
This shouldn't hold up a commit, but we should definately fix
it (now or later).
> Index: LinuxBIOSv2-via_CAR/src/cpu/via/car/cache_as_ram.inc
> ===================================================================
> --- LinuxBIOSv2-via_CAR/src/cpu/via/car/cache_as_ram.inc (Revision 0)
> +++ LinuxBIOSv2-via_CAR/src/cpu/via/car/cache_as_ram.inc (Revision 0)
[...]
> +#define CacheSize DCACHE_RAM_SIZE
> +#define CacheBase DCACHE_RAM_BASE
> +
> +
> +#include <cpu/x86/mtrr.h>
> +
> + /* Save the BIST result */
> + movl %eax, %ebp
> +
> +CacheAsRam:
> +
> + /* disable cache */
> + movl %cr0, %eax
> + orl $(0x1<<30),%eax
> + movl %eax,%cr0
> + invd
> +
> + /* Set the default memory type and enable fixed and variable MTRRs */
> + /* FIXME: The block below should not be commented out. Carl-Daniel */
Please also explain why.
> + /*
> + movl $MTRRdefType_MSR, %ecx
> + xorl %edx, %edx
> + /* Enable Variable and Fixed MTRRs */
> + movl $0x00000c00, %eax
> + wrmsr
> + */
> +
> + /* Clear all MTRRs */
> + xorl %edx, %edx
> + movl $fixed_mtrr_msr, %esi
> +clear_fixed_var_mtrr:
> + lodsl (%esi), %eax
> + testl %eax, %eax
> + jz clear_fixed_var_mtrr_out
> +
> + movl %eax, %ecx
> + xorl %eax, %eax
> + wrmsr
Uwe.
--
http://www.hermann-uwe.de | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org
More information about the coreboot
mailing list