Re: ISP1760 USB host driver, big endian and 16-bit data bus

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jonas,

> We use the ISP1760 USB host driver on our custom made board. The CPU is
> an Atmel AVR32AP7000 processor (Big Endian) which is connected to the
> ISP1760 chip with a 16-bit data bus.

I've used the ISP1761 on a two MPC85xx (big endian cpu and data bus)
systems - one with a 16-bit data bus, the other with a 32-bit data bus.

> Some modification had to be done to the ISP1760 host driver in order to
> get it to work on our board.

Same here.  For the 8548-based board with a 16-bit data bus the changes
I made are implemented slightly differently, but I believe have the same
effect (16-bit swapping in isp1760_readl/writel and 16-bit swapping +
byte swapping in priv_read/write_copy).

For the 8548-based board with a 32-bit data bus, all access to hardware
required just byte swapping.

> I'm not sure if these modification are required due to big endian, the
> 16-bit data bus or due to some design problem on our board.
> 
> I would really appreciate some input on this. 

My best guess is that NXP assumes that the ISP1670/1 data bus is wired
up for little endian operation (of course they never mention this
anywhere that I can find:).  I believe that this would explain the
modifications you referenced for 16-bit operation, as well as the
changes I made for 32-bit operation.

Unfortunately the endian of the data bus on the MPC85xx processors can
not be changed to little endian.  Maybe it can be changed on the
AVR32AP7000?  That could possibly be a quick workaround for your
specific setup.

> Any ideas of how these changes can be applied to the real driver?

There are a few ideas that came to mind, but my first question was
should we change the driver?

In theory, our boards are wired up "incorrectly" and we could use the
driver as is if we re-spun our boards with a different data bus
numbering scheme.  For example, the next revs of our 85xx-based boards
will connect the ISP part with a little endian data bus.  So it could be
argued we'd be adding a software workaround to hack around our mistake
in hardware.  That being said, I think lots of people are going to wire
up the data bus just like you and I did, so in theory lots of people may
need this software workaround.

Would the USB maintainers accept a patch which added support to the
isp1760 driver for boards with big-endian data buses?

Please keep me on CC as I'm not subscribed to this mailinglist.

Best,
Peter

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux