diff options
author | Greg Watson <jarrah@users.sourceforge.net> | 2003-07-21 04:20:08 +0000 |
---|---|---|
committer | Greg Watson <jarrah@users.sourceforge.net> | 2003-07-21 04:20:08 +0000 |
commit | 8275bad6f640d0da5ead72984f1efe32e6172d7d (patch) | |
tree | 6bf67678b269cb6ad5ff0365acef72d362dc9607 /src | |
parent | 54b3d233ed4a66bc9fbc8af7dd742af7d8f2aca3 (diff) |
more chip stuff
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@990 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src')
-rw-r--r-- | src/devices/Config.lb | 1 | ||||
-rw-r--r-- | src/devices/chip.c | 11 | ||||
-rw-r--r-- | src/include/device/chip.h | 8 | ||||
-rw-r--r-- | src/mainboard/motorola/sandpoint/Config.lb | 2 |
4 files changed, 19 insertions, 3 deletions
diff --git a/src/devices/Config.lb b/src/devices/Config.lb index 3dd2ac3935..199c7da46b 100644 --- a/src/devices/Config.lb +++ b/src/devices/Config.lb @@ -1,3 +1,4 @@ object device.o object device_util.o object pci_device.o +object chip.o diff --git a/src/devices/chip.c b/src/devices/chip.c index d25c92e0d7..e99d731043 100644 --- a/src/devices/chip.c +++ b/src/devices/chip.c @@ -10,6 +10,15 @@ void chip_configure(struct chip *root, enum chip_pass pass) { - while (root) { + struct chip *c; + + for (c = root; c; c = c->next) { + if (root->control && root->control->enable) + root->control->enable(root, pass); + } + + for (c = root; c; c = c->next) { + if (root->children) + chip_configure(root->children, pass); } } diff --git a/src/include/device/chip.h b/src/include/device/chip.h index 8de91a1129..328b64216e 100644 --- a/src/include/device/chip.h +++ b/src/include/device/chip.h @@ -6,6 +6,11 @@ */ /* some of the types of resources chips can control */ +#ifndef CHIP_CONFIGURE +#define CHIP_CONFIGURE(chip, pass) chip_configure(chip, pass) +#else +#define CHIP_CONFIGURE(chip, pass) +#endif struct com_ports { unsigned int enable,baud, base, irq; @@ -24,6 +29,7 @@ struct lpt_ports { enum chip_pass { CHIP_PRE_CONSOLE, + CHIP_PRE_PCI, CHIP_PRE_DEVICE_ENUMERATE, CHIP_PRE_DEVICE_CONFIGURE, CHIP_PRE_DEVICE_ENABLE, @@ -59,5 +65,5 @@ struct chip { void *chip_info; /* the dreaded "void *" */ }; -extern struct chip *root; +extern struct chip root; extern void chip_configure(struct chip *, enum chip_pass); diff --git a/src/mainboard/motorola/sandpoint/Config.lb b/src/mainboard/motorola/sandpoint/Config.lb index f5e6c17a50..49e529e37f 100644 --- a/src/mainboard/motorola/sandpoint/Config.lb +++ b/src/mainboard/motorola/sandpoint/Config.lb @@ -34,7 +34,7 @@ end ## southbridge winbond/w83c553 end superio NSC/pc97307 - register "com1={1} com2={1} floppy=0 lpt=1 keyboard=1 hwmonitor=1" + register ".com1={1}, .lpt={0}, .port=SIO_COM1_BASE" end ## |