V2 EPIA FIXED!

Eric W. Biederman ebiederman at lnxi.com
Mon Sep 29 16:59:00 CEST 2003


ron minnich <rminnich at lanl.gov> writes:

> Here's what I had to do. First, though, let me say: the new linuxbios 
> architecture, while hard to get the hang of (learning curve) is very 
> powerful. 
> 
> You can have a mainboard-specific pci scan function, and that's what I 
> needed. I may put this as a generic thing into the pci device code. 
> 
> See below for how it works. Basically, for your mainboard, you provide a 
> function that scans the root of the "mainboard PCI" tree. 

Hmm.  I am curious why the default did not take.
See: devices/root_device.c

All you should need is included below.  And potentially we can have
a generic enumeration function in root_device.c that does the rest
of it as well.

The Opteron has rather special needs so it needs to override the defaults,
but the VIA EPIA should not.

Eric

> ================
> 
> #include <console/console.h>
> #include <device/device.h>
> #include <device/pci.h>
> #include <device/pci_ids.h>
> #include <device/pci_ops.h>
> 
> #include <arch/io.h>
> #include <device/chip.h>
> #include "chip.h"
> 
> static void enumerate(struct chip *chip)
> {
> 	struct chip *child;
> 	chip->dev = &dev_root;
> 	chip->bus = 0;
> 	for(child = chip->children; child; child = child->next) {
> 		child->bus = &dev_root.link[0];
> 	}
> }
> struct chip_control mainboard_via_epia_control = {
> 	.enumerate = enumerate, 
> 	.name      = "VIA EPIA mainboard ",
> };



More information about the coreboot mailing list