All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] R: Re: Strange arm9 behaviour reading long(s) not aligned to 4 bytes boundary
@ 2009-01-25 18:52 dibacco at libero.it
  2009-01-25 19:31 ` Wolfgang Denk
  2009-01-25 19:33 ` Måns Rullgård
  0 siblings, 2 replies; 3+ messages in thread
From: dibacco at libero.it @ 2009-01-25 18:52 UTC (permalink / raw)
  To: u-boot

>> I have something like this on a 32 bit little endian arm9 board (SAM9 
>> 
L9260):
>>
>> char buffer[] = { 0, 1, 2, 3, 4, 5, 6, 7 };
>>
>> long A = * ( 
(long*) 
>> buffer );
>> long B = * ( (long*) (buffer + 2) );
>>
>> printf("A: %
08x  B: %08x", A, 
>> B);
>>
>> I would expect that A = 0x03020100 and B = 
0x05040302
>> instead I get the 
>> right value for A but  B is 0x01000302 or 
something like this but anyway not 
>> what I expect. 
>> Is there something 
wrong on the board? It seems that only 4 
>> bytes aligned long are read 
correctly.
>
>ARM9 does not support unaligned load/store.  Yours is apparently

>configured in the round-and-rotate mode.
>e
Then my code is simply wrong, that 
is, not allowed? If I have to port code from a PPC (that handles unaligned 
accesses)
to an ARM9 it is painful operation..., isn't it?

Bye,
Antonio.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-01-25 19:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-25 18:52 [U-Boot] R: Re: Strange arm9 behaviour reading long(s) not aligned to 4 bytes boundary dibacco at libero.it
2009-01-25 19:31 ` Wolfgang Denk
2009-01-25 19:33 ` Måns Rullgård

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.