Regression for the Beagle Board

Jan Luebbe jlu at pengutronix.de
Sat Jun 23 19:21:59 EDT 2012


Hi,

I tried to run master on the beagle board and discovered it fails to
bring up USB EHCI. I bisected it to 08845e41fba2b16dd3050b6b910c615e1bb8e57c.

commit 08845e41fba2b16dd3050b6b910c615e1bb8e57c
Author: Sascha Hauer <s.hauer at pengutronix.de>
Date:   Wed May 23 12:54:24 2012 +0200

    usb ehci: Add resource sizes
    
    add_usb_ehci_device registers resources with size 0. Fix this.
    
    Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>

diff --git a/drivers/base/resource.c b/drivers/base/resource.c
index b31c7d7..347b2f0 100644
--- a/drivers/base/resource.c
+++ b/drivers/base/resource.c
@@ -113,8 +113,10 @@ struct device_d *add_usb_ehci_device(int id, resource_size_t hccr,
 
        res = xzalloc(sizeof(struct resource) * 2);
        res[0].start = hccr;
+       res[0].size = 0x40;
        res[0].flags = IORESOURCE_MEM;
        res[1].start = hcor;
+       res[1].size = 0xc0;
        res[1].flags = IORESOURCE_MEM;
 
        return add_generic_device_res("ehci", id, res, 2, pdata);

On the beagle board we have the following resources for EHCI:
/ devinfo ehci0
resources:
num   : 0
start : 0x48064800
size  : 0x00000000
num   : 1
start : 0x48064810
size  : 0x00000000
driver: ehci

This causes conflicting regions (#define DEBUG in common/resource.c):
request_region: 0x48064810:0x000000c0 conflicts with 0x48064800:0x00000040

What would be the best way to solve this? Pass the resource sizes from the
board file along with the start addresses?

Best regards,
Jan

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list