Log device path during resource allocation

Systems are hanging in dev_configure() without a log to
indicate which device is being processed.  Add some logging
points to save the device path before talking to the device
so we can narrow in on which device is the problem.

Change-Id: I3751c19a1ea68cdccbc33e4f6b2eeddd1bd9f2e4
Signed-off-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/61296
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/4349
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
Duncan Laurie 2013-07-09 10:46:52 -07:00 committed by Stefan Reinauer
parent 768903eac9
commit 7ed3976704
1 changed files with 4 additions and 0 deletions

View File

@ -215,12 +215,14 @@ static void read_resources(struct bus *bus)
dev_path(curdev)); dev_path(curdev));
continue; continue;
} }
post_log_path(curdev);
curdev->ops->read_resources(curdev); curdev->ops->read_resources(curdev);
/* Read in the resources behind the current device's links. */ /* Read in the resources behind the current device's links. */
for (link = curdev->link_list; link; link = link->next) for (link = curdev->link_list; link; link = link->next)
read_resources(link); read_resources(link);
} }
post_log_clear();
printk(BIOS_SPEW, "%s read_resources bus %d link: %d done\n", printk(BIOS_SPEW, "%s read_resources bus %d link: %d done\n",
dev_path(bus->dev), bus->secondary, bus->link_num); dev_path(bus->dev), bus->secondary, bus->link_num);
} }
@ -1027,6 +1029,7 @@ void dev_configure(void)
for (child = root->link_list->children; child; child = child->sibling) { for (child = root->link_list->children; child; child = child->sibling) {
if (!(child->path.type == DEVICE_PATH_DOMAIN)) if (!(child->path.type == DEVICE_PATH_DOMAIN))
continue; continue;
post_log_path(child);
for (res = child->resource_list; res; res = res->next) { for (res = child->resource_list; res; res = res->next) {
if (res->flags & IORESOURCE_FIXED) if (res->flags & IORESOURCE_FIXED)
continue; continue;
@ -1073,6 +1076,7 @@ void dev_configure(void)
for (child = root->link_list->children; child; child = child->sibling) { for (child = root->link_list->children; child; child = child->sibling) {
if (!(child->path.type == DEVICE_PATH_DOMAIN)) if (!(child->path.type == DEVICE_PATH_DOMAIN))
continue; continue;
post_log_path(child);
for (res = child->resource_list; res; res = res->next) { for (res = child->resource_list; res; res = res->next) {
if (res->flags & IORESOURCE_FIXED) if (res->flags & IORESOURCE_FIXED)
continue; continue;