Change CONFIG_LB_MEM_TOPK to CONFIG_RAMTOP to match CONFIG_RAMBASE.
Signed-off-by: Myles Watson <mylesgw@gmail.com> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4788 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@ -246,7 +246,7 @@ clear_fixed_var_mtrr_out:
|
||||
/* enable memory access for first MBs using top_mem */
|
||||
movl $TOP_MEM, %ecx
|
||||
xorl %edx, %edx
|
||||
movl $(((CONFIG_LB_MEM_TOPK << 10) + TOP_MEM_MASK) & ~TOP_MEM_MASK) , %eax
|
||||
movl $(((CONFIG_RAMTOP) + TOP_MEM_MASK) & ~TOP_MEM_MASK) , %eax
|
||||
wrmsr
|
||||
#endif /* CONFIG_USE_FAILOVER_IMAGE == 1*/
|
||||
|
||||
|
@ -9,15 +9,15 @@ static void __attribute__((noinline)) clear_init_ram(void)
|
||||
|
||||
#if CONFIG_HAVE_ACPI_RESUME == 1
|
||||
/* clear only coreboot used region of memory. Note: this may break ECC enabled boards */
|
||||
clear_memory( CONFIG_RAMBASE, (CONFIG_LB_MEM_TOPK << 10) - CONFIG_RAMBASE - CONFIG_DCACHE_RAM_SIZE);
|
||||
clear_memory( CONFIG_RAMBASE, (CONFIG_RAMTOP) - CONFIG_RAMBASE - CONFIG_DCACHE_RAM_SIZE);
|
||||
#else
|
||||
clear_memory(0, ((CONFIG_LB_MEM_TOPK<<10) - CONFIG_DCACHE_RAM_SIZE));
|
||||
clear_memory(0, ((CONFIG_RAMTOP) - CONFIG_DCACHE_RAM_SIZE));
|
||||
#endif
|
||||
}
|
||||
|
||||
/* be warned, this file will be used by core other than core 0/node 0 or core0/node0 when cpu_reset*/
|
||||
static void set_init_ram_access(void)
|
||||
{
|
||||
set_var_mtrr(0, 0x00000000, CONFIG_LB_MEM_TOPK << 10, MTRR_TYPE_WRBACK);
|
||||
set_var_mtrr(0, 0x00000000, CONFIG_RAMTOP, MTRR_TYPE_WRBACK);
|
||||
}
|
||||
|
||||
|
@ -56,13 +56,13 @@ static void post_cache_as_ram(void)
|
||||
print_debug_pcar("testx = ", testx);
|
||||
|
||||
/* copy data from cache as ram to
|
||||
ram need to set CONFIG_LB_MEM_TOPK to 2048 and use var mtrr instead.
|
||||
ram need to set CONFIG_RAMTOP to 2M and use var mtrr instead.
|
||||
*/
|
||||
#if CONFIG_LB_MEM_TOPK <= 1024
|
||||
#error "You need to set CONFIG_LB_MEM_TOPK greater than 1024"
|
||||
#if CONFIG_RAMTOP <= 0x100000
|
||||
#error "You need to set CONFIG_RAMTOP greater than 1M"
|
||||
#endif
|
||||
|
||||
set_init_ram_access(); /* So we can access RAM from [1M, CONFIG_LB_MEM_TOPK) */
|
||||
set_init_ram_access(); /* So we can access RAM from [1M, CONFIG_RAMTOP) */
|
||||
|
||||
// dump_mem(CONFIG_DCACHE_RAM_BASE+CONFIG_DCACHE_RAM_SIZE-0x8000, CONFIG_DCACHE_RAM_BASE+CONFIG_DCACHE_RAM_SIZE-0x7c00);
|
||||
print_debug("Copying data from cache to RAM -- switching to use RAM as stack... ");
|
||||
@ -76,14 +76,14 @@ static void post_cache_as_ram(void)
|
||||
);
|
||||
#endif
|
||||
|
||||
memcopy((void *)((CONFIG_LB_MEM_TOPK<<10)-CONFIG_DCACHE_RAM_SIZE), (void *)CONFIG_DCACHE_RAM_BASE, CONFIG_DCACHE_RAM_SIZE); //inline
|
||||
// dump_mem((CONFIG_LB_MEM_TOPK<<10) - 0x8000, (CONFIG_LB_MEM_TOPK<<10) - 0x7c00);
|
||||
memcopy((void *)((CONFIG_RAMTOP)-CONFIG_DCACHE_RAM_SIZE), (void *)CONFIG_DCACHE_RAM_BASE, CONFIG_DCACHE_RAM_SIZE); //inline
|
||||
// dump_mem((CONFIG_RAMTOP) - 0x8000, (CONFIG_RAMTOP) - 0x7c00);
|
||||
|
||||
__asm__ volatile (
|
||||
/* set new esp */ /* before CONFIG_RAMBASE */
|
||||
"subl %0, %%ebp\n\t"
|
||||
"subl %0, %%esp\n\t"
|
||||
::"a"( (CONFIG_DCACHE_RAM_BASE + CONFIG_DCACHE_RAM_SIZE)- (CONFIG_LB_MEM_TOPK<<10) )
|
||||
::"a"( (CONFIG_DCACHE_RAM_BASE + CONFIG_DCACHE_RAM_SIZE)- (CONFIG_RAMTOP) )
|
||||
); // We need to push %eax to the stack (CAR) before copy stack and pop it later after copy stack and change esp
|
||||
#if 0
|
||||
__asm__ volatile (
|
||||
@ -102,10 +102,10 @@ static void post_cache_as_ram(void)
|
||||
disable_cache_as_ram_bsp();
|
||||
|
||||
print_debug("Clearing initial memory region: ");
|
||||
clear_init_ram(); //except the range from [(CONFIG_LB_MEM_TOPK<<10) - CONFIG_DCACHE_RAM_SIZE, (CONFIG_LB_MEM_TOPK<<10))
|
||||
clear_init_ram(); //except the range from [(CONFIG_RAMTOP) - CONFIG_DCACHE_RAM_SIZE, (CONFIG_RAMTOP))
|
||||
print_debug("Done\r\n");
|
||||
|
||||
// dump_mem((CONFIG_LB_MEM_TOPK<<10) - 0x8000, (CONFIG_LB_MEM_TOPK<<10) - 0x7c00);
|
||||
// dump_mem((CONFIG_RAMTOP) - 0x8000, (CONFIG_RAMTOP) - 0x7c00);
|
||||
|
||||
#ifndef CONFIG_MEM_TRAIN_SEQ
|
||||
#define CONFIG_MEM_TRAIN_SEQ 0
|
||||
@ -113,7 +113,7 @@ static void post_cache_as_ram(void)
|
||||
set_sysinfo_in_ram(1); // So other core0 could start to train mem
|
||||
|
||||
#if CONFIG_MEM_TRAIN_SEQ == 1
|
||||
// struct sys_info *sysinfox = ((CONFIG_LB_MEM_TOPK<<10) - CONFIG_DCACHE_RAM_GLOBAL_VAR_SIZE);
|
||||
// struct sys_info *sysinfox = ((CONFIG_RAMTOP) - CONFIG_DCACHE_RAM_GLOBAL_VAR_SIZE);
|
||||
|
||||
// wait for ap memory to trained
|
||||
// wait_all_core0_mem_trained(sysinfox); // moved to lapic_init_cpus.c
|
||||
|
@ -33,7 +33,7 @@
|
||||
void cpus_ready_for_init(void)
|
||||
{
|
||||
#if CONFIG_MEM_TRAIN_SEQ == 1
|
||||
struct sys_info *sysinfox = (struct sys_info *)((CONFIG_LB_MEM_TOPK<<10) - CONFIG_DCACHE_RAM_GLOBAL_VAR_SIZE);
|
||||
struct sys_info *sysinfox = (struct sys_info *)((CONFIG_RAMTOP) - CONFIG_DCACHE_RAM_GLOBAL_VAR_SIZE);
|
||||
// wait for ap memory to trained
|
||||
wait_all_core0_mem_trained(sysinfox);
|
||||
#endif
|
||||
@ -182,7 +182,7 @@ static void set_init_ecc_mtrrs(void)
|
||||
msr.lo = 0x00000000 | MTRR_TYPE_WRBACK;
|
||||
wrmsr(MTRRphysBase_MSR(0), msr);
|
||||
msr.hi = 0x000000ff;
|
||||
msr.lo = ~((CONFIG_LB_MEM_TOPK << 10) - 1) | 0x800;
|
||||
msr.lo = ~((CONFIG_RAMTOP) - 1) | 0x800;
|
||||
wrmsr(MTRRphysMask_MSR(0), msr);
|
||||
|
||||
/* Set the default type to write combining */
|
||||
@ -308,8 +308,8 @@ static void init_ecc_memory(unsigned node_id)
|
||||
|
||||
/* Don't start too early */
|
||||
begink = startk;
|
||||
if (begink < CONFIG_LB_MEM_TOPK) {
|
||||
begink = CONFIG_LB_MEM_TOPK;
|
||||
if (begink < (CONFIG_RAMTOP >> 10)) {
|
||||
begink = (CONFIG_RAMTOP >>10);
|
||||
}
|
||||
|
||||
printk_debug("Clearing memory %luK - %luK: ", begink, endk);
|
||||
|
@ -38,7 +38,7 @@ static void do_amd_early_mtrr_init(const unsigned long *mtrr_msrs)
|
||||
|
||||
/* Enable memory access for 0 - 1MB using top_mem */
|
||||
msr.hi = 0;
|
||||
msr.lo = (((CONFIG_LB_MEM_TOPK << 10) + TOP_MEM_MASK) & ~TOP_MEM_MASK);
|
||||
msr.lo = (((CONFIG_RAMTOP) + TOP_MEM_MASK) & ~TOP_MEM_MASK);
|
||||
wrmsr(TOP_MEM, msr);
|
||||
|
||||
#if defined(CONFIG_XIP_ROM_SIZE)
|
||||
|
Reference in New Issue
Block a user