Drop CONFIG_CHIP_NAME. Those config statements in Config.lb should
[coreboot.git] / src / include / device / device.h
index be93f554fa3c4d26281f3cdb4b46dde479bbe54c..7d7a6bc15a9480cbbf97bde3a5d2abda1ce4f0d0 100644 (file)
@@ -15,16 +15,12 @@ struct smbus_bus_operations;
 /* Chip operations */
 struct chip_operations {
        void (*enable_dev)(struct device *dev);
-#if CONFIG_CHIP_NAME == 1
        char *name;
-#endif
 };
 
-#if CONFIG_CHIP_NAME == 1
 #define CHIP_NAME(X) .name = X,
-#else
-#define CHIP_NAME(X)
-#endif
+
+struct bus;
 
 struct device_operations {
        void (*read_resources)(device_t dev);
@@ -34,6 +30,7 @@ struct device_operations {
        unsigned int (*scan_bus)(device_t bus, unsigned int max);
        void (*enable)(device_t dev);
        void (*set_link)(device_t dev, unsigned int link);
+       void (*reset_bus)(struct bus *bus);
        const struct pci_operations *ops_pci;
        const struct smbus_bus_operations *ops_smbus_bus;
        const struct pci_bus_operations *ops_pci_bus;
@@ -45,12 +42,14 @@ struct bus {
        device_t        children;       /* devices behind this bridge */
        unsigned        bridge_ctrl;    /* Bridge control register */
        unsigned char   link;           /* The index of this link */
-       unsigned char   secondary;      /* secondary bus number */
-       unsigned char   subordinate;    /* max subordinate bus number */
+       uint16_t        secondary;      /* secondary bus number */
+       uint16_t        subordinate;    /* max subordinate bus number */
        unsigned char   cap;            /* PCi capability offset */
+       unsigned        reset_needed : 1;
+       unsigned        disable_relaxed_ordering : 1;
 };
 
-#define MAX_RESOURCES 12
+#define MAX_RESOURCES 24 
 #define MAX_LINKS    8 
 /*
  * There is one device structure for each slot-number/function-number
@@ -66,7 +65,7 @@ struct device {
        struct device_path path;
        unsigned        vendor;
        unsigned        device;
-       unsigned int    class;          /* 3 bytes: (base,sub,prog-if) */
+       unsigned int    class;          /* 3 bytes: (base, sub, prog-if) */
        unsigned int    hdr_type;       /* PCI header type */
        unsigned int    enabled : 1;    /* set if we should enable the device */
        unsigned int    initialized : 1; /* set if we have initialized the device */
@@ -80,8 +79,9 @@ struct device {
        struct resource resource[MAX_RESOURCES];
        unsigned int resources;
 
-       /* link are (down sream) buses attached to the device, usually a leaf
-        * device with no child have 0 bus attached and a bridge has 1 bus */
+       /* link are (down stream) buses attached to the device, usually a leaf
+        * device with no children have 0 buses attached and a bridge has 1 bus 
+        */
        struct bus link[MAX_LINKS];
        /* number of buses attached to the device */
        unsigned int links;
@@ -96,20 +96,26 @@ extern struct device        *all_devices;   /* list of all devices */
 
 
 /* Generic device interface functions */
-extern device_t alloc_dev(struct bus *parent, struct device_path *path);
-extern void dev_enumerate(void);
-extern void dev_configure(void);
-extern void dev_enable(void);
-extern void dev_initialize(void);
+device_t alloc_dev(struct bus *parent, struct device_path *path);
+void dev_enumerate(void);
+void dev_configure(void);
+void dev_enable(void);
+void dev_initialize(void);
+void dev_optimize(void);
 
 /* Generic device helper functions */
-extern void compute_allocate_resource(struct bus *bus, struct resource *bridge,
+int reset_bus(struct bus *bus);
+unsigned int scan_bus(struct device *bus, unsigned int max);
+void compute_allocate_resource(struct bus *bus, struct resource *bridge,
        unsigned long type_mask, unsigned long type);
-extern void assign_resources(struct bus *bus);
-extern void enable_resources(struct device *dev);
-extern void enumerate_static_device(void);
-extern void enumerate_static_devices(void);
-extern const char *dev_path(device_t dev);
+void assign_resources(struct bus *bus);
+void enable_resources(struct device *dev);
+void enumerate_static_device(void);
+void enumerate_static_devices(void);
+const char *dev_path(device_t dev);
+const char *bus_path(struct bus *bus);
+void dev_set_enabled(device_t dev, int enable);
+void disable_children(struct bus *bus);
 
 /* Helper functions */
 device_t find_dev_path(struct bus *parent, struct device_path *path);
@@ -126,13 +132,12 @@ device_t dev_find_slot_on_smbus (unsigned int bus, unsigned int addr);
 #define DEVICE_IO_ALIGN 16 
 #define DEVICE_MEM_ALIGN 4096
 
-struct device_operations default_dev_ops_root;
-extern void root_dev_read_resources(device_t dev);
-extern void root_dev_set_resources(device_t dev);
-extern unsigned int scan_static_bus(device_t bus, unsigned int max);
-extern void enable_childrens_resources(device_t dev);
-extern void root_dev_enable_resources(device_t dev);
-extern unsigned int root_dev_scan_bus(device_t root, unsigned int max);
-extern void root_dev_init(device_t dev);
-
+extern struct device_operations default_dev_ops_root;
+void root_dev_read_resources(device_t dev);
+void root_dev_set_resources(device_t dev);
+unsigned int scan_static_bus(device_t bus, unsigned int max);
+void enable_childrens_resources(device_t dev);
+void root_dev_enable_resources(device_t dev);
+unsigned int root_dev_scan_bus(device_t root, unsigned int max);
+void root_dev_init(device_t dev);
 #endif /* DEVICE_H */