[U-Boot] [PATCH] disk:efi: avoid unaligned access on efi partition

Måns Rullgård mans at mansr.com
Mon Oct 14 15:05:13 CEST 2013


Albert ARIBAUD <albert.u.boot at aribaud.net> writes:

>> > Please do not advise using native unaligned accesses on code that is
>> > not strictly used by ARMv6+ architectures: the present code, for
>> > instance, might be run on pre-ARMv6 or non-ARM platforms, and thus,
>> > should never assume ability to perform unaligned accesses natively.
>> 
>> I'm advising no such thing.  I said two things:
>> 
>> 1.  Declaring a struct with the 'packed' attribute makes gcc
>>     automatically generate correct code for all targets.  _IF_ the
>>     selected target supports unaligned ldr/str, these might get used.
>> 
>> 2.  If your target is ARMv6 or later _AND_ you enable strict alignment
>>     checking in the system control register, you _MUST_ build with the
>>     -mno-unaligned-access flag.
>
> Then I apologize; I had read "Note that on ARMv6 and later ldr/str
> support unaligned addresses unless this is explicitly disabled in
> the system control register" as a suggestion to use that capability.

If building for ARMv6 or later, I do suggest allowing unaligned
accesses.  The moment you add -march=armv6 (or equivalent), you allow
for a number of things not supported by older versions, so why not
unaligned memory accesses?

-- 
Måns Rullgård
mans at mansr.com


More information about the U-Boot mailing list