static config for CPUs with K8 example

ron minnich rminnich at lanl.gov
Thu Jul 31 11:29:01 CEST 2003


On Thu, 31 Jul 2003, Stefan Reinauer wrote:

> > First, in cpu/k8, define a file, chip.h:
> > 
> > struct cpu_k8_config {
> >         struct chip *north, *south, *east, *west;
> > };
> 
> I don't think we need both of east and west really. The Bios Developers
> Guide calls these links "UP", "DOWN" and "ACROSS", for LDT0-2. 
> It might still be interesting to have a topological view on the
> hardware, but at least for hypertransport setup, east and west is equal.

OK. I also occured to me last night that we need this:

struct ht_link {
	struct chip *chip;
	unsigned int ht_width, ht_speed;
}; 

then:

southbridge amd/amd8111 "amd8111"
	register "north" = "{.chip = &cpu0, .ht_width = 8, .ht_speed=200"
end

and so on.  Make sense? Or not? I don't have the data book so don't know 
if the 8111 has more than one link.

For the CPUs we then have 

struct cpu_k8_config {
	struct ht_link up, down, across;
};



> > dir /cpu/k8  
>   ^^^^^^^^^^^ 
> 
> can this not implicitly be generated from the below description? 

yes, and it should be, I had the same thought.

> > # define the CPUs, their names, and their connections.
cpu k8 "cpu0"

	register "down" = "{.chip = &amd8111, .ht_width=8, .ht_speed=200}"
	.
	.
end

better?

ron

p.s. the chip-specific structure for the PCI bridge will, of course, have
a pointer to the top of the PCI tree, and that becomes our link from the
static to the dynamic devices.




More information about the coreboot mailing list