From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marek Vasut Date: Sun, 28 Apr 2013 20:58:06 +0200 Subject: [U-Boot] [PATCH] ARM: cfi_flash: Avoid generation of unaligned accesses In-Reply-To: <1367145576-12748-1-git-send-email-andrew_gabbasov@mentor.com> References: <1367145576-12748-1-git-send-email-andrew_gabbasov@mentor.com> Message-ID: <201304282058.07170.marek.vasut@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Andrew Gabbasov, > Packed structure cfi_qry contains unaligned 16- and 32-bits members, > accessing which causes problems when cfi_flash driver is compiled with > -munaligned-access option: flash initialization hangs, probably > due to data error. > > Since fixing the code to use some other way of accessing those fields > seems quite expensive, just force the compiler to use > -mno-unaligned-access. > > Signed-off-by: Andrew Gabbasov > --- > drivers/mtd/Makefile | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/mtd/Makefile b/drivers/mtd/Makefile > index 543c845..a120f0b 100644 > --- a/drivers/mtd/Makefile > +++ b/drivers/mtd/Makefile > @@ -46,6 +46,9 @@ all: $(LIB) > $(LIB): $(obj).depend $(OBJS) > $(call cmd_link_o_target, $(OBJS)) > > +# SEE README.arm-unaligned-accesses > +$(obj)cfi_flash.o: CFLAGS += $(PLATFORM_NO_UNALIGNED) > + > ######################################################################### > > # defines $(obj).depend target I'd say rather fix the structure than use this workaround. See, using u8[3] u16 will make unaligned access. The fix would be to split that u16 into two u8 and add a proper accessor. It'll be much larger effort, but it'd also be more correct. Best regards, Marek Vasut