Re: ehci-xilinx-of.c and big_endian_mmio

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

 



Julie Zhu wrote:
Hi, Jan,

You are right about our data sheet has offset 0 for CAPLENGTH for
version 1.01a, which is wrong. The document maintainer failed to update
the document, sorry about that.
Our initial hardware had the CAPLENGTH at offset at 0. However, after
failed in Linux and read Linux's definition on HC_LENGTH macro, we
changed our understanding of the EHCI spec as the following:

1. In the first word, 32-bit, CAPLENGTH is at offset 0.
2. All registers are accessed as 32-bit.
3. Xilinx XPS USB Host is a big endian host controller. If we define
CAPLENGTH in the hardware at offset 0, after reading in the 32-bit word,
CAPLENGTH becomes offset 3 in the word; this will make the
hardware/software definition messy.

Based on this, we had changed our hardware to have CAPLENGTH at offset
3, which is reflected in the data sheet for v1.02a.

Thanks for your reply Julie. I sent similar e-mails to all maintainers of ehci-glue that assigned big_endian_mmio. Assuming that the other drivers are correct it looks like all other host controller vendors, that have drivers included in mainline, also chose this route. I guess that it is a tribute to Linux that its code now supersedes the actual specification for the register interface :-)

Best regards,
  Jan
--
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