On 03/28/2018 09:12 PM, Michael Brown wrote:
> On 28/03/18 20:10, Heinrich Schuchardt wrote:
>>> There's no way that the code:
>>>
>>>> -             ( ( path->Length[1] << 8 ) | path->Length[0] ) );
>>>
>>> should ever be able to produce an unaligned access abort, since it just
>>> dereferences individual bytes.  What do you see if you disassemble the
>>> object code?
>>
>> I put a DGBC before and after the access. And this is were the interrupt
>> occurs.
>>
>> I do not know how to disassemble the object code. Which files do you
>> need?
> 
> You should be able to use:
> 
>   objdump -dS bin-arm32-efi/efi_utils.o
> 
> Michael
> 
> 

00000000 <efi_devpath_end>:
   0:   7803            ldrb    r3, [r0, #0]  <<< Reading on byte
   2:   2b7f            cmp     r3, #127        ; 0x7f
   4:   d100            bne.n   8 <efi_devpath_end+0x8>
   6:   4770            bx      lr
   8:   8843            ldrh    r3, [r0, #2]  <<< Reading two bytes
infocenter.arm.com/help/topic/com.arm.doc.faqs/ka15414.html
LDRH/STRH - address must be 2-byte aligned.

   a:   4418            add     r0, r3
   c:   e7f8            b.n     0 <efi_devpath_end>

Regards

Heinrich
_______________________________________________
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

Reply via email to