[U-Boot] Is EHCI HCD working on ARM, little-endian?

ikjn tiffang at gmail.com
Tue Jun 16 13:53:17 CEST 2009


Hi, all

I am using ARM11 SoC and u-boot-2009.03 stable tree.
EHCI HC is embedded in SoC.

In ehci_submit_root function, code is like this:

	typeReq = req->request << 8 | req->requesttype;

	switch (le16_to_cpu(typeReq)) {
	case DeviceRequest | USB_REQ_GET_DESCRIPTOR:
		switch (le16_to_cpu(req->value) >> 8) {

At the first call of 'usb_get_descriptor' for retrieving the root hub
device descriptor,
I think the first case should be matched.

But In my environment, le16_to_cpu(typeReq) is 0x0680. (request=
USB_REQ_GET_DESCRIPTOR, request_type=USB_DIR_IN)
and DeviceRequest | USB_REQ_GET_DESCRIPTOR is defined as 0x8006.

So the request failed and "Unknown request" printed out.

Do you think that I did a mistake for some byteorder stuff?
I didn't define anything related with the endianess, like LITTLEENDIAN
for the old OHCI HCD.

CONFIG_USB_EHCI
CONFIG_USB_STORAGE
CONFIG_CMD_USB
are defined for my board config.

Thanks.


More information about the U-Boot mailing list