From 0acc02afbe4aef62d2864669efc894a78c1f9650 Mon Sep 17 00:00:00 2001 From: "Wesley W. Terpstra" <w.terpstra@gsi.de> Date: Tue, 6 Mar 2012 09:15:52 +0000 Subject: [PATCH] Scan children recursively --- api/tools/common.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/api/tools/common.c b/api/tools/common.c index 6b2a261..9867bfb 100644 --- a/api/tools/common.c +++ b/api/tools/common.c @@ -104,7 +104,7 @@ void find_device(eb_user_data_t data, eb_device_t dev, sdwb_t sdwb, eb_status_t if (i == devices) { if (!quiet) - fprintf(stderr, "%s: warning: could not locate Wishbone device at address %016"EB_ADDR_FMT"\n", + fprintf(stderr, "%s: warning: could not locate Wishbone device at address 0x%"EB_ADDR_FMT"\n", program, address); *device_support = endian | EB_DATAX; } else { @@ -115,11 +115,17 @@ void find_device(eb_user_data_t data, eb_device_t dev, sdwb_t sdwb, eb_status_t size = des->wbd_width & EB_DATAX; - if (verbose) - fprintf(stdout, " discovered Wishbone device at address %016"EB_ADDR_FMT" with %s %s-bit granularity\n", + if (verbose) { + fprintf(stdout, " discovered Wishbone device ("); + fwrite(des->description, 1, sizeof(des->description), stdout); + fprintf(stdout, ") at address 0x%"EB_ADDR_FMT" with %s %s-bit granularity\n", (eb_address_t)des->wbd_begin, endian_str[dev_endian >> 4], width_str[size]); + } - *device_support = dev_endian | size; + if ((des->wbd_flags & WBD_FLAG_HAS_CHILD) != 0) { + eb_sdwb_scan_bus(dev, des, data, &find_device); + } else { + *device_support = dev_endian | size; + } } } - -- GitLab