[coreboot] K8 RAMinit problematic code
c-d.hailfinger.devel.2006 at gmx.net
Mon Sep 1 19:10:05 CEST 2008
On 01.09.2008 17:39, ron minnich wrote:
> On Mon, Sep 1, 2008 at 8:12 AM, Carl-Daniel Hailfinger
> <c-d.hailfinger.devel.2006 at gmx.net> wrote:
>> this patch is not to be applied, but an annotation from my tree.
>> Index: northbridge/amd/k8/dqs.c
>> --- northbridge/amd/k8/dqs.c (Revision 853)
>> +++ northbridge/amd/k8/dqs.c (Arbeitskopie)
>> @@ -2001,6 +2001,7 @@
>> static inline void train_ram_on_node(unsigned nodeid, unsigned coreid, struct sys_info *sysinfo, unsigned retcall)
>> if(coreid) return; // only do it on core0
>> +#error This is broken beyond repair. We need to use the generic global variable infrastructure, especially if we relocate the global variables without telling anybody.
> These fixes come in to play once single core is done.
Sorry, I meant that
struct sys_info *sysinfox = ((CONFIG_LB_MEM_TOPK<<10) - DCACHE_RAM_GLOBAL_VAR_SIZE);
is broken beyond repair. Basically, that code tries to establish a new
location for global variables without telling anyone.
> We're going to write this code as always SMP safe, and I want to
> remove the CONFIG_*_SMP conditionals. They make no sense for a bios.
Interesting point of view. As long as we're allowed to make locking on
pure uniprocessor architectures a no-op, I'm totally for it.
More information about the coreboot