USB support on mpc5200 broken

Jon Smirl jonsmirl at gmail.com
Tue Sep 30 00:14:18 EST 2008


On Sun, Sep 28, 2008 at 11:43 PM, David Gibson
<david at gibson.dropbear.id.au> wrote:
> On Sun, Sep 28, 2008 at 08:30:56PM -0500, Matt Sealey wrote:
>>
>> Benjamin Herrenschmidt wrote:
>>> On Wed, 2008-09-24 at 21:09 -0400, Jon Smirl wrote:
>>>>> Last time I noticed it was working was about ten days ago. I don't use
>>>>> it everyday.
>>>> Efika is broken because of this:
>>>>
>>>> ohci-ppc-of.c...
>>>>     is_bigendian =
>>>>             of_device_is_compatible(dn, "ohci-bigendian") ||
>>>>             of_device_is_compatible(dn, "ohci-be");
>>>>
>>>> Efika doesn't have either of those in it's compatible string.
>>>>
>>>> This doesn't look to me like a very reliable way to determine bigendian.
>>>
>>> You mean it's not reliable to expect people device-trees not to
>>> suck ? :-)
>
> Alas, this is true :(.


Efika has this:
compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci";

That completely describes the hardware. Isn't that what a device tree
is supposed to do?

If we really need a big endian flag, should it be an attribute?

		usb at 1000 {
			compatible = "fsl,mpc5200b-ohci","fsl,mpc5200-ohci";
			ohci-be;
			reg = <0x1000 0xff>;
			interrupts = <0x2 0x6 0x0>;
			interrupt-parent = <&mpc5200_pic>;
		};

Shouldn't the driver already know it is being used on a BE machine?


>
>> It's reasonable to expect that device-trees do not get updated with the
>> kernel for certain platforms (it does not fit into most quality assurance
>> schedules to reflash every user's firmware every time they want to move up
>> one revision to another, given the kernel release schedule of every 3-4
>> months) and when updating the search for compatible entries it should
>> take into account these platforms.
>
> This, of course, is exactly why I *don't* recommend embedded platforms
> move to including the device tree in the flashed firmware.  Keeping
> the device tree in the bootwrapper means that it *is* updated with the
> kernel and we don't have to mess around with as much backwards
> compatibility junk.

How do I adjust my build to put the DTB into a wrapper? I'm based on
the pcm030 makefile and it assumes the DTB is built externally.

Can u-boot handle the wrapped DTB? I'm using a pointer to kernel and
one to DTB when booting from u-boot.

-- 
Jon Smirl
jonsmirl at gmail.com



More information about the Linuxppc-dev mailing list