On 12/13/2011 02:29 PM, Aneesh V wrote:
Hi Kristiansson,

On Friday 21 October 2011 12:55 AM, Stefan Kristiansson wrote:
The usb_endpoint_descriptor struct is 7 bytes large and is
defined as an array (ep_desc[USB_MAXENDPOINTS])
in the usb_interface struct in include/usb.h

This fact will result in that every odd index in that
array will start at an uneven address, this in
turn makes accesses to u16 wMaxPacketSize unaligned.
Such accesses are illegal on the OpenRISC architecture
(as well as other architectures) and will render a bus error.

Setting the aligned(2) attribute on usb_endpoint_descriptor
will force wMaxPacketSize to a 16-bit boundary.

Signed-off-by: Stefan Kristiansson<stefan.kristians...@saunalahti.fi>
---

OMAP4 U-Boot is broken in the mainline. U-Boot wouldn't boot up on any
OMAP4 platforms. I suspect this will be the case with any ARM platform
that has enabled USB tty code. I git-bisected the issue to this patch.
I did some analysis on it and here are my findings.

I can confirm this on my OMAP3 platform with CONFIG_USB_TTY set. I can get it to boot again by either reverting this patch or unsetting CONFIG_USB_TTY. Looking forward to the fix.

-Michael

MATRIX VISION GmbH, Talstrasse 16, DE-71570 Oppenweiler
Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschaeftsfuehrer: Gerhard Thullner, Werner Armingeon, Uwe Furtner, Erhard Meier
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to