From: Tetsuyuki Kobayashi <koba@kmckk.co.jp>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] arm: armv7: add compile option -mno-unaligned-access if available
Date: Tue, 03 Jul 2012 16:10:32 +0900 [thread overview]
Message-ID: <4FF29AE8.5080103@kmckk.co.jp> (raw)
In-Reply-To: <yw1xlij2ta1b.fsf@unicorn.mansr.com>
Hello, M?ns
Thank you for summarizing.
I am not against you.
I'm OK either "Allow unaligned access in U-Boot setting" or
"Specify compiler not to generate unaligned memory access"
or other.
I just want to solve hung-up by unaligned access.
I follow custodian's decision.
(2012/07/03 1:14), M?ns Rullg?rd wrote:
> Lucas Stach<dev@lynxeye.de> writes:
>
>> Am Montag, den 02.07.2012, 10:53 +0100 schrieb M?ns Rullg?rd:
>>> Tetsuyuki Kobayashi<koba@kmckk.co.jp> writes:
>>>
>>>> Recent compiler generates unaligned memory access in armv7 default.
>>>> But current U-Boot does not allow unaligned memory access, so it causes
>>>> data abort exception.
>>>> This patch add compile option "-mno-unaligned-access" if it is available.
>>>
>>> Why not allow unaligned accesses instead?
>>>
>> IMHO, our recent discussion showed that both ways are wrong.
>> "-mno-unaligned-access" works around misaligned data on the software
>> level, while allowing unaligned access does on the hardware level.
>>
>> What we really want is no unaligned access in U-Boot at all. Just
>> because "-mno-unaligned-access" is the default on ARMv5, we should not
>> consider it a gold standard.
>
> It's slightly more complicated than that. Data can be misaligned for a
> variety of reasons:
>
> 1. Errors in software.
> 2. Specified by a file format or communication protocol.
> 3. Deliberately misaligned by the compiler.
>
> Misaligned data of type 1 should of course be fixed properly, not worked
> around in any way.
>
> Type 2 happens all the time, and has to be dealt with one way or
> another. If the hardware supports unaligned accesses, this is usually
> faster than reading a byte at a time.
>
> When targeting ARMv6 and later, recent gcc versions have started issuing
> deliberate unaligned accesses where previously byte by byte accesses
> would have been done. This happens with "packed" structs and sometimes
> to write multiple smaller values at once, typically when
> zero-initialising things. These unaligned accesses are *good*. They
> make code smaller and faster.
>
> The real problem here is that u-boot is setting the strict alignment
> checking flag, invalidating the assumption of the compiler that the
> system allows unaligned accesses. For ARMv5 and earlier, setting this
> flag is usually advisable since it makes finding accidental unaligned
> accesses much easier.
>
> This was debated in the context of the kernel a while ago, ultimately
> leading to strict alignment being disabled for ARMv6 and up [1].
>
> [1] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=8428e84d42179c2a00f5f6450866e70d802d1d05
>
next prev parent reply other threads:[~2012-07-03 7:10 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-05 17:47 [U-Boot] [PATCH] arm: enable unaligned access on ARMv7 Lucas Stach
2012-06-05 18:42 ` Stephen Warren
2012-06-05 19:06 ` Lucas Stach
2012-06-22 9:15 ` Albert ARIBAUD
2012-06-22 9:36 ` Lucas Stach
2012-06-22 11:16 ` Albert ARIBAUD
2012-06-22 11:47 ` Lucas Stach
2012-06-22 22:11 ` Aneesh V
2012-06-22 22:13 ` Aneesh V
2012-06-23 9:01 ` Albert ARIBAUD
2012-06-23 17:43 ` V, Aneesh
2012-06-25 20:34 ` Albert ARIBAUD
2012-06-25 21:49 ` Aneesh V
2012-06-25 22:02 ` Wolfgang Denk
2012-06-23 19:50 ` Måns Rullgård
2012-06-24 6:30 ` Lucas Stach
[not found] ` <20120625221741.3a32790e@lilith>
2012-06-25 21:34 ` Lucas Stach
2012-06-26 20:56 ` Rob Herring
2012-06-27 10:14 ` Tetsuyuki Kobayashi
2012-07-02 9:42 ` [U-Boot] [PATCH] arm: armv7: add compile option -mno-unaligned-access if available Tetsuyuki Kobayashi
2012-07-02 9:53 ` Måns Rullgård
2012-07-02 15:16 ` Lucas Stach
2012-07-02 16:14 ` Måns Rullgård
2012-07-03 7:10 ` Tetsuyuki Kobayashi [this message]
2012-07-05 7:57 ` Albert ARIBAUD
2012-07-18 21:37 ` Albert ARIBAUD
2012-07-19 4:31 ` Mike Frysinger
2012-07-19 4:29 ` Mike Frysinger
2012-07-19 6:28 ` Albert ARIBAUD
2012-07-19 14:27 ` Mike Frysinger
2012-07-20 7:12 ` Albert ARIBAUD
2012-07-12 15:12 ` Gary Thomas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FF29AE8.5080103@kmckk.co.jp \
--to=koba@kmckk.co.jp \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.