[U-Boot] [PATCH v4] USB: Add align(4) in __attribute__ ((packed)) for struct ehci_hccr and ehci_hcor
Joel A Fernandes
agnel.joel at gmail.com
Thu Aug 11 23:22:45 CEST 2011
From: Jason Kridner <jkridner at beagleboard.org>
Switched to align(4) to prevent byte access to soc registers in some gcc versions.
Credits have to go to Laine Walker-Avina <lwalkera at ieee.org> for finding the problem.
Signed-off-by: Jason Kridner <jkridner at beagleboard.org>
Signed-off-by: Joel A Fernandes <agnel.joel at gmail.com>
Cc: Koen Kooi <k-kooi at ti.com>
Cc: Alexander Holler <holler at ahsoftware.de>
Cc: Sandeep Paulraj <s-paulraj at ti.com>
Cc: Igor Grinberg <grinberg at compulab.co.il>
---
Changes for v2:
* Original and v2 were provided by Alexander Holler.
* v1 was http://patchwork.ozlabs.org/patch/89358/
* v2 was http://patchwork.ozlabs.org/patch/89362/
Changes for v3:
* Switched to align(4), rather than remove the attribute, per suggestion
from Alexander.
Changes for v4:
* Modified commit summary and title to be more accurate
drivers/usb/host/ehci.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/usb/host/ehci.h b/drivers/usb/host/ehci.h
index 945ab64..3d0ad0c 100644
--- a/drivers/usb/host/ehci.h
+++ b/drivers/usb/host/ehci.h
@@ -55,7 +55,7 @@ struct ehci_hccr {
#define HCS_N_PORTS(p) (((p) >> 0) & 0xf)
uint32_t cr_hccparams;
uint8_t cr_hcsp_portrt[8];
-} __attribute__ ((packed));
+} __attribute__ ((packed, aligned(4)));
struct ehci_hcor {
uint32_t or_usbcmd;
@@ -85,7 +85,7 @@ struct ehci_hcor {
#define FLAG_CF (1 << 0) /* true: we'll support "high speed" */
uint32_t or_portsc[CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS];
uint32_t or_systune;
-} __attribute__ ((packed));
+} __attribute__ ((packed, aligned(4)));
#define USBMODE 0x68 /* USB Device mode */
#define USBMODE_SDIS (1 << 3) /* Stream disable */
--
1.7.1
More information about the U-Boot
mailing list