Platform devices on MPC8245
Mark Brown
broonie at sirena.org.uk
Thu Sep 8 02:34:28 EST 2005
On Wed, Aug 31, 2005 at 01:26:00PM +0100, Mark Brown wrote:
> I'm having some trouble using the platform device support for the
> MPC8245 using memory map B, set up using mpc10x_bridge_init(). When
> that function registers the host bridge it registers addresses
> 0x80000000-0xfebfffff for the bridge but by default (with EUMB mapped to
> MPC10X_MAPB_EUMB_BASE) the platform devices on the chip are also within
> this address range. The problem I'm seeing is that when
> platform_device_register() comes to call request_resource() on the
> devices that call fails because the addresses have already been
> allocated to the PCI host bridge.
Does anyone have any suggestions as to what I'm doing wrong with this?
Using kernel 2.6.13 I am currently working around the issue by making
the platform bus use insert_resource() rather than request_resource() as
in the patch below but this really seems like the wrong solution.
--- linux-2.6.13/drivers/base/platform.c 2005-08-29 00:41:01.000000000 +0100
+++ linux/drivers/base/platform.c 2005-09-07 17:26:10.459969600 +0100
@@ -149,7 +149,7 @@
p = &ioport_resource;
}
- if (p && request_resource(p, r)) {
+ if (p && insert_resource(p, r)) {
printk(KERN_ERR
"%s: failed to claim resource %d\n",
pdev->dev.bus_id, i);
--
"You grabbed my hand and we fell into it, like a daydream - or a fever."
More information about the Linuxppc-embedded
mailing list