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

Måns Rullgård
2013-10-14T13:05:13Z

Albert ARIBAUD <albert.u.boot@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