[edk2-devel] [edk2-discuss] Need memory barriers in IoLib for AARCH64

Laszlo Ersek lersek at redhat.com
Mon Jul 13 15:31:35 UTC 2020


On 07/12/20 18:54, Andrew Fish via groups.io wrote:
> 
> 
>> On Jul 11, 2020, at 10:17 PM, Wasim Khan <wasim.khan at nxp.com> wrote:
>>
>> Hello 
>>
>> Any comments ?
>>
> 
> I don’t see IoLibArm.c in master? I see IoLibNoIo.c. 

That's due to the rename in commit 089e9c19a8c1
("MdePkg/BaseIoLibIntrinsic: Rename IoLibArm.c=>IoLibNoIo.c",
2020-05-07), which has been first included in edk2-stable202005.

I think Ard is away at the moment, so I'm adding Leif to the CC list.

Thanks
Laszlo

> The MMIO function look like ARM assembler with the correct barrier instructions. The IO operations in this lib are the x86 in/out instructions, so they just ASSERT on ARM. 
> 
> On the X86 MemoryFence() is just a serializing intrinsic for the compiler to prevent optimizations from breaking the code, kind of like how you need to make MMIO as volatile in C. 
> 
> Thanks,
> 
> Andrew Fish
> 
>>> -----Original Message-----
>>> From: Wasim Khan
>>> Sent: Friday, July 10, 2020 6:20 PM
>>> To: michael.d.kinney at intel.com; liming.gao at intel.com; devel at edk2.groups.io
>>> Subject: [edk2-discuss] Need memory barriers in IoLib for AARCH64
>>>
>>> Hello,
>>>
>>> MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf:
>>> IoLib library uses IoLibArm.c for AARCH64/ARM architecture and IoLib.c for
>>> other architectures.
>>>
>>> While IoLib.c already has memory barriers in MmioWrite functions, there
>>> barriers are missing in IoLibArm.c Is there any reason for **not** adding these
>>> memory barriers in IoLibArm.c to guarantee that all MMIO operations are
>>> serialized ?
>>>
>>> I am facing some issues and I need to add memory barriers in IoLibArm.c for
>>> AARCH64 also .
>>>
>>>
>>> Regards,
>>> Wasim
>>
>>
>>
> 
> 
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#62431): https://edk2.groups.io/g/devel/message/62431
Mute This Topic: https://groups.io/mt/75417094/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list