- O2, enums, and switch statements work in romcc
- Support for compiling romcc on non x86 platforms - new romc options -msse and -mmmx for specifying extra registers to use - Bug fixes to device the device disable/enable framework and an amd8111 implementation - Move the link specification to the chip specification instead of the path - Allow specifying devices with internal bridges. - Initial via epia support - Opteron errata fixes git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1200 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@@ -30,5 +30,9 @@
|
||||
#define TOP_MEM 0xC001001A
|
||||
#define TOP_MEM2 0xC001001D
|
||||
#define HWCR_MSR 0xC0010015
|
||||
#define NB_CFG_MSR 0xC001001f
|
||||
#define IC_CFG_MSR 0xC0011021
|
||||
#define DC_CFG_MSR 0xC0011022
|
||||
#define BU_CFG_MSR 0xC0011023
|
||||
|
||||
#endif /* CPU_K8_MTRR_H */
|
||||
|
@@ -49,6 +49,7 @@ enum chip_pass {
|
||||
*/
|
||||
|
||||
struct chip;
|
||||
struct device;
|
||||
|
||||
/* there is one of these for each TYPE of chip */
|
||||
struct chip_control {
|
||||
@@ -56,6 +57,7 @@ struct chip_control {
|
||||
char *name;
|
||||
void (*enable)(struct chip *, enum chip_pass);
|
||||
void (*enumerate)(struct chip *chip);
|
||||
void (*enable_dev)(struct device *dev);
|
||||
};
|
||||
|
||||
|
||||
@@ -72,6 +74,7 @@ struct bus;
|
||||
#define MAX_CHIP_PATHS 16
|
||||
#endif
|
||||
struct chip {
|
||||
unsigned link;
|
||||
struct chip_control *control; /* for this device */
|
||||
struct chip_device_path path[MAX_CHIP_PATHS]; /* can be 0, in which case the default is taken */
|
||||
char *configuration; /* can be 0. */
|
||||
|
@@ -35,6 +35,7 @@ struct bus {
|
||||
* combination:
|
||||
*/
|
||||
|
||||
struct chip;
|
||||
struct device {
|
||||
struct bus * bus; /* bus this device is on */
|
||||
device_t sibling; /* next device on this bus */
|
||||
@@ -72,6 +73,7 @@ struct device {
|
||||
|
||||
unsigned long rom_address;
|
||||
struct device_operations *ops;
|
||||
struct chip *chip;
|
||||
};
|
||||
|
||||
extern struct device dev_root; /* root bus */
|
||||
@@ -94,7 +96,7 @@ extern void enumerate_static_device(void);
|
||||
extern const char *dev_path(device_t dev);
|
||||
|
||||
/* Helper functions */
|
||||
device_t alloc_find_dev(struct bus *bus, struct device_path *path);
|
||||
device_t alloc_find_dev(struct bus *parent, struct device_path *path);
|
||||
device_t dev_find_device (unsigned int vendor, unsigned int device, device_t from);
|
||||
device_t dev_find_class (unsigned int class, device_t from);
|
||||
device_t dev_find_slot (unsigned int bus, unsigned int devfn);
|
||||
|
@@ -3,6 +3,7 @@
|
||||
|
||||
enum device_path_type {
|
||||
DEVICE_PATH_NONE = 0,
|
||||
DEVICE_PATH_ROOT,
|
||||
DEVICE_PATH_PCI,
|
||||
DEVICE_PATH_PNP,
|
||||
DEVICE_PATH_I2C,
|
||||
@@ -10,6 +11,7 @@ enum device_path_type {
|
||||
|
||||
struct pci_path
|
||||
{
|
||||
unsigned bus;
|
||||
unsigned devfn;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user