OK, I am hoping this is the kind of thing that will work for the K8.
First, in cpu/k8, define a file, chip.h:
struct cpu_k8_config { struct chip *north, *south, *east, *west; };
Thenin cpu/k8/Config.lb, add this line: config chip.h
Note this file could be called anything, but chip.h is a habit for me.
In the mainboard config (mainboard/arima/hdama/Config.lb), you set things up as follows:
southbridge amd/amd8111 "amd8111" end southbridge amd/amd8131 "amd8131" end
# pull in all includes, etc. for the k8. # should we have a 'noise keyword' for this, e.g. 'cputype k8'?
dir /cpu/k8
# define the CPUs, their names, and their connections. cpu k8 "cpu0" register "north" = "amd8111" register "east" = "cpu1" end
cpu k8 "cpu1" register "north" = "amd8131" register "west" = "cpu0" end
This will result in initialized structures, per-cpu, that "do the right thing".
I've hit a bug I have to ask Greg about, but this is a rough idea. Comments?
ron