From 7ed39767048c535217bb741e1d0f0f365f598f10 Mon Sep 17 00:00:00 2001 From: Duncan Laurie Date: Tue, 9 Jul 2013 10:46:52 -0700 Subject: 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 Reviewed-on: https://gerrit.chromium.org/gerrit/61296 Reviewed-by: Aaron Durbin Reviewed-on: http://review.coreboot.org/4349 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich Reviewed-by: Paul Menzel --- src/device/device.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/device/device.c b/src/device/device.c index 8bde663076..9e068107d8 100644 --- a/src/device/device.c +++ b/src/device/device.c @@ -215,12 +215,14 @@ static void read_resources(struct bus *bus) dev_path(curdev)); continue; } + post_log_path(curdev); curdev->ops->read_resources(curdev); /* Read in the resources behind the current device's links. */ for (link = curdev->link_list; link; link = link->next) read_resources(link); } + post_log_clear(); printk(BIOS_SPEW, "%s read_resources bus %d link: %d done\n", 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) { if (!(child->path.type == DEVICE_PATH_DOMAIN)) continue; + post_log_path(child); for (res = child->resource_list; res; res = res->next) { if (res->flags & IORESOURCE_FIXED) continue; @@ -1073,6 +1076,7 @@ void dev_configure(void) for (child = root->link_list->children; child; child = child->sibling) { if (!(child->path.type == DEVICE_PATH_DOMAIN)) continue; + post_log_path(child); for (res = child->resource_list; res; res = res->next) { if (res->flags & IORESOURCE_FIXED) continue; -- cgit v1.2.3