This is a follow up from [1] my previous patch to add a PCD for the auto-negotiation timeout.
Review comments on the edk2-devel mailing list and on the #linaro-enterprise IRC channel evolved the solution into two different patches:
[PATCH 1/4] EmbeddedPkg/Lan9118Dxe: use MemoryFence [PATCH 2/4] EmbeddedPkg/Lan9118Dxe: add PCD for negotiation timeout
Whilst I was editing the code, I also noticed a few non-functional quirks that were easy to fix:
[PATCH 3/4] EmbeddedPkg/Lan9118Dxe: minor DEBUG tidyup [PATCH 4/4] EmbeddedPkg/Lan9118Dxe: rename TimeOut to Retries
[1] http://article.gmane.org/gmane.comp.bios.edk2.devel/7341