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