Various Doxygen comment fixes, typo fixes, etc.
- Fix incorrect argument names for @param entries. - Add missing @param and @return entries, partly as TODOs. - s/@returns/@return/, that's a typo. - Small whitespace fixes while I'm at it. - Drop useless @brief commands, they just clutter the comments and make them harder to read. Doxygen has an option to always use the first sentence of a Doxygen-comment as @brief automatically (should be on per default). Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de> Acked-by: Uwe Hermann <uwe@hermann-uwe.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5955 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
b14fb6abd6
commit
c1ee429135
|
@ -46,23 +46,20 @@ extern struct device *last_dev;
|
|||
/** Linked list of free resources */
|
||||
struct resource *free_resources = NULL;
|
||||
|
||||
DECLARE_SPIN_LOCK(dev_lock)
|
||||
|
||||
/**
|
||||
* @brief Allocate a new device structure.
|
||||
* Allocate a new device structure.
|
||||
*
|
||||
* Allocte a new device structure and attached it to the device tree as a
|
||||
* Allocte a new device structure and attach it to the device tree as a
|
||||
* child of the parent bus.
|
||||
*
|
||||
* @param parent parent bus the newly created device attached to.
|
||||
* @param path path to the device to be created.
|
||||
*
|
||||
* @return pointer to the newly created device structure.
|
||||
* @param parent Parent bus the newly created device should be attached to.
|
||||
* @param path Path to the device to be created.
|
||||
* @return Pointer to the newly created device structure.
|
||||
*
|
||||
* @see device_path
|
||||
*/
|
||||
|
||||
DECLARE_SPIN_LOCK(dev_lock)
|
||||
|
||||
device_t alloc_dev(struct bus *parent, struct device_path *path)
|
||||
{
|
||||
device_t dev, child;
|
||||
|
@ -103,10 +100,11 @@ device_t alloc_dev(struct bus *parent, struct device_path *path)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief round a number up to an alignment.
|
||||
* @param val the starting value
|
||||
* @param roundup Alignment as a power of two
|
||||
* @returns rounded up number
|
||||
* Round a number up to an alignment.
|
||||
*
|
||||
* @param val The starting value.
|
||||
* @param roundup Alignment as a power of two.
|
||||
* @return Rounded up number.
|
||||
*/
|
||||
static resource_t round(resource_t val, unsigned long pow)
|
||||
{
|
||||
|
@ -117,15 +115,17 @@ static resource_t round(resource_t val, unsigned long pow)
|
|||
return val;
|
||||
}
|
||||
|
||||
/** Read the resources on all devices of a given bus.
|
||||
* @param bus bus to read the resources on.
|
||||
/**
|
||||
* Read the resources on all devices of a given bus.
|
||||
*
|
||||
* @param bus Bus to read the resources on.
|
||||
*/
|
||||
static void read_resources(struct bus *bus)
|
||||
{
|
||||
struct device *curdev;
|
||||
|
||||
printk(BIOS_SPEW, "%s %s bus %x link: %d\n", dev_path(bus->dev), __func__,
|
||||
bus->secondary, bus->link_num);
|
||||
printk(BIOS_SPEW, "%s %s bus %x link: %d\n", dev_path(bus->dev),
|
||||
__func__, bus->secondary, bus->link_num);
|
||||
|
||||
/* Walk through all devices and find which resources they need. */
|
||||
for (curdev = bus->children; curdev; curdev = curdev->sibling) {
|
||||
|
@ -205,7 +205,8 @@ static struct device *largest_resource(struct bus *bus,
|
|||
return state.result_dev;
|
||||
}
|
||||
|
||||
/* Compute allocate resources is the guts of the resource allocator.
|
||||
/**
|
||||
* Compute allocate resources is the guts of the resource allocator.
|
||||
*
|
||||
* The problem.
|
||||
* - Allocate resource locations for every device.
|
||||
|
@ -231,6 +232,11 @@ static struct device *largest_resource(struct bus *bus,
|
|||
* a device with a couple of resources, and not need to special case it in
|
||||
* the allocator. Also this allows handling of other types of bridges.
|
||||
*
|
||||
* @param bus The bus we are traversing.
|
||||
* @param bridge The bridge resource which must contain the bus' resources.
|
||||
* @param type_mask This value gets ANDed with the resource type.
|
||||
* @param type This value must match the result of the AND.
|
||||
* @return TODO
|
||||
*/
|
||||
static void compute_resources(struct bus *bus, struct resource *bridge,
|
||||
unsigned long type_mask, unsigned long type)
|
||||
|
@ -392,8 +398,8 @@ static void compute_resources(struct bus *bus, struct resource *bridge,
|
|||
*
|
||||
* @param bus The bus we are traversing.
|
||||
* @param bridge The bridge resource which must contain the bus' resources.
|
||||
* @param type_mask This value gets anded with the resource type.
|
||||
* @param type This value must match the result of the and.
|
||||
* @param type_mask This value gets ANDed with the resource type.
|
||||
* @param type This value must match the result of the AND.
|
||||
*/
|
||||
static void allocate_resources(struct bus *bus, struct resource *bridge,
|
||||
unsigned long type_mask, unsigned long type)
|
||||
|
@ -544,6 +550,7 @@ static void allocate_resources(struct bus *bus, struct resource *bridge,
|
|||
#else
|
||||
#define MEM_MASK (IORESOURCE_MEM)
|
||||
#endif
|
||||
|
||||
#define IO_MASK (IORESOURCE_IO)
|
||||
#define PREF_TYPE (IORESOURCE_PREFETCH | IORESOURCE_MEM)
|
||||
#define MEM_TYPE (IORESOURCE_MEM)
|
||||
|
@ -749,9 +756,7 @@ static void set_vga_bridge_bits(void)
|
|||
#endif
|
||||
|
||||
/**
|
||||
* @brief Assign the computed resources to the devices on the bus.
|
||||
*
|
||||
* @param bus Pointer to the structure for this bus
|
||||
* Assign the computed resources to the devices on the bus.
|
||||
*
|
||||
* Use the device specific set_resources method to store the computed
|
||||
* resources to hardware. For bridge devices, the set_resources() method
|
||||
|
@ -760,6 +765,8 @@ static void set_vga_bridge_bits(void)
|
|||
* Mutual recursion:
|
||||
* assign_resources() -> device_operation::set_resources()
|
||||
* device_operation::set_resources() -> assign_resources()
|
||||
*
|
||||
* @param bus Pointer to the structure for this bus.
|
||||
*/
|
||||
void assign_resources(struct bus *bus)
|
||||
{
|
||||
|
@ -784,9 +791,7 @@ void assign_resources(struct bus *bus)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Enable the resources for devices on a link
|
||||
*
|
||||
* @param link the link whose devices' resources are to be enabled
|
||||
* Enable the resources for devices on a link.
|
||||
*
|
||||
* Enable resources of the device by calling the device specific
|
||||
* enable_resources() method.
|
||||
|
@ -795,6 +800,7 @@ void assign_resources(struct bus *bus)
|
|||
* order problem. This is done by calling the parent's enable_resources()
|
||||
* method before its childrens' enable_resources() methods.
|
||||
*
|
||||
* @param link The link whose devices' resources are to be enabled.
|
||||
*/
|
||||
static void enable_resources(struct bus *link)
|
||||
{
|
||||
|
@ -815,14 +821,10 @@ static void enable_resources(struct bus *link)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Reset all of the devices a bus
|
||||
*
|
||||
* Reset all of the devices on a bus and clear the bus's reset_needed flag.
|
||||
*
|
||||
* @param bus pointer to the bus structure
|
||||
*
|
||||
* @param bus Pointer to the bus structure.
|
||||
* @return 1 if the bus was successfully reset, 0 otherwise.
|
||||
*
|
||||
*/
|
||||
int reset_bus(struct bus *bus)
|
||||
{
|
||||
|
@ -835,7 +837,7 @@ int reset_bus(struct bus *bus)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Scan for devices on a bus.
|
||||
* Scan for devices on a bus.
|
||||
*
|
||||
* If there are bridges on the bus, recursively scan the buses behind the
|
||||
* bridges. If the setting up and tuning of the bus causes a reset to be
|
||||
|
@ -873,7 +875,7 @@ unsigned int scan_bus(struct device *busdev, unsigned int max)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Determine the existence of devices and extend the device tree.
|
||||
* Determine the existence of devices and extend the device tree.
|
||||
*
|
||||
* Most of the devices in the system are listed in the mainboard Config.lb
|
||||
* file. The device structures for these devices are generated at compile
|
||||
|
@ -916,7 +918,7 @@ void dev_enumerate(void)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Configure devices on the devices tree.
|
||||
* Configure devices on the devices tree.
|
||||
*
|
||||
* Starting at the root of the device tree, travel it recursively in two
|
||||
* passes. In the first pass, we compute and allocate resources (ranges)
|
||||
|
@ -1032,7 +1034,7 @@ void dev_configure(void)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Enable devices on the device tree.
|
||||
* Enable devices on the device tree.
|
||||
*
|
||||
* Starting at the root, walk the tree and enable all devices/bridges by
|
||||
* calling the device's enable_resources() method.
|
||||
|
@ -1051,14 +1053,13 @@ void dev_enable(void)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Initialize a specific device
|
||||
*
|
||||
* @param dev the device to be initialized
|
||||
* Initialize a specific device.
|
||||
*
|
||||
* The parent should be initialized first to avoid having an ordering
|
||||
* problem. This is done by calling the parent's init()
|
||||
* method before its childrens' init() methods.
|
||||
*
|
||||
* @param dev The device to be initialized.
|
||||
*/
|
||||
static void init_dev(struct device *dev)
|
||||
{
|
||||
|
@ -1095,10 +1096,10 @@ static void init_link(struct bus *link)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Initialize all devices in the global device tree.
|
||||
* Initialize all devices in the global device tree.
|
||||
*
|
||||
* Starting at the root device, call the device's init() method to do device-
|
||||
* specific setup, then call each child's init() method.
|
||||
* Starting at the root device, call the device's init() method to do
|
||||
* device-specific setup, then call each child's init() method.
|
||||
*/
|
||||
void dev_initialize(void)
|
||||
{
|
||||
|
|
|
@ -30,12 +30,12 @@
|
|||
#include <string.h>
|
||||
|
||||
/**
|
||||
* @brief See if a device structure exists for path
|
||||
* See if a device structure exists for path.
|
||||
*
|
||||
* @param bus The bus to find the device on
|
||||
* @param path The relative path from the bus to the appropriate device
|
||||
* @return pointer to a device structure for the device on bus at path
|
||||
* or 0/NULL if no device is found
|
||||
* @param parent The bus to find the device on.
|
||||
* @param path The relative path from the bus to the appropriate device.
|
||||
* @return Pointer to a device structure for the device on bus at path
|
||||
* or 0/NULL if no device is found.
|
||||
*/
|
||||
device_t find_dev_path(struct bus *parent, struct device_path *path)
|
||||
{
|
||||
|
@ -49,11 +49,11 @@ device_t find_dev_path(struct bus *parent, struct device_path *path)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief See if a device structure already exists and if not allocate it
|
||||
* See if a device structure already exists and if not allocate it.
|
||||
*
|
||||
* @param bus The bus to find the device on
|
||||
* @param path The relative path from the bus to the appropriate device
|
||||
* @return pointer to a device structure for the device on bus at path
|
||||
* @param parent The bus to find the device on.
|
||||
* @param path The relative path from the bus to the appropriate device.
|
||||
* @return Pointer to a device structure for the device on bus at path.
|
||||
*/
|
||||
device_t alloc_find_dev(struct bus *parent, struct device_path *path)
|
||||
{
|
||||
|
@ -66,11 +66,11 @@ device_t alloc_find_dev(struct bus *parent, struct device_path *path)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Given a PCI bus and a devfn number, find the device structure
|
||||
* Given a PCI bus and a devfn number, find the device structure.
|
||||
*
|
||||
* @param bus The bus number
|
||||
* @param devfn a device/function number
|
||||
* @return pointer to the device structure
|
||||
* @param bus The bus number.
|
||||
* @param devfn A device/function number.
|
||||
* @return Pointer to the device structure (if found), 0 otherwise.
|
||||
*/
|
||||
struct device *dev_find_slot(unsigned int bus, unsigned int devfn)
|
||||
{
|
||||
|
@ -89,11 +89,11 @@ struct device *dev_find_slot(unsigned int bus, unsigned int devfn)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Given a smbus bus and a device number, find the device structure
|
||||
* Given an SMBus bus and a device number, find the device structure.
|
||||
*
|
||||
* @param bus The bus number
|
||||
* @param addr a device number
|
||||
* @return pointer to the device structure
|
||||
* @param bus The bus number.
|
||||
* @param addr A device number.
|
||||
* @return Pointer to the device structure (if found), 0 otherwise.
|
||||
*/
|
||||
struct device *dev_find_slot_on_smbus(unsigned int bus, unsigned int addr)
|
||||
{
|
||||
|
@ -111,15 +111,18 @@ struct device *dev_find_slot_on_smbus(unsigned int bus, unsigned int addr)
|
|||
return result;
|
||||
}
|
||||
|
||||
/** Find a device of a given vendor and type
|
||||
* @param vendor Vendor ID (e.g. 0x8086 for Intel)
|
||||
* @param device Device ID
|
||||
/**
|
||||
* Find a device of a given vendor and type.
|
||||
*
|
||||
* @param vendor A PCI vendor ID (e.g. 0x8086 for Intel).
|
||||
* @param device A PCI device ID.
|
||||
* @param from Pointer to the device structure, used as a starting point
|
||||
* in the linked list of all_devices, which can be 0 to start at the
|
||||
* head of the list (i.e. all_devices)
|
||||
* @return Pointer to the device struct
|
||||
* head of the list (i.e. all_devices).
|
||||
* @return Pointer to the device struct.
|
||||
*/
|
||||
struct device *dev_find_device(unsigned int vendor, unsigned int device, struct device *from)
|
||||
struct device *dev_find_device(unsigned int vendor, unsigned int device,
|
||||
struct device *from)
|
||||
{
|
||||
if (!from)
|
||||
from = all_devices;
|
||||
|
@ -131,12 +134,14 @@ struct device *dev_find_device(unsigned int vendor, unsigned int device, struct
|
|||
return from;
|
||||
}
|
||||
|
||||
/** Find a device of a given class
|
||||
* @param class Class of the device
|
||||
/**
|
||||
* Find a device of a given class.
|
||||
*
|
||||
* @param class Class of the device.
|
||||
* @param from Pointer to the device structure, used as a starting point
|
||||
* in the linked list of all_devices, which can be 0 to start at the
|
||||
* head of the list (i.e. all_devices)
|
||||
* @return Pointer to the device struct
|
||||
* head of the list (i.e. all_devices).
|
||||
* @return Pointer to the device struct.
|
||||
*/
|
||||
struct device *dev_find_class(unsigned int class, struct device *from)
|
||||
{
|
||||
|
@ -149,12 +154,14 @@ struct device *dev_find_class(unsigned int class, struct device *from)
|
|||
return from;
|
||||
}
|
||||
|
||||
/* Warning: This function uses a static buffer. Don't call it more than once
|
||||
* from the same print statement! */
|
||||
|
||||
/*
|
||||
* Warning: This function uses a static buffer. Don't call it more than once
|
||||
* from the same print statement!
|
||||
*/
|
||||
const char *dev_path(device_t dev)
|
||||
{
|
||||
static char buffer[DEVICE_PATH_MAX];
|
||||
|
||||
buffer[0] = '\0';
|
||||
if (!dev) {
|
||||
memcpy(buffer, "<null>", 7);
|
||||
|
@ -262,6 +269,8 @@ int path_eq(struct device_path *path1, struct device_path *path2)
|
|||
|
||||
/**
|
||||
* Allocate 64 more resources to the free list.
|
||||
*
|
||||
* @return TODO.
|
||||
*/
|
||||
static int allocate_more_resources(void)
|
||||
{
|
||||
|
@ -283,8 +292,14 @@ static int allocate_more_resources(void)
|
|||
|
||||
/**
|
||||
* Remove resource res from the device's list and add it to the free list.
|
||||
*
|
||||
* @param dev TODO
|
||||
* @param res TODO
|
||||
* @param prev TODO
|
||||
* @return TODO.
|
||||
*/
|
||||
static void free_resource(device_t dev, struct resource *res, struct resource *prev)
|
||||
static void free_resource(device_t dev, struct resource *res,
|
||||
struct resource *prev)
|
||||
{
|
||||
if (prev)
|
||||
prev->next = res->next;
|
||||
|
@ -297,7 +312,8 @@ static void free_resource(device_t dev, struct resource *res, struct resource *p
|
|||
/**
|
||||
* See if we have unused but allocated resource structures.
|
||||
* If so remove the allocation.
|
||||
* @param dev The device to find the resource on
|
||||
*
|
||||
* @param dev The device to find the resource on.
|
||||
*/
|
||||
void compact_resources(device_t dev)
|
||||
{
|
||||
|
@ -312,16 +328,17 @@ void compact_resources(device_t dev)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* See if a resource structure already exists for a given index
|
||||
* @param dev The device to find the resource on
|
||||
* See if a resource structure already exists for a given index.
|
||||
*
|
||||
* @param dev The device to find the resource on.
|
||||
* @param index The index of the resource on the device.
|
||||
* @return the resource if it already exists
|
||||
* @return The resource, if it already exists.
|
||||
*/
|
||||
struct resource *probe_resource(device_t dev, unsigned index)
|
||||
{
|
||||
struct resource *res;
|
||||
|
||||
/* See if there is a resource with the appropriate index */
|
||||
for (res = dev->resource_list; res; res = res->next) {
|
||||
if (res->index == index)
|
||||
|
@ -331,11 +348,14 @@ struct resource *probe_resource(device_t dev, unsigned index)
|
|||
}
|
||||
|
||||
/**
|
||||
* See if a resource structure already exists for a given index and if
|
||||
* not allocate one. Then initialize the initialize the resource
|
||||
* to default values.
|
||||
* @param dev The device to find the resource on
|
||||
* See if a resource structure already exists for a given index and if not
|
||||
* allocate one.
|
||||
*
|
||||
* Then initialize the initialize the resource to default values.
|
||||
*
|
||||
* @param dev The device to find the resource on.
|
||||
* @param index The index of the resource on the device.
|
||||
* @return TODO.
|
||||
*/
|
||||
struct resource *new_resource(device_t dev, unsigned index)
|
||||
{
|
||||
|
@ -378,8 +398,10 @@ struct resource *new_resource(device_t dev, unsigned index)
|
|||
|
||||
/**
|
||||
* Return an existing resource structure for a given index.
|
||||
* @param dev The device to find the resource on
|
||||
*
|
||||
* @param dev The device to find the resource on.
|
||||
* @param index The index of the resource on the device.
|
||||
* return TODO.
|
||||
*/
|
||||
struct resource *find_resource(device_t dev, unsigned index)
|
||||
{
|
||||
|
@ -397,10 +419,11 @@ struct resource *find_resource(device_t dev, unsigned index)
|
|||
|
||||
|
||||
/**
|
||||
* @brief round a number up to the next multiple of gran
|
||||
* @param val the starting value
|
||||
* @param gran granularity we are aligning the number to.
|
||||
* @returns aligned value
|
||||
* Round a number up to the next multiple of gran.
|
||||
*
|
||||
* @param val The starting value.
|
||||
* @param gran Granularity we are aligning the number to.
|
||||
* @return The aligned value.
|
||||
*/
|
||||
static resource_t align_up(resource_t val, unsigned long gran)
|
||||
{
|
||||
|
@ -412,10 +435,11 @@ static resource_t align_up(resource_t val, unsigned long gran)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief round a number up to the previous multiple of gran
|
||||
* @param val the starting value
|
||||
* @param gran granularity we are aligning the number to.
|
||||
* @returns aligned value
|
||||
* Round a number up to the previous multiple of gran.
|
||||
*
|
||||
* @param val The starting value.
|
||||
* @param gran Granularity we are aligning the number to.
|
||||
* @return The aligned value.
|
||||
*/
|
||||
static resource_t align_down(resource_t val, unsigned long gran)
|
||||
{
|
||||
|
@ -426,9 +450,10 @@ static resource_t align_down(resource_t val, unsigned long gran)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Compute the maximum address that is part of a resource
|
||||
* @param resource the resource whose limit is desired
|
||||
* @returns the end
|
||||
* Compute the maximum address that is part of a resource.
|
||||
*
|
||||
* @param resource The resource whose limit is desired.
|
||||
* @return The end.
|
||||
*/
|
||||
resource_t resource_end(struct resource *resource)
|
||||
{
|
||||
|
@ -449,9 +474,10 @@ resource_t resource_end(struct resource *resource)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Compute the maximum legal value for resource->base
|
||||
* @param resource the resource whose maximum is desired
|
||||
* @returns the maximum
|
||||
* Compute the maximum legal value for resource->base.
|
||||
*
|
||||
* @param resource The resource whose maximum is desired.
|
||||
* @return The maximum.
|
||||
*/
|
||||
resource_t resource_max(struct resource *resource)
|
||||
{
|
||||
|
@ -463,8 +489,10 @@ resource_t resource_max(struct resource *resource)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief return the resource type of a resource
|
||||
* @param resource the resource type to decode.
|
||||
* Return the resource type of a resource.
|
||||
*
|
||||
* @param resource The resource type to decode.
|
||||
* @return TODO.
|
||||
*/
|
||||
const char *resource_type(struct resource *resource)
|
||||
{
|
||||
|
@ -482,11 +510,14 @@ const char *resource_type(struct resource *resource)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief print the resource that was just stored.
|
||||
* @param dev the device the stored resorce lives on
|
||||
* @param resource the resource that was just stored.
|
||||
* Print the resource that was just stored.
|
||||
*
|
||||
* @param dev The device the stored resorce lives on.
|
||||
* @param resource The resource that was just stored.
|
||||
* @param comment TODO
|
||||
*/
|
||||
void report_resource_stored(device_t dev, struct resource *resource, const char *comment)
|
||||
void report_resource_stored(device_t dev, struct resource *resource,
|
||||
const char *comment)
|
||||
{
|
||||
if (resource->flags & IORESOURCE_STORED) {
|
||||
char buf[10];
|
||||
|
|
|
@ -23,10 +23,6 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
/*
|
||||
2005.11 yhlu add let the real sb to use small uintid
|
||||
*/
|
||||
|
||||
#include <bitops.h>
|
||||
#include <console/console.h>
|
||||
#include <device/device.h>
|
||||
|
@ -35,8 +31,9 @@
|
|||
#include <device/pci_ids.h>
|
||||
#include <device/hypertransport.h>
|
||||
|
||||
/* The hypertransport link is already optimized in pre-ram code
|
||||
* so don't do it again
|
||||
/*
|
||||
* The hypertransport link is already optimized in pre-RAM code so don't do
|
||||
* it again.
|
||||
*/
|
||||
#define OPT_HT_LINK 0
|
||||
|
||||
|
@ -261,7 +258,6 @@ static int ht_setup_link(struct ht_link *prev, device_t dev, unsigned pos)
|
|||
}
|
||||
|
||||
return reset_needed;
|
||||
|
||||
}
|
||||
|
||||
static unsigned ht_lookup_slave_capability(struct device *dev)
|
||||
|
@ -598,17 +594,18 @@ unsigned int hypertransport_scan_chain(struct bus *bus,
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Scan a PCI bridge and the buses behind the bridge.
|
||||
* Scan a PCI bridge and the buses behind the bridge.
|
||||
*
|
||||
* Determine the existence of buses behind the bridge. Set up the bridge
|
||||
* according to the result of the scan.
|
||||
*
|
||||
* This function is the default scan_bus() method for PCI bridge devices.
|
||||
*
|
||||
* @param dev pointer to the bridge device
|
||||
* @param max the highest bus number assgined up to now
|
||||
*
|
||||
* @return The maximum bus number found, after scanning all subordinate busses
|
||||
* @param bus TODO
|
||||
* @param min_devfn TODO
|
||||
* @param max_devfn TODO
|
||||
* @param max The highest bus number assgined up to now.
|
||||
* @return The maximum bus number found, after scanning all subordinate busses.
|
||||
*/
|
||||
static unsigned int hypertransport_scan_chain_x(struct bus *bus,
|
||||
unsigned min_devfn, unsigned max_devfn, unsigned int max)
|
||||
|
@ -623,7 +620,6 @@ unsigned int ht_scan_bridge(struct device *dev, unsigned int max)
|
|||
return do_pci_scan_bridge(dev, max, hypertransport_scan_chain_x);
|
||||
}
|
||||
|
||||
|
||||
/** Default device operations for hypertransport bridges */
|
||||
static struct pci_operations ht_bus_ops_pci = {
|
||||
.set_subsystem = 0,
|
||||
|
|
|
@ -106,8 +106,9 @@ u32 pci_moving_config32(struct device * dev, unsigned int reg)
|
|||
* matching capability. Always start at the head of the list.
|
||||
*
|
||||
* @param dev Pointer to the device structure.
|
||||
* @param cap_type PCI_CAP_LIST_ID of the PCI capability we're looking for.
|
||||
* @param cap PCI_CAP_LIST_ID of the PCI capability we're looking for.
|
||||
* @param last Location of the PCI capability register to start from.
|
||||
* @return The next matching capability.
|
||||
*/
|
||||
unsigned pci_find_next_capability(struct device *dev, unsigned cap,
|
||||
unsigned last)
|
||||
|
@ -157,7 +158,8 @@ unsigned pci_find_next_capability(struct device *dev, unsigned cap,
|
|||
* capability. Always start at the head of the list.
|
||||
*
|
||||
* @param dev Pointer to the device structure.
|
||||
* @param cap_type PCI_CAP_LIST_ID of the PCI capability we're looking for.
|
||||
* @param cap PCI_CAP_LIST_ID of the PCI capability we're looking for.
|
||||
* @return The next matching capability.
|
||||
*/
|
||||
unsigned pci_find_capability(device_t dev, unsigned cap)
|
||||
{
|
||||
|
@ -169,6 +171,7 @@ unsigned pci_find_capability(device_t dev, unsigned cap)
|
|||
*
|
||||
* @param dev Pointer to the device structure.
|
||||
* @param index Address of the PCI configuration register.
|
||||
* @return TODO
|
||||
*/
|
||||
struct resource *pci_get_resource(struct device *dev, unsigned long index)
|
||||
{
|
||||
|
@ -388,15 +391,12 @@ static void pci_bridge_read_bases(struct device *dev)
|
|||
moving_base =
|
||||
((resource_t) pci_moving_config16(dev, PCI_PREF_MEMORY_BASE)) << 16;
|
||||
moving_base |=
|
||||
((resource_t) pci_moving_config32(dev, PCI_PREF_BASE_UPPER32)) <<
|
||||
32;
|
||||
((resource_t) pci_moving_config32(dev, PCI_PREF_BASE_UPPER32)) << 32;
|
||||
|
||||
moving_limit =
|
||||
((resource_t) pci_moving_config16(dev, PCI_PREF_MEMORY_LIMIT)) <<
|
||||
16;
|
||||
((resource_t) pci_moving_config16(dev, PCI_PREF_MEMORY_LIMIT)) << 16;
|
||||
moving_limit |=
|
||||
((resource_t) pci_moving_config32(dev, PCI_PREF_LIMIT_UPPER32)) <<
|
||||
32;
|
||||
((resource_t) pci_moving_config32(dev, PCI_PREF_LIMIT_UPPER32)) << 32;
|
||||
|
||||
moving = moving_base & moving_limit;
|
||||
/* Initialize the prefetchable memory constraints on the current bus. */
|
||||
|
@ -704,7 +704,7 @@ struct device_operations default_pci_ops_bus = {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief Detect the type of downstream bridge
|
||||
* Detect the type of downstream bridge.
|
||||
*
|
||||
* This function is a heuristic to detect which type of bus is downstream
|
||||
* of a PCI-to-PCI bridge. This functions by looking for various capability
|
||||
|
@ -768,8 +768,10 @@ static struct device_operations *get_pci_bridge_ops(device_t dev)
|
|||
}
|
||||
|
||||
/**
|
||||
* Set up PCI device operation. Check if it already has a driver. If not, use
|
||||
* find_device_operations, or set to a default based on type.
|
||||
* Set up PCI device operation.
|
||||
*
|
||||
* Check if it already has a driver. If not, use find_device_operations(),
|
||||
* or set to a default based on type.
|
||||
*
|
||||
* @param dev Pointer to the device whose pci_ops you want to set.
|
||||
* @see pci_drivers
|
||||
|
@ -827,7 +829,7 @@ static void set_pci_ops(struct device *dev)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief See if we have already allocated a device structure for a given devfn.
|
||||
* See if we have already allocated a device structure for a given devfn.
|
||||
*
|
||||
* Given a linked list of PCI device structures and a devfn number, find the
|
||||
* device structure correspond to the devfn, if present. This function also
|
||||
|
@ -835,7 +837,6 @@ static void set_pci_ops(struct device *dev)
|
|||
*
|
||||
* @param list The device structure list.
|
||||
* @param devfn A device/function number.
|
||||
*
|
||||
* @return Pointer to the device structure found or NULL if we have not
|
||||
* allocated a device for this devfn yet.
|
||||
*/
|
||||
|
@ -881,16 +882,15 @@ static struct device *pci_scan_get_dev(struct device **list, unsigned int devfn)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Scan a PCI bus.
|
||||
* Scan a PCI bus.
|
||||
*
|
||||
* Determine the existence of a given PCI device. Allocate a new struct device
|
||||
* if dev==NULL was passed in and the device exists in hardware.
|
||||
*
|
||||
* @param bus pointer to the bus structure
|
||||
* @param devfn to look at
|
||||
*
|
||||
* @return The device structure for hte device (if found)
|
||||
* or the NULL if no device is found.
|
||||
* @param dev Pointer to the dev structure.
|
||||
* @param bus Pointer to the bus structure.
|
||||
* @param devfn A device/function number to look at.
|
||||
* @return The device structure for the device (if found), NULL otherwise.
|
||||
*/
|
||||
device_t pci_probe_dev(device_t dev, struct bus *bus, unsigned devfn)
|
||||
{
|
||||
|
@ -989,7 +989,7 @@ device_t pci_probe_dev(device_t dev, struct bus * bus, unsigned devfn)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Scan a PCI bus.
|
||||
* Scan a PCI bus.
|
||||
*
|
||||
* Determine the existence of devices and bridges on a PCI bus. If there are
|
||||
* bridges on the bus, recursively scan the buses behind the bridges.
|
||||
|
@ -997,12 +997,11 @@ device_t pci_probe_dev(device_t dev, struct bus * bus, unsigned devfn)
|
|||
* This function is the default scan_bus() method for the root device
|
||||
* 'dev_root'.
|
||||
*
|
||||
* @param bus pointer to the bus structure
|
||||
* @param min_devfn minimum devfn to look at in the scan usually 0x00
|
||||
* @param max_devfn maximum devfn to look at in the scan usually 0xff
|
||||
* @param max current bus number
|
||||
*
|
||||
* @return The maximum bus number found, after scanning all subordinate busses
|
||||
* @param bus Pointer to the bus structure.
|
||||
* @param min_devfn Minimum devfn to look at in the scan, usually 0x00.
|
||||
* @param max_devfn Maximum devfn to look at in the scan, usually 0xff.
|
||||
* @param max Current bus number.
|
||||
* @return The maximum bus number found, after scanning all subordinate busses.
|
||||
*/
|
||||
unsigned int pci_scan_bus(struct bus *bus,
|
||||
unsigned min_devfn, unsigned max_devfn,
|
||||
|
@ -1084,7 +1083,7 @@ unsigned int pci_scan_bus(struct bus *bus,
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Scan a PCI bridge and the buses behind the bridge.
|
||||
* Scan a PCI bridge and the buses behind the bridge.
|
||||
*
|
||||
* Determine the existence of buses behind the bridge. Set up the bridge
|
||||
* according to the result of the scan.
|
||||
|
@ -1093,6 +1092,7 @@ unsigned int pci_scan_bus(struct bus *bus,
|
|||
*
|
||||
* @param dev Pointer to the bridge device.
|
||||
* @param max The highest bus number assigned up to now.
|
||||
* @param do_scan_bus TODO
|
||||
* @return The maximum bus number found, after scanning all subordinate buses.
|
||||
*/
|
||||
unsigned int do_pci_scan_bridge(struct device *dev, unsigned int max,
|
||||
|
@ -1164,7 +1164,7 @@ unsigned int do_pci_scan_bridge(struct device *dev, unsigned int max,
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Scan a PCI bridge and the buses behind the bridge.
|
||||
* Scan a PCI bridge and the buses behind the bridge.
|
||||
*
|
||||
* Determine the existence of buses behind the bridge. Set up the bridge
|
||||
* according to the result of the scan.
|
||||
|
@ -1181,14 +1181,13 @@ unsigned int pci_scan_bridge(struct device *dev, unsigned int max)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Scan a PCI domain.
|
||||
* Scan a PCI domain.
|
||||
*
|
||||
* This function is the default scan_bus() method for PCI domains.
|
||||
*
|
||||
* @param dev pointer to the domain
|
||||
* @param max the highest bus number assgined up to now
|
||||
*
|
||||
* @return The maximum bus number found, after scanning all subordinate busses
|
||||
* @param dev Pointer to the domain.
|
||||
* @param max The highest bus number assigned up to now.
|
||||
* @return The maximum bus number found, after scanning all subordinate busses.
|
||||
*/
|
||||
unsigned int pci_domain_scan_bus(device_t dev, unsigned int max)
|
||||
{
|
||||
|
@ -1198,8 +1197,7 @@ unsigned int pci_domain_scan_bus(device_t dev, unsigned int max)
|
|||
|
||||
#if CONFIG_PC80_SYSTEM == 1
|
||||
/**
|
||||
*
|
||||
* @brief Assign IRQ numbers
|
||||
* Assign IRQ numbers.
|
||||
*
|
||||
* This function assigns IRQs for all functions contained within the indicated
|
||||
* device address. If the device does not exist or does not require interrupts
|
||||
|
@ -1207,12 +1205,11 @@ unsigned int pci_domain_scan_bus(device_t dev, unsigned int max)
|
|||
*
|
||||
* This function should be called for each PCI slot in your system.
|
||||
*
|
||||
* @param bus
|
||||
* @param slot
|
||||
* @param pIntAtoD is an array of IRQ #s that are assigned to PINTA through
|
||||
* PINTD of this slot. The particular irq #s that are passed in
|
||||
* depend on the routing inside your southbridge and on your
|
||||
* motherboard.
|
||||
* @param bus Pointer to the bus structure.
|
||||
* @param slot TODO
|
||||
* @param pIntAtoD An array of IRQ #s that are assigned to PINTA through PINTD
|
||||
* of this slot. The particular IRQ #s that are passed in depend on the
|
||||
* routing inside your southbridge and on your board.
|
||||
*/
|
||||
void pci_assign_irqs(unsigned bus, unsigned slot,
|
||||
const unsigned char pIntAtoD[4])
|
||||
|
|
|
@ -25,7 +25,8 @@
|
|||
#include <device/pci_ids.h>
|
||||
#include <device/pci_ops.h>
|
||||
|
||||
/* The only consumer of the return value of get_pbus() is ops_pci_bus().
|
||||
/*
|
||||
* The only consumer of the return value of get_pbus() is ops_pci_bus().
|
||||
* ops_pci_bus() can handle being passed NULL and auto-picks working ops.
|
||||
*/
|
||||
static struct bus *get_pbus(device_t dev)
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <device/pci_ids.h>
|
||||
#include <device/pciexp.h>
|
||||
|
||||
|
||||
static void pciexp_tune_dev(device_t dev)
|
||||
{
|
||||
unsigned cap;
|
||||
|
@ -63,7 +62,6 @@ unsigned int pciexp_scan_bus(struct bus *bus,
|
|||
return max;
|
||||
}
|
||||
|
||||
|
||||
unsigned int pciexp_scan_bridge(device_t dev, unsigned int max)
|
||||
{
|
||||
return do_pci_scan_bridge(dev, max, pciexp_scan_bus);
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include <device/pci_ids.h>
|
||||
#include <device/pcix.h>
|
||||
|
||||
|
||||
static void pcix_tune_dev(device_t dev)
|
||||
{
|
||||
unsigned cap;
|
||||
|
@ -130,7 +129,6 @@ unsigned int pcix_scan_bridge(device_t dev, unsigned int max)
|
|||
return max;
|
||||
}
|
||||
|
||||
|
||||
/** Default device operations for PCI-X bridges */
|
||||
static struct pci_operations pcix_bus_ops_pci = {
|
||||
.set_subsystem = 0,
|
||||
|
|
|
@ -28,9 +28,10 @@
|
|||
#include <reset.h>
|
||||
|
||||
/**
|
||||
* Read the resources for the root device,
|
||||
* that encompass the resources for the entire system.
|
||||
* @param root Pointer to the device structure for the system root device
|
||||
* Read the resources for the root device, that encompass the resources for
|
||||
* the entire system.
|
||||
*
|
||||
* @param root Pointer to the device structure for the system root device.
|
||||
*/
|
||||
static void root_dev_read_resources(device_t root)
|
||||
{
|
||||
|
@ -38,11 +39,12 @@ static void root_dev_read_resources(device_t root)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Write the resources for every device
|
||||
* Write the resources for every device.
|
||||
*
|
||||
* Write the resources for the root device,
|
||||
* and every device under it which are all of the devices.
|
||||
* @param root Pointer to the device structure for the system root device
|
||||
* Write the resources for the root device, and every device under it which
|
||||
* are all of the devices.
|
||||
*
|
||||
* @param root Pointer to the device structure for the system root device.
|
||||
*/
|
||||
static void root_dev_set_resources(device_t root)
|
||||
{
|
||||
|
@ -50,7 +52,7 @@ static void root_dev_set_resources(device_t root)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Scan devices on static buses.
|
||||
* Scan devices on static buses.
|
||||
*
|
||||
* The enumeration of certain buses is purely static. The existence of
|
||||
* devices on those buses can be completely determined at compile time
|
||||
|
@ -67,7 +69,7 @@ static void root_dev_set_resources(device_t root)
|
|||
* This function is the default scan_bus() method for the root device and
|
||||
* LPC bridges.
|
||||
*
|
||||
* @param bus Pointer to the device structure which the static buses are attached
|
||||
* @param bus Pointer to the device to which the static buses are attached to.
|
||||
* @param max Maximum bus number currently used before scanning.
|
||||
* @return Largest bus number used.
|
||||
*/
|
||||
|
@ -120,12 +122,13 @@ static void root_dev_enable_resources(device_t dev)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Scan root bus for generic systems
|
||||
*
|
||||
* @param root The root device structure
|
||||
* @param max The current bus number scanned so far, usually 0x00
|
||||
* Scan root bus for generic systems.
|
||||
*
|
||||
* This function is the default scan_bus() method of the root device.
|
||||
*
|
||||
* @param root The root device structure.
|
||||
* @param max The current bus number scanned so far, usually 0x00.
|
||||
* @return TODO.
|
||||
*/
|
||||
static unsigned int root_dev_scan_bus(device_t root, unsigned int max)
|
||||
{
|
||||
|
@ -143,7 +146,7 @@ static void root_dev_reset(struct bus *bus)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief Default device operation for root device
|
||||
* Default device operation for root device.
|
||||
*
|
||||
* This is the default device operation for root devices. These operations
|
||||
* should be fully usable as is. However the chip_operations::enable_dev()
|
||||
|
|
|
@ -38,11 +38,15 @@ struct bus *get_pbus_smbus(device_t dev)
|
|||
return pbus;
|
||||
}
|
||||
|
||||
/*multi level i2c MUX??? may need to find the first i2c device and then set link
|
||||
* down to current dev
|
||||
1 store get_pbus_smbus list link
|
||||
2 reverse the link and call set link */
|
||||
|
||||
/*
|
||||
* Multi-level I2C MUX? may need to find the first i2c device and then set link
|
||||
* down to current dev.
|
||||
*
|
||||
* 1 store get_pbus_smbus list link
|
||||
* 2 reverse the link and call set link.
|
||||
*
|
||||
* @param dev TODO.
|
||||
*/
|
||||
int smbus_set_link(device_t dev)
|
||||
{
|
||||
struct bus *pbus_a[4]; // 4 level mux only. Enough?
|
||||
|
@ -110,5 +114,3 @@ int smbus_block_write(device_t dev, uint8_t cmd, uint8_t bytes, const uint8_t *b
|
|||
{
|
||||
return ops_smbus_bus(get_pbus_smbus(dev))->block_write(dev, cmd, bytes, buffer);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue