speed up ecc clear by enable MTRR/Cache first.

git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1483 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Li-Ta Lo 2004-03-26 18:34:48 +00:00
parent 23e2e18960
commit 8cb91dc9f8
2 changed files with 6 additions and 5 deletions

View File

@ -126,15 +126,15 @@ unsigned long cpu_initialize(struct mem_range *mem)
unsigned long processor_id = this_processors_id(); unsigned long processor_id = this_processors_id();
printk_notice("Initializing CPU #%d\n", processor_id); printk_notice("Initializing CPU #%d\n", processor_id);
/* some cpus need a fixup done. This is the hook for doing that. */
cpufixup(mem);
/* Turn on caching if we haven't already */ /* Turn on caching if we haven't already */
cache_on(mem); cache_on(mem);
display_cpuid(); display_cpuid();
mtrr_check(); mtrr_check();
/* some cpus need a fixup done. This is the hook for doing that. */
cpufixup(mem);
#if 0 #if 0
/* now that everything is really up, enable the l2 cache if desired. /* now that everything is really up, enable the l2 cache if desired.
* The enable can wait until this point, because linuxbios and it's * The enable can wait until this point, because linuxbios and it's
@ -142,6 +142,7 @@ unsigned long cpu_initialize(struct mem_range *mem)
*/ */
configure_l2_cache(); configure_l2_cache();
#endif #endif
interrupts_on(); interrupts_on();
processor_id = this_processors_id(); processor_id = this_processors_id();
printk_info("CPU #%d Initialized\n", processor_id); printk_info("CPU #%d Initialized\n", processor_id);

View File

@ -134,10 +134,11 @@ static void set_init_ecc_mtrrs(void)
{ {
msr_t msr; msr_t msr;
int i; int i;
disable_cache(); disable_cache();
/* First clear all of the msrs to be safe */ /* First clear all of the msrs to be safe */
for(i = 0; i < MTRR_COUNT; i++) { for (i = 0; i < MTRR_COUNT; i++) {
msr_t zero; msr_t zero;
zero.lo = zero.hi = 0; zero.lo = zero.hi = 0;
wrmsr(MTRRphysBase_MSR(i), zero); wrmsr(MTRRphysBase_MSR(i), zero);
@ -165,7 +166,6 @@ static void set_init_ecc_mtrrs(void)
enable_cache(); enable_cache();
} }
static void init_ecc_memory(void) static void init_ecc_memory(void)
{ {
unsigned long startk, begink, endk; unsigned long startk, begink, endk;