[U-Boot] Data Abort with gcc 7.1
Jörg Krause
joerg.krause at embedded.rocks
Sun Jul 23 10:55:26 UTC 2017
Hi,
On Thu, 2017-07-13 at 01:43 +0100, Måns Rullgård wrote:
> Maxime Ripard <maxime.ripard at free-electrons.com> writes:
>
> > Hi,
> >
> > I recently got a gcc 7.1 based toolchain, and it seems like it
> > generates unaligned code, specifically in the net_set_ip_header
> > function in my case.
> >
> > Whenever some packet is sent, this data abort is triggered:
> >
> > => setenv ipaddr 10.42.0.1; ping 10.42.0.254
> > using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
> > MAC de:ad:be:ef:00:01
> > HOST MAC de:ad:be:af:00:00
> > RNDIS ready
> > musb-hdrc: peripheral reset irq lost!
> > high speed config #2: 2 mA, Ethernet Gadget, using RNDIS
> > USB RNDIS network up!
> > Using usb_ether device
> > data abort
> > pc : [<7ff9db10>] lr : [<7ff9f00c>]
> > reloc pc : [<4a043b10>] lr : [<4a04500c>]
> > sp : 7bf37cc8 ip : 00000000 fp : 7ff6236c
> > r10: 7ffed2b8 r9 : 7bf39ee8 r8 : 7ffed2b8
> > r7 : 00000001 r6 : 00000000 r5 : 0000002a r4 : 7ffed30e
> > r3 : 14000045 r2 : 01002a0a r1 : fe002a0a r0 : 7ffed30e
> > Flags: nZCv IRQs off FIQs off Mode SVC_32
> > Resetting CPU ...
I'm running into the same issue using a Buildroot GCC 7 toolchain.
[snip]
> What hardware did this happen on? If it was on ARMv5, adding the packed
> attribute is probably the correct fix. If it was ARMv6 or later,
> something else is broken as well.
>
FWIW, the board I'm using is ARMv5 (an i.MX28).
Jörg Krause
More information about the U-Boot
mailing list